Over the past decade, many organizations have adopted the Agile development models, for successfully developing software products. Agile Model has various development methodologies which essentially involve iterative and incremental approach to software development.
Some key differences between the traditional Waterfall model and the Agile models:
Agile
|
Waterfall
|
Allows flexibility in project execution
|
Follows Structured approach which resists change
|
Agile model breaks down the overall product development into many small projects called Sprints with a working product as output. Each sprint consist of the following development phases of
- Analysis
- Design
- Coding
- Testing
|
Single Sequential process with phases of Analysis -> Design -> Coding -> Testing
|
More Suitable for managing change even at late stages of a project
|
Less adaptive to changes. Once a phase complete, any change affects all the previous phases and seriously impacts time/cost/quality
|
Agile model also requires a collaborative approach which needs continuous engagement with the customer and close interaction among the team members.
|
Customer interaction is limited to the Requirement gathering and Testing phases. The Team depends on elaborate documentation for interaction.
|
AGILE MANIFESTO
• INDIVIDUALS AND INTERACTIONS over PROCESSES AND TOOLS
• WORKING SOFTWARE over COMPREHENSIVE DOCUMENTATION
• CUSTOMER COLLABORATION over CONTRACT NEGOTIATION
• RESPONDING TO CHANGE over FOLLOWING A PLAN
(www.agilemanifesto.org)
|
Why Agile:
- Deliver Value Early: the Agile approach delivers features in short sprints which results in working software which can be verified very early in the project lifecycle. This translates to delivering value in each sprint which allows the business to release a working product into the market in a few weeks instead of many months.
- Accommodate changes easily: You can start development of the product based on what the business needs now. If the business needs to evolve or change, these changes can be planned in the future sprints.
In this post, we will focus on SCRUM, which is a popular and widely successful Agile development methodology.
![](https://docs.google.com/drawings/d/scsyFzqfTsPiCN8CFvIpMYg/image?w=553&h=287&rev=1281&ac=1)
Product Backlog - An ordered list of ‘Requirements’ maintained for a Product.
- This list of Requirements is essentially a list of Product Features as well as the non-functional requirements like Performance, Usability, Scalability etc.
- These can be detailed into multiple User Stories for each requirement.
User Story - is a description of the software feature from the end-user perspective. A detailed User Story typically consists of
- Use Cases
- Acceptance Tests
- Visualization
- Prototypes
Sprint - is an iteration of work for a duration of 2-4 weeks in which one or more User Stories and implement, integrated and delivered in the Product. The Sprint duration is typically agreed and fixed for the duration of the project.
The detailed User Stories which are planned to be part of the Sprint form the Sprint Backlog.
Key SCRUM Meetings:
Daily Scrum - SCRUM team meets on a Daily basis to review the progress. Each team member answers the following 3 questions :
- what did I Accomplish yesterday?
- what will I Do today?
- what Obstacles are impeding my progress?
Sprint Planning Meeting - The SCRUM team meets along with the Product Owner and Scrum Master to plan which User Stories will be implemented in the upcoming Sprint.
- The highest priority User Stories are picked up from the Product Backlog. These user stories should have sufficient detail and the Product Owner should clarify the requirements to the team
- The number of User stories to be implemented are decided based on the capacity and velocity(no of user stories implemented in the previous sprints)
- Inputs/Improvements based on the conclusions from the previous Sprint Review meeting
Sprint Review - In this meeting, the Scrum team members demonstrate the User Stories implemented by them to the client and Product Owner. Feedback is elicited on the deliverables and the client signs-off the Sprint if tests are OK.
Sprint Retrospective Meeting - The Scrum team meets at the end of each Sprint to retrospect and answer the following questions
- What went well?
- What could have been improved?
Based on the inputs and discussion certain Actions are agreed upon for the upcoming Sprints.
Key SCRUM Roles:
Product Owner : Responsible for the Product backlog.
- Represents the Client and owns the Requirements.
- Sets Priority for the requirements and details the User Stories in consultation with the customer.
- Works closely with Scrum team to clarify the requirements and get approvals from the client
Scrum Master : Responsible for facilitating the SCRUM process.
- Plans the Release along with the Product Owner.
- Ensures that the required Resources (Manpower and Material) are made available.
- Ensures the impediments are removed in a timely manner so that the SCRUM team makes progress to achieve goals.
Scrum Team - members of the Project team responsible for the work and implementation of Requirements.
Tracking Tools:
Burndown Charts are commonly the Agile practitioners as tracking tools to monitor the progress of the project.
Sprint Burndown Chart
- Displays Estimated Effort remaining for each day of sprint
- Plots Actual vs Ideal progress
Release Burndown Chart
- Displays Remaining User Story Points for each sprint planned in the Release
- Plots Actual vs Ideal progress
![release burndown chart.jpg](https://lh4.googleusercontent.com/LCLXsLgVxRO22l911b-i20osagJCIzSw5QzbyCe8eGBe4d7TJ4_cw6Gu6k7Ynv1UnkjIMY43ArV8gBQnFv_wFPz4Tfm-hCB-b_PstXSSwkIyGEN-UgatTEJKXi9eRrE8uGV09GM)
Conclusion
Agile methodology provides the following advantages over the waterfall approach to all project stakeholders:
Visibility - Each sprint delivers a working product which can be demonstrated to the Product owner and the Customer allowing them to monitor the actual progress.
Adaptability - As the project progresses, the team can improve on both the product as well as the process based on the feedback from customer, product owner and retrospective meetings.
Business Value - The product requirements can be prioritized so that the features which provide high business value can be released early in the lifecycle, which provides opportunity to get market feedback as well as earn return on investment.
Reduced Risk - As the customer and Product Owner are continuously involved in the development process, the risk of requirements being misunderstood or the risk of the delivered product not meeting expectations is highly reduced. Corrective actions, if required, can be taken at the end of each sprint. The priority of the Product backlog can be revised based on changing business needs.
0 Comment(s)