Key Elements of Scrum: The Framework that Makes Agile Software Development Tick
Even if you are not a rugby fan, chances are you have heard the term Scrum. That is where rugby teammates huddle together - heads down, arms locked, working as a cohesive unit – to gain possession of the ball from the opposing team.
The collaboration, flexibility and communication required in rugby are embodied in the Scrum framework. Scrum is a core component of Agile software development, an iterative approach to developing working software quickly and more simply than in the past. Scrum is the dominant Agile software development framework, used by 87% of organizations adhering to Agile methodologies according to statistics gathered by Scrum.org.
Scrum is the most popular framework within Agile because it can be tailored to the needs of the project at hand.
Favorable outcomes are achieved by allowing people to address complex adaptive problems, while productively and creatively delivering products of the highest possible value. It is a simple framework for effective team collaboration on complex projects. The Harvard Business Review reported that Scrum delivers the most valuable innovations earliest and rapidly increases team happiness.
These six principles are considered 'non-negotiable' and serve as the foundation for all Scrum projects
- Empirical process control allows for transparency, inspection, and adaptation for decision-making instead of up-front planning.
- Self-organization is built on the concept that employees have more to offer than just their technical expertise.
- Collaboration brings stakeholders and developers together to deliver the greatest value.
- Value-based prioritization assures that what is most valuable to the customer gets completed first to increase return on investment.
- Time-boxing recognizes that time is the most crucial factor in managing and executing Scrum projects.
- Iterative development allows for course correction as all people get a better understanding of what needs to be delivered as part of the project.
Scrum Roles
Scrum helps teams deliver customer value early and often in a highly predictable manner usually within 2, 3, or 4-week Sprints, which are timeboxed iterations of a continuous development cycle. Within a Sprint, a planned amount of work must be completed by the team and made ready for review. The following are key roles in Scrum projects.
Product owner
- This can only be one person, not a committee, as multiple product owners tend to confuse team priorities.
- The product owner is responsible for maximizing the business value delivered by the team, prioritizes the backlog, accepts or rejects work, and helps define what “done” means during the project.
- The product owner should be knowledgeable, empowered, and engaged.
Scrum Master
- The individual responsible for facilitating the Scrum process and ensuring the team is delivering value.
- The Scrum Master builds self-organizing teams, removes impediments, keeps the process healthy, and empowers the team.
- The Scrum Master is often described as a servant leader - not commanding or controlling.
Team
- The people responsible for turning the product backlog items into increments of value during each Sprint.
- A team generally includes Business Analysts, Developers, and Testers.
- Teams are cross-functional and can consist of 7 to 9 members.
- Teams come together as one cross functional team and work together on the backlog. Teams are completely focused on quality.
Scrum in Action
Sprint Planning
- A Sprint is where Scrum teams work to complete a set amount of work in a fixed time period.
- During Sprint planning the Scrum Master, Product Owner, and the Team finalize what is going to take place in the current Sprint.
- User stories are taken from the backlog, a prioritized list of tasks needed to accomplish the planned work, to build the Sprint.
- Sprint planning takes place no later than the first day of each Sprint and takes approximately two hours per each week of the Sprint.
- For example, Sprint planning for a two-week Sprint could be expected to take four hours to complete.
Product Backlog Refinement
- The processes where the Scrum Master, Product Owner, Stakeholder, and the Team add details and estimates to the backlog.
- Product backlog refinement takes place as often as necessary during the Sprint but should take no more than 10 percent of the Sprint’s duration.
Daily Scrum (or Standup)
- A quick meeting of approximately 15 minutes that anyone can attend, but where only the Scrum team can talk.
- These meetings are held at the same time and place each day while the Sprint is in progress to create a work plan for the next 24 hours.
Sprint Review (Demo)
- A meeting at the end of the Sprint, where the Scrum Master, Product Owner, Stakeholder, and the Team review work that has been completed to determine whether the product meets the definition of "done”.
- Sprint reviews typically take one to two hours, depending on the size of the Sprint.
Sprint Retrospective
- A meeting that takes place after the Sprint review and before the next Sprint planning meeting.
- Retrospectives feature the Scrum Master, Product Owner, and the Team discussing (without finger-pointing) what went well and what could go better in the future.
- Sprint retrospectives take approximately 45 minutes for each week of the Sprint.
Communications Tools Commonly Used in Scrum
Scrum Artifacts
- Communication tools that help those involved with the project develop a common understanding of the product being developed.
Product Backlog
- A prioritized to-do list that is created and maintained by Product Owner.
User Stories
- Descriptions of software features, written from a user-perspective, which follow a common format.
- As a ____
- I need _____
- So that ________
Sprint Backlog
- List of the highest priority user stories that go into a Sprint.
Release Burndown Chart
- Visually shows the progress of the Sprint.
The Scrum framework has become more prominent in software development than traditional planning-oriented ‘waterfall’ frameworks.
To Recap
Scrum makes rapid application development possible through consistent reliance on the six core principles: empirical process control, self-organization, collaboration, value-based prioritization, time-boxing, and iterative development.
The Scrum framework is even being adapted by other industries thanks to its successful implementation in software development.