Saturday, March 8, 2014

AGILE: It's the chicken who die


Do you recognize the cartoon above? The pig and the chicken? Everytime I attend an AGILE training, I see this drawing. Looks quite true: a pig gotta be butchered to do contribute something while a chicken only give eggs.

But... we developers and managers are NOT pigs and chicken. IMHO, we are people, human-beings (lmao).. I mean, the metaphor above is way too idealistic, surrealistic.

We are always explained that the chickens are investors, supervisors, managers, BA, PM who get only involved in the process of making the product; the pigs are developers (coders, engineers) who are committed to the final delivery of the product; and that in case of success the developers are given the full credits and in case of failure, they are the ones to blame! Sounds tempting to me! The team gets the fame!!!

YET.. let us wake up to the bitterness of reality. The fact that I have been such a pig at 4 companies. I get paid monthly for the job I do. The client of my companies do not know me, who I am, what I do halfway around the globe. For the sake of conscience and duty to the LORD my God, I have done my best to fulfill the responsibility. However, I did not lose any money, lose any projects, or lose any points at Wall Street. But surely my employers must bare some consequences partly because of my lack of experience or ill-performance at times. Ultimately the clients who pay my employers get the sting of death for buying into the dream of AGILE - the promise of flexibility and willingness to change.

Let us put it this way:
  • The pigs move to another pen and live on (with or without a tail, hair, ain't matter)
  • The chicken either:
    • suffer from egg-birth complication and die a maternal death
    • go to jail as a client blood-sucking criminal
    • go to jail for the lack of accountability
    • get their neck chopped off by an angry mob of customers (aka, end users) who lost their money because their bank accounts got hacked.
Oh by the way, beside the pigs and the chicken, there are other animals in the ecosystem that are intentionally left out of the picture - the AGILE proponents who:
  • Earn a living by writing books and books on AGILE (book authors)
  • Get profits for providing a platform for selling books (Amazon)
  • Get paid for teaching others AGILE how-to's. (To whom do you think where those big money go when you pay for a SCUM Certified Agile Master, aka SCAM)
  • Get paid one way or another for advertising about AGILE
  • Get employed just because he or she is "agile"
  • ... and your nearest stationery store that sells index cards, whiteboards, pen, papers, pins, magnets

For your reading:

  1. Media got it wrong: HealthCare.gov failed despite agile practices
  2. Good Agile, Bad Agile


Friday, December 6, 2013

JavaScript Design Patterns - Deferred Initiation

Prerequisites

First of all, I would strongly recommend an in-depth reading on the topic of Design Patterns. Here is a good starting point. This article has other really good references on the same topic, which covers different aspects at different level of detail.

So, let's do a quick overview about design patterns. You may skip this part should you know about this already.
  • What is a Design Pattern? A Design Pattern is a generalized, verified, well-tested solution to well-known problems during software development. Adapter is a popular example for solving the problem of multiple database providers (MS-SQL, MySQL, DB2, Oracle...)
  • I know JavaScript and PHP, do I need to know about Design Patterns? Design Patterns are not language specific. You can apply the adapter design pattern using either PHP or Java. There are a few differences (e.g. syntax and runtime...), however, the same elements of the design pattern will appear.
  • What benefits do I get? Design Pattern is about identifying common problems and the optimal solutions. A good knowledge about design patterns helps you stay in-line with the community of people like you (software engineers, front-end developers and the likes) so that you don't have to reinvent the wheels! Try it, just google for the word singleton and you will see what I mean.

Sunday, December 1, 2013

The basic structure of a Magento module


Magento is a feature-rich open-source web application that was first released on March 31, 2008. Varien is the company behind Magento, responsible for the development and on-going maintenance of the platform. It is built based on Zend Framework.

There are many Magento extensions that you can find on Magento Connect. However, it may not always meet your needs. If you can understand Magento module structure, you are able to modify a module or even developing a new one.

In this entry, we will explore a structure of a basic Magento module and in the next entry I will show how to develop a simple module for Magento.



Saturday, November 16, 2013

Introduction to MySQL Full-text Search


Part 1


I.  What is Full-text search?
In short, Full-text search  is the most natural way to search for information. It likes when you google a term, you only need to type a keyword in search box and press 'Enter' and then the results will appear. In the scope of this entry, we only discuss about Full-text search in MySQL but don't discuss about other Full-text search engines such as Sphinx or Solr.