Wednesday, August 10, 2011

Agile Software Development Methodology

Agile is software development methodology. It is very effective where Client frequently changes his
requirement.Since it has more iteration so you can assure a solution that meets clients requirement.
More than one build deployment for a project.It involves more client interaction and testing effort.

There are two methods by which this methodology can be implemented:-

1) Scrum: Each iteration would called a scrum which can be a 1-2 Months.In Scrum Client prioritize
his requirements what he want first. If developer did not meets all the requirement which was being fixed for a particular scrum than rest of the development part would be transferred to the next scrum (would be delivered in the next build),  means developer can't increase time decided for a scrum.

2) Extreme Programming (XP): here iteration period would be less then in scrum , which is being 2-4
weeks.Here developer prioritize what to do first on the basis of client requirement. This duration which
was being fixed for a iteration, can be increase if the some development part is still pending. The build would deployed with having all the client needs.Thus iteration period is not fixed here it can be increase.but iteration should meets all the client's requirement in this build.More attention is required for testing in XP.

It is a methodology to satisfy the customer through early and continuous delivery of valuable software. This is useful when we don't have a clear idea of the client's requirements.The development activities can be carried out using the iterative actions.

The following table enumerates the reasons for choosing Agile methodology over the Waterfall method.
 
1) Once a stage is completed in the Waterfall method, there is no going back, since most software designed and implemented under the waterfall method is hard to change according to time and user needs.  The problem can only be fixed by going back and designing an entirely new system, a very costly and inefficient method. Whereas, Agile methods adapt to change, as at the end of each stage, the logical program, designed to cope and adapt to new ideas from the outset, allows changes to be made easily.  With Agile, changes can be made if necessary without getting the entire program rewritten.  This approach not only reduces overheads, it also helps in the upgrading of programmes.

2) Another Agile method advantage is one has a launch-able product at the end of each tested stage.  This ensures bugs are caught and eliminated in the development cycle, and the product is double tested again after the first bug elimination.  This is not possible for the Waterfall method, since the product is tested only at the very end, which means any bugs found results in the entire programme having to be re-written.
 
3) Agile’s modular nature means employing better suited object-oriented designs and programs, which means one always has a working model for timely release even when it does not always entirely match customer specifications.  Whereas, there is only one main release in the waterfall method and any problems or delays mean highly dissatisfied customers.    
 
4) Agile methods allow for specification changes as per end-user’s requirements, spelling customer satisfaction.  As already mentioned, this is not possible when the waterfall method is employed, since any changes to be made means the project has to be started all over again.   
 
5) However, both methods do allow for a sort of departmentalization e.g. in waterfall departmentalization is done at each stage.  As for Agile, each coding module can be delegated to separate groups.  This allows for several parts of the project to be done at the same time, though departmentalization is more effectively used in Agile methodologies.

No comments: