The Scrum Methodology is based on the Rugby term for individual groups
collaborating together to form a powerful whole. Scrum in project management is an agile
management process to coordinate teams of approximately six or seven people who
can be located anywhere in the world.
The Scrum Methodology brings a cohesiveness into what otherwise would be
many disparate groups. Initially, the Scrum Methodology was intended for the management of software development projects. Its use has now been extended to running software maintenance teams, or as a program management
approach.
The
scrums (teams) are made up of the Product Owner, the Scrum Master and the team members. The Product
Owner is responsible for representing the interest of the client for whom the
product is being made. The Scrum Master
is the liaison between the team and the Product Owner. The team itself is comprised of a
cross-functional mix of personnel, which can include software engineers,
programmers, Q/A specialists and the like.
While the Scrum Master is responsible for facilitating the team, the
team has total control over how they will perform their work.
The first step in the
Scrum process starts with the Product Backlog, which is a prioritized list of
software requirements for the product.
While anyone can add items to the Product Backlog, the Product Owner
has the final say on the Product Backlog.
The next step in process is the Sprint, a 15-30 day period during which the team creates an increment of potential priorities. Each team chooses from
the list of priorities and decides on their Sprint Backlog. The Sprint Backlog is a list of tasks that the team
believes they can finish during the Sprint. During the Sprint, tasks are broken down into
specific chunks of time. Each day, the
time remaining on each task is updated.
When the time remaining on the Sprint reaches zero, the team will
provide a demonstration of the software to all involved.
During
the course of the Scrum, a daily meeting will take place to update everyone on each
team’s progress. A summary will be given
of accomplishments since the last meeting, future plans and reasons why
something was not accomplished. This
allows the Scrum Master to see where each team is and possibly offer help, if
required.
These
daily meetings should be a fixed amount of time, usually 15 to 20 minutes
maximum. An agenda made prior to the
meeting and distributed to all parties will help keep the meetings on track and
within time constraints. To ensure that
there are no delays, Scrum meetings should be held
at the same time and use the same method of communication. If
the teams are international, a compromise time should be made. This way no one feels that they always have
to go out of their way to accommodate everyone else.
During the meeting, each team member answers three questions:
- What have you done since yesterday?
- What are you planning to do by tomorrow?
- Do you have any problems preventing you from accomplishing your goal?
To
show how much time is left on a particular task, a Burndown Chart is
used. This helps determine the amount of
time still needed to complete a project.
While the goal is to consistently decrease this number, the estimates
will toggle up and down as new work is added or completed. The Burndown Chart can also assist in Release
Planning. A release date can be estimated based on time information from the Burndown chart.
There
are many advantages to using the Scrum Methodology:
- Communication can improve across all the
teams.
- It provides for an open forum,
where everyone knows who is responsible for which item.
- Scrum can increase team efficiency by as much as
20 percent.
- Problems
are more transparent.
While
a whole project can be intimidating, using the Scrum Methodology helps break it into smaller, manageable
parts. Above all, Scrum gives the project stakeholder, who is
paying for the product, the advantage of seeing the progress being made every day. They are able to build a relationship with the people involved and
they get constant feedback from the Scrum Team.
A
few drawbacks to the Scrum Methodology are:
- Decision-making is entirely in the hands of the teams.
- There has to be
constant, hands-on management.
While
Scrum is not perfect, it is definitely a way to maximize efficiency, improve
communication between teams and provide for an open approach to tackling a
project.
Figure One is courtesy of http://www.controlchaos.com/about/burndown.php.
Figure Two is courtesy of http://www.mountaingoatsoftware.com/sprint_backlog.