Introduction to Scrum


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:

  1. Sprint Planning Meeting: Product Owner provides the prioritized product backlog.
  2. Team determines which items can be completed within the coming sprint.
  3. 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.
  4. The team works in the implementation of these items
  5. A daily Scrum meeting keeps checks on issues and progress. This meeting is timed to no more than 15 minutes.
  6. 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.
  7. Sprint Retrospective Meeting: Continuous Process Improvement.
Burndown Charts: show the amount of work remaining in a sprint or release.

 

Advantages

  1. Iterative process - quick to implement and easy to rectify mistakes
  2. Team Involvement in each stage. Reduces risk of mis-communication and increases participation and ownership
  3. Higher priority items are implemented first - this ensures that the important project features are implemented at the beginning.
  4. Incorporates user feedback and ensures the requirements are held dynamic.
  5. 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
  1. Regression testing - additional regression testing and system testing needed to ensure parts work together and new releases do not break existing functionality
  2. Trusts team work - works well in some scenarios but not everywhere
  3. Risk of Scope creep
  4. 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
 

scrum.gif

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!