Scrum is an Agile methodology that can be applied to many project types but is most commonly used in software development projects. The Scrum process is good for projects with rapidly changing requirements that require an iterative approach to development.
Scrum has a simple framework and proposes the following values:
The Scrum approach is focused on cross functional, self-organising teams. The team drives the development process because they are trusted to know best how to design a solution or solve the problem.
Detailed requirements are not generally created as a separate exercise before the building of the software starts, but are rather developed and refined by the the team as the project progresses.
Because of the iterative nature of Scrum, the principles of Inspection and Adaption are used to guide the product to the best final outcome by assessing and changing the requirements based on what is known, rather than any preconceived ideas about the product.
The Scrum Process
The Scrum process usually has the following structure:
- Sprint planning – items from the product backlog are discussed and user stories are turned into more detailed tasks or goals
- The Sprint itself – this is an iteration of development work and usually lasts one or two weeks
- Daily Scrum or standup – the team discusses the objectives for the day and tries to solve any problems or issues
- Sprint review – the purpose of the Sprint is to produce a complete tested software feature. The review gives the stakeholders, development team and end users the opportunity to look at what has been built and see that it is fit for purpose.
The Scrum Team
The Scrum Team consists of a Product Owner, the Development Team, and a Scrum Master.
The Product Owner is the interface between the team and the stakeholders. He communicates progress on the project, organises reviews and agrees budgets, schedules and what is to be delivered.
The Scrum Master facilitates decision making in the team by encouraging members to make the right decisions based on the Scrum methods. He is also a problem solver and must actively remove barriers to progress so that development can proceed as smoothly as possible.
The Development Team actually produces each feature or product. The team has all of the skills needed to create the product and may be made up of business analysts, graphic designers, UX designers, architects and programmers. The team analyses, designs, develops and tests together within the duration of a sprint and is collectively responsible for its outcome.
The Product Backlog is the most important Scrum artifact. It is the complete list of features that remains to be added to the product. As the project progresses the Product Owner must continually prioritise the Product Backlog so the team works with the most important features next. Items in the Product Backlog generally gain detail as they move up in priority and may contain user stories, estimates and other business requirements.
The Sprint Backlog is the list of features needed to complete the product in the Sprint and if development time has been underestimated, a feature may need to be carried over into a subsequent Sprint.
Monitoring progress in Scrum is as important as in any other Project Management Methodology. Scrum uses Burndown Charts to show the amount of work remaining in a Sprint or release. These charts plot time against the backlog and are useful for estimating when all the work will be completed.
The Scrum approach is not for every organisation. Some larger companies consider it risky but its benefits are that it can make people more productive and produce better software by giving the sense of achievement that comes from positive feedback and ownership of work done within a teamworking environment.