Agile (Scrum) Software Development Methodology Guide

Scrum is an agile way to manage a project and is probably the most popular choice for software projects. It is fairly easy to learn and here’s a good introduction to it.

By Kevin Thomas

Scrum has been used by many big companies like Microsoft, Yahoo, Google, IBM etc and for various purposes including commercial software, in-house development, contract development and even non-software projects The Scrum methodology involves self-organizing teams, series of typically two week timespans known as “sprints”. The items to be completed are listed in the “Product Backlog”, compiled from captured.

Implementation of Agile (Scrum) Software Development Methodology

The implementation process of Scrum’s methodology can easily be explained with the help of the Scrum Framework. The framework is divided into three parts i.e. Roles, Ceremonies and Artifacts.

Roles

Three defined roles are a part of the Scrum methodology. These are:

Product Owner

The features of the product are defined by the product owner. The product owner makes the decisions on scope and schedule, achieving financial goals of the project is the responsibility of the product owner, product backlog is prioritized by product owner, based on need the product owner adjusts features and priority every sprint, and work results are accepted or rejected by him.

The Scrum Master

The Scrum Master the owns the process and can make adjustments to it. He also facilitates ceremonies. This does not make him/her a technical lead or manager. They also responsibly for Scrum values and practices and to help removes impediments, improve team productivity, enables close cooperation across all roles and functions and shields the team from external interference.

The Team

The team typically consists of five to nine people. Consisting of programmers, testers, and business analysis (for software projects). The teams are self-organizing and the membership should only change between sprints.

Ceremonies

Ceremonies are the processes involved in the implementation of the Agile (Scrum) software development methodology and including the following:

Sprint Planning

The sprint planning meeting consists of team, the Scrum master and the product owner. In the meeting the product backlog items are discussed so that they can be prioritized and then the team selects which ones to do. The sprint planning meeting determines what will be worked on and it also helps to develop considerable understanding of what needs to done in order carry it out. One notable thing done in sprint planning is that tasks are measured in time (whereas before it was done in story points).

A rule of thumb, a sprint planning takes approximately Number of weeks in sprint * 2 hours (4 hours in our case)

Daily Scrum

The daily Scrum meeting is held daily for about 15 minutes.This is not a problem solving meeting. The daily Scrum helps avoid unnecessary meetings. In the daily Scrum everyone answers three questions, the questions are:

• What did you do yesterday?

• What will you do today?

• Is anything in your way?

The Sprint Review

In the Sprint Review (can also be referred to a Review & Demo) the team presents what has been accomplished during the sprint. It is a demonstration of new features or the existing architecture. It is an informal presentation and the entire team participates in it.

Sprint Retrospective

It involves looking at what is working and what is not. The time period for the sprint retrospective is around thirty minutes and is done after every sprint. It involves participation of the product owner, Scrum master, team and even the customers. In the retrospective the whole team gathers to discuss what they want to start, continue or stop doing.

Artifacts

The artifacts can be called the tools of the Scrum methodology and include the following:

Product Backlog

The product backlog captures the requirements listed as items or work on the project. Each item is expressed in a way which provides value to the customer, prioritized by the product owner and reprioritized at the start of each sprint.

Sprint Backlog

The sprint goal is a short statement about the focus of the work during the sprint. In the sprint backlog work is never assigned and individuals choose their own work; the remaining work is estimated daily, and any member can add, change or delete the sprint backlog. Spring backlog determines the work for the sprint, is updated every day and each item has its own status.

Sprint Burn down chart

The sprint burn down chart shows the total Sprint Backlog hours remaining each day and also the estimated amount of time to release. The sprint burn down chart should ideally come down to zero at the end of the sprint. The X-axis of the chart show the time left in this sprint and the Y-axis show the hours estimate remaining.

Benefits of Scrum

• Scrum methodology eliminates the need for comprehensive documentation

• Mistakes can be easily rectified

• Clear visibility of the project development

• Iterative in nature and requires customer feedback

• Short sprints and constant feedback makes coping with changes easier

• Individual productivity improves as a result of daily meetings

• Issues are identified in advance and hence can be resolved rapidly

• A quality product can be easily delivered in a scheduled time

• Minimal overhead cost in terms of process and management

• It helps with the delivery of top value features first

• Shorter time to market, which increases market feedback and ROI

• System is better prepared for adaptation to business and external changes (which you said it somehow)

Pitfalls

• Tasks can be spread over several sprints if it is not well defined.

• Success and Failure of the projects depends on the commitment of the team members

• Heavily relies on a dedicated Product Owner. The lack of it cascades down and hinders the quality of the backlog.. which makes an impact on pretty much the entire process

• Works well only with a small team

• Needs relatively experienced members

• Works well for project management only when the Scrum masters trusts the team.

Implementation Example

• A fixed time meeting is held at a fixed place each day.

• The team Lead (Scrum Master) asks the team members about what they did previous day, and what they plan to do and if any issues were observed by them.

• Every day the team lead sends the report showing the daily progress and issues called a burn down chart

• A meeting is held at the beginning of the sprint by the team lead to discuss the product backlog in order to prioritize the work,resource allocation and the issues known as the sprint backlog.They meet once every week for 2 to 4 weeks.

• The Product Owner defines the scope of the sprint based on the time estimates set at the sprint planning and team’s capacity for next sprint. This scope need to be clearly communicated to the team since completing these tickets will be a commitment for the sprint

• A daily Scrum meeting is held in order to synchronize the activities while the team work through the spring backlog tasks

• One or more times during the sprint, a backlog grooming sessions are held to present and discuss upcoming user stories for next sprints. The output may be an estimation of a story in story points, or if the team needs more clarifications, questions that the product owner needs to research on a sprint review is conducted at the end of the sprint cycle and the finalized product is released

• Performance and improvements based in previous sprint cycle is discussed before starting with a new sprint, this is called sprint retrospective

• The sprint cycle continues

Pillar concept in scrum can be found https://www.scrum.org/Resources/Scrum-Glossary/Definition-of-Done.