An overview of the Agile software development model
In Agile small teams collaborate and work jointly to develop the product in “stages”. The product is not developed as a “whole”. Rather, it is segregated into its fundamental components i.e. the software product is broken down into its features and functionality, and the development of the product occurs in “bits” and “pieces”. At a time, few product features are taken up for development and developed in incremental product cycles known as sprints.
How does the Agile software development model work? In Agile, the actual development process starts with the creation of a “main” list containing all the product features. The list is called the product backlog. Each “item” in the backlog is explicitly defined, and explained, as to how it should be ideally developed. The list items are known as product backlog items or user stories. Once the backlog is created, a special event known as sprint planning meeting is held to plan the daily sprint. In the meeting, the product owner selects some of the important user stories from the product backlog and transfers them to a temporary “development” list known as the “sprint backlog”. The development team members distribute user stories amongst themselves based upon their levels of expertise. Product features are developed on a daily basis through the daily sprint cycles. At the end of the sprint, development is presented to the product owner and stakeholders for verification purposes. Once they Okay the development, it is accepted as “Done” and the entire sprint process is repeated by conducting another sprint planning meeting, and once again creating a unique sprint backlog that is “processed” to develop another “set” of product features. The sprint cycles are repeated until all the product features are developed. In the end, the features and functionality developed through the daily sprints are integrated to form the complete functional product that is ready for deployment.
Main features of an Agile software model
The Agile software model is simple and easy to understand.
- The PO creates a prioritized list containing all product features and functionality – the product backlog.
- At the time of sprint planning, the team selects a small “portion” from top of the product backlog and creates a sprint backlog for development purposes. The team decides which team member should develop which of the user stories i.e. the team members distribute work amongst themselves.
- The team carries out the development activity through the daily sprints. The sprint duration is fixed, and the team members have to develop their tasks within the sprint period. A sprint cannot be extended.
- The productivity offered through the daily sprints should be bug-free and “shippable” i.e. ready for deployment.
- The sprint process ends with the review event which is closely followed by the retrospective sessions.
- The scrum master ensures that the framework is properly followed by everyone on the team. He or she keeps the team focused and ensures that daily sprints are successfully completed.
- The entire process cycle is repeated until all the product features are developed and the product is ready for deployment.
Roles in the Agile software process model
Three main roles that play an important part in the working of the Agile software process model are:
1. Product Owner
A product owner “owns” the project on behalf of stakeholders and project owners. The PO is primarily responsible for the success or failure of the entire project. The main responsibility of the PO is to support the product “vision” as seen by the stakeholders and nurture it in accordance with their wishes. The PO is also responsible for creating and maintaining the product backlog. The PO may seek the help of scrum master and team members to groom and maintain the backlog. Other responsibilities of the PO include designing the sprints, creating the sprint backlog (the sprint backlog is actually “owned” by the development team), verifying the development carried out in sprint review meetings, and supporting self-learning and self-correction sessions during the sprint retrospective meetings. The PO acts as an “interpreter” between the Agile team and the stakeholders. He or she tries to resolve problems by taking up issues and finding solutions for them that are acceptable by all.
2. Scrum Master
The scrum master is primarily responsible for supervising Agile Scrum implementation in the project. He or she does not take an active part in the development process but keeps an eye on how the team members work and implement Scrum. If the team faces any problems, the scrum master tries to resolve them. Certain problems and issues pertaining to stakeholder participation may be “transferred” to the PO for resolution. Typically, the scrum master should play a servant leader role and maintain harmonious and conducive working environment.
3. Development Team
The development team forms the “heart” of the Scrum process and is primarily responsible for developing product features through the product incremental cycles – sprints. At times, the teams may be disjointed or distributed. In such cases, each member, wherever he or she is currently located, should be aware of what is planned for development and put in efforts to collaborate and work together with other team members while developing the tasks taken up by him or her. The team may also work in “pairs”.