The traditional form of software development life cycle (SDLC) was the Waterfall method, in which each stage of software development was planned and initiated only after the completion of the previous phase. For example, the “Software testing” phase began only after the completion of the “Software coding” phase. The Waterfall model worked well when customer requirements were well understood and did not change over the period of the project. Each phase of this development cycle did not overlap with each other.
The Waterfall method was found inadequate in the case of long and complex software projects, or when the customer requirements changed through the length of the project. Additionally, customers could not see the working model of the final product until late in the overall life cycle.
Agile project management provides a more flexible and dynamic approach to SDLC and is followed now by most software development companies. Scrum project management is a methodology that is covered under the umbrella of Agile management.
What is Scrum and how it works
Scrum methodology can be defined as a framework used for managing an agile software project. Using Scrum, the complete software project is divided into multiple chunks of work, based on priority and functionality. Scrum methodology reduces the complexity of building an entire software product by dividing it into smaller and manageable chunks, which are defined, coded, and tested separately in shorter time cycles.
Scrum project management reduces the burden of the project manager, by distributing responsibilities among the following roles:
• Product owner, who defines the project goals, manages changes in project requirements and sets priorities for product features.
The product owner represents the customer and develops a product backlog, which is a complete list of functionalities that needs to be added to the product. The product owner also sets priorities to the product backlog items to ensure that the Scrum team works on the high-priority items first.
• ScrumMaster manages the daily tasks of the team and ensures that there are no impediments to the progress of the project. More than a manager, the ScrumMaster serves as a team coach.
The ScrumMaster is well-versed with the Scrum methodology and is the best source to ensure that the software project reaps the benefits of agile project management.
• Scrum team members, who work on the daily tasks and report the progress to the rest of the team.
Scrum methodology does not have any overall team leader to manage the team and allocate the work. Each of the Scrum team members, including the development team, are assigned the responsibility of solving their problems and completing their daily tasks.
In Scrum project management, the SDLC is divided into a series of Sprints, with each sprint typically lasting around 2 weeks. For each sprint, a sprint backlog is created, which contains the priority items and tasks (retrieved from the product backlog) that need to be completed in the sprint.
Scrum project management involves the following main activities:
• Sprint planning, which is a planning meeting held at the start of each sprint. The product owner and the team members determine the high-priority tasks that can be completed from the product backlog. The final list of tasks that is agreed upon is added to the sprint backlog.
• Daily Scrum, which is a daily meeting involving all the sprint team members and typically lasts for around 15 minutes. Daily scrum is useful for synchronizing the teamwork and provides the completed and planned daily tasks of each team member, along with reporting of any project impediment.
• Sprint Review, which is conducted at the completion of each sprint. The completed product functionality is demonstrated for any review feedback from the product owner or any team member.
• Sprint Retrospective, which is conducted at the end of each sprint and before the start of the next sprint. This involves all the sprint members including the ScrumMaster and the Product Owner, and is used to reflect on the just-completed sprint, along with suggestions for improvements.
Other Scrum components
In addition to the product backlog and the sprint backlog, Scrum project management includes the following component:
• Burndown chart, which is used to estimate the amount of work that is pending in each sprint or the complete release. Sprint burndown chart is used to determine if the planned work is on schedule in the sprint, while the Release burndown chart is used to determine if the overall product release is on schedule and can be completed by the release date.
Scrum projects for smaller teams located in the same office or geographical location are easy to manage using basic tools. Software companies use more complicated Scrum tools, when team members work from remote locations, and also with an increase in product backlog items.