Wednesday, March 4, 2009

In love with Agile


Of late, we have been using agile software development methodology. Within a very short span of time we realized the sheer simplicity and effectiveness of the process. I am in love with Agile.


More often than not customers do not completely know what they actually want at the beginning of a project. Generally this is the time when the project contract is signed. Obviously, more often than not the development team ends up providing a solution which partially or not at all solves their problem (even if contract is met completely). This leads to a very high degree of dissatisfaction among the customers. Agile software development methodology answers the problem with a simple, common sense driven approach to software development. It allows the customer to have a direct visibility into the direction in which the project is heading. This allows them to correct and modify an existing requirement or even come up with a brand new one at any point of time in the project. The transparency that Agile provides results in a high level of confidence and satisfaction among the customers.


Agile is about embracing change. It encourages you to accommodate change at any point of time. It even welcomes the new one. These changes are then added to the backlog. And the list is prioritized again with the help of customers.


Agile is about delivering continuous stream of value. It breaks down the task in small pieces of deliverable which can be accomplished in a short period of time, say a fortnight (this is called sprint). These task pieces are called backlog items. The list is then prioritized with the help of the customer. Small deliverables are released on a regular basis based on the backlog. The customers play with it and give their invaluable feedback.


Plan ahead but do not get too far ahead of yourself. Agile does not bother you about planning for remote future. It plans for one sprint at a time. This gives the customer small deliverables on a frequent basis to work and play with. This also ensures a frequent feedback from the customer.
Business fellows must get involved. This is the trick we missed out on in the conventional software development models, so to say. We did not get the customers involved enough. This resulted in the project floating like a boat without sail. Having regular input and feedback ensures that the team is on the right track. Important and critical features (decided by the customers) are built and tested first. It is also comforting for the customer because he or she has a clear visibility of where his or her investment is at any point of time.


Face-to-face communication on daily basis. Agile understands the fact that most effective communication is, in fact, face-to-face communication. Hence it’s a practice that the team must meet at least for five minutes daily and discuss about what did they did yesterday and what they are planning to do today. It is also discussed if there is any impedance. This sort of meeting is called a scrum in the agile world.


All in all, what is unprecedented about using agile is the level of customer satisfaction that achieved through transparency and clear communication. But Software development like life in many ways is not always dictated by any rule of thumb. Most of the things lie in the "gray area". Weather to adapts a tool or not has to be more of your demand and judgment thing. After all, these are mere tools, not gospel.

1 comment:

Joshua Gough said...

Use the source, Luke, use the source.

http://www.bezdelnique.ru/wp-content/uploads/2009/08/use_source_luke-500x388.png