Agile methodology basically came in picture in order to handle the changing requirements in product development that can be software or hardware. The traditional models were not able to handle the changing requirements and all the traditional models we saw i.e. waterfall model, incremental and iterative model, v-model, SEP( structured evolutionary prototype) model and spiral model were unable to handle changes in plan. Agile basically follows incremental and iterative model’s approach where the product is manufactured in iteration and each iteration is called Sprint. The time frame for one Sprint can be 2 weeks to 4 weeks and Agile is also called time-boxed approach where the product is developed in short duration.
Agile development focuses on keeping the code very simple to understand, continuous testing and integration and at the end of each Sprint, the output is potentially shippable product.
For requirement documentation, the requirements are documented in the form of user stories which has syntax like:
“As a user of this system, I must be able to………., so that I can……….”
First of all the ‘epic‘ is created which comprises the requirements in story format. Then this epic is broken down and transformed into ‘user stories‘. Each user story comes with an ‘acceptance criteria‘. This is the criteria which is looked for while doing the user acceptance testing and each functionality of the working system is checked against the acceptance criteria of the user story and hence once this criteria is satisfied, it is said to be ‘DONE‘.
The agile models work on some manifestos. The Agile Manifesto was created as an alternative to document-driven, heavyweight software development processes such as the waterfall model approach and there are four manifestos as mentioned below:
- Individuals and interactions over processes and tools.
- Working software over comprehensive documentation.
- Customer collaboration over contract negotiation.
- Responding to change over following a plan.
Along with following this four manifestos, it has 12 basic principle on which these methodology is built. This 12 principles laid down in the Agile Manifesto have been adapted for managing a variety of business and IT-related projects, including business intelligence. The 12 principle are as follows:
- Satisfying customers through early and continuous delivery of valuable work.
- Breaking big work down into smaller components that can be completed quickly.
- Recognizing that the best work emerges from self-organizing teams.
- Providing motivated individuals with the environment and support they need and trust them to get the job done.
- Creating processes that promote sustainable efforts.
- Maintaining a constant pace for completed work.
- Welcoming changing requirements, even late in a project.
- Assembling the project team and business owners on a daily basis throughout the project.
- At regular intervals, having the team reflect upon how to become more effective, then tuning and adjusting behavior accordingly.
- Measuring progress by the amount of completed work.
- Continually seeking excellence.
- Harnessing change for competitive advantage.
Types of Agile methodologies:
- XP (Extreme Programming)
- Adaptive Software Development
- Dynamic Software Development Methodology
- Feature Driven Development
- Test Driven Development
- RAD (Rapid Application Development)
When to use Agile Methodology ?
- When frequent changes are required.
- When the team working of project is highly qualified and experienced enough.
- When the project is carrying low risk and is of small size
- When client is highly available and can interact with the development team as and when required.
Disadvantages of using Agile model:
- Customer can prove to be a problem if they are not clear with the scope of project and they keep on changing the requirements.
- Does not work well with large project.
- Little documentation can prove harmful if the product need maintenance and support after years of its establishment when the actual development team is changed.
- Senior and highly paid development team can only handle the projects in Agile who have rich experience working on various projects.
Here is the list of some of the tools which works well in Agile Project for Requirement management:
- IBM rational DOORS
- Atlassian JIRA
- HP- Agile manager
- Target Process
For any queries, please write in the comment box or contact me on my email id.