In this
article we will take a look at the Scrum methodology for software projects.
What is Scrum
The
definition of Scrum in Wikipedia: "Scrum is an iterative, incremental
methodology for project management, often seen in agile software development."
Scrum Teams
Decisions are
taken a team decisions.
All team
roles involved in the process are included.
Supporting
Roles: Scrum Master and Product Owner
-
Scrum Master:
maintains the processes
-
Product
Owner: represents the business/stakeholders/customer
Framework Description:
Scrum a
framework which can be used for agile software implementation.
Product
Backlog: Master list of all functionality desired in a product. This is a
dynamic document and can change over time.
Project is
executed as a series of sprints. A sprint is a time-bound product increment
which is 2-4 weeks in duration.
Sprints:
-
Sprint Planning Meeting: Product Owner provides the prioritized
product backlog.
- Team determines which items can be completed within the coming
sprint.
-
Items decided in #2 get moved from the Product Backlog to the
Sprint Backlog. Breakdown of items into smaller tasks takes place for further
planning.
-
The team works in the implementation of these items
-
A daily Scrum meeting keeps checks on issues and progress. This
meeting is timed to no more than 15 minutes.
- At the end of the sprint, the selected items are coded, tested
and integrated and a sprint review is carried out. The team demonstrates the new
functionality to the product owner in the Sprint Review Meeting.
- Sprint Retrospective Meeting: Continuous Process Improvement.
Burndown
Charts: show the amount of work remaining in a sprint or release.
Advantages
-
Iterative process - quick to implement and easy to rectify
mistakes
- Team Involvement in each stage. Reduces risk of mis-communication
and increases participation and ownership
- Higher priority items are implemented first - this ensures that
the important project features are implemented at the beginning.
-
Incorporates user feedback and ensures the requirements are held
dynamic.
- Daily meetings and review meetings close communications gaps
proactively. Meetings are time-bound to ensure focus and take care that too much
time doesn't get spent in discussions
Disdvantages-
Regression testing - additional regression testing and system testing needed to
ensure parts work together and new releases do not break existing functionality
-
Trusts team work - works well in some scenarios but not
everywhere
-
Risk of Scope
creep
-
This is an rapid release agile framework. Emphasis
does not lie on accurate estimates. This may hold a risk for the project.
Image:
Scrum methodology overview
Conclusion:
In this article we understood the artifacts, roles and procedure
involved in using Scrum methodology in software projects. Used in the right way,
this can be a powerful technique for managing software projects!