Friday, February 6, 2009

The Agile Process

Agile Software Development Process is a collection of various software development processes, having similar working principles. This process provides an excellent channel of communication between clients and the developers, resulting into clear understanding of goals, excellent feedback process, and accurate output. [wiki, 2009]

In this process, the work is done in small incremental blocks, with a minimum need of planning. Each small iteration, around 1-4 weeks, has its software development life cycle of planning, analysis, designing, coding and unit testing. At the end of each iteration, we get some working product (but not ready for market release) to show to the client. In this way, client is well aware of what and how things are going in the project, and he can give regular feedback. It reduces overall risk of failure, and also allows adjustment of frequently changing requirements, which is most common cause of disaster in software projects.

Beginning the project: After the initial meeting with client, the project is analyzed by the business heads, and then passed on to the working team members to review. The project Manager divides the whole work into smaller chunks, called story, having separate functionality.

For example, for a simple 'Inventory Management System' the various smaller chunks, or stories could be adding new item to inventory, searching for an item, listing the items n some order or printing reports out of the system.

Project Proceedings: It usually does not include long term planning, but only short modules (called sprints) of work are decided with strict deadlines. Each iteration involves a team working through a full software development cycle including planning, requirements analysis, design, coding, unit testing, and acceptance testing. At the end of each sprint, some deliverable are produced, and customer feedback is sought for them. Any suggestion or changes advised by client can be incorporated in the next sprint, without any serious burden of re-work, minimizing the overall risk of project failure.

Project Completion: Nearing the completion, project will already been reviewed by the customers many times, preventing hm for unusual surprises at the end. This is also followed by a complete set of documents for each and every small module(sprint), allowing hm to analyze in detail the bottlenecks, or scope of improvements.

Thus, agile methodology could provide a win-win situation to both the client, and the project manager, providing a smooth methodology for project development.

References:
Wikipedia 2009, adapted from 'http://en.wikipedia.org/wiki/Agile_software_development' on 6th Feb, 2009.

Total Pageviews