What is Scrum?
Scrum is an agile project management framework that is commonly used in software development. The framework emphasizes iterative and incremental development, where a cross-functional team works collaboratively to deliver a potentially shippable product increment at the end of each iteration, called a Sprint.
This differs from traditional project management by enabling teams to release a functional and valuable product more quickly, which can be beneficial for businesses looking to get their product to market as soon as possible. It also allows for flexibility in the development process, as a team can adjust their approach based on feedback from users and can focus on delivering the most important and valuable features first.
Scrum has its own set of values: Commitment, Courage, Focus, Openness and Respect. These values are key to Scrum Teams building trust, having courage to do the right thing, and working on difficult problems.
Without the Scrum values, it is difficult for the Scrum Team and its stakeholders to be open about their work and the challenges faced to perform and complete the work.
A Scrum Team
Scrum Teams consist of three main roles: Product Owner, Scrum Master and the Development Team. The team strives to become self-organizing and cross functional, with a focus on shared responsibility. Self-organizing teams are typically stable teams that choose how to accomplish their work over being directed by others. Cross-functional teams work towards building the necessary skills and competencies required to accomplish their work consistently without depending on others outside the team. Scrum teams should be less than ten people, beyond that the team becomes inefficient and should be split. Here are the roles within a Scrum Team:
The Scrum Master
The Scrum Master is responsible for ensuring Scrum is understood and followed by the Scrum Team, adhering to Scrum theory, practices, and roles. The Scrum Master works with the team and those outside the team to remove impediments preventing the team from making progress, alongside continuous improvement efforts. The Scrum Master serves as a facilitator, leader, influencer, coach and educator, improving overall interactions to maximize the value created by the Scrum Team.
The Product Owner
The Product Owner is responsible for maximizing the value of the product and is accountable for the Product Backlog. As such, the Product Owner is given the authority to prioritize the team’s work to ensure the team is working on high value items. Aligned with the 5 levels of planning, Product Owner responsibilities range from strategy through to implementation work.
The Development Team
The Development Team is ideally a cross-functional team made up of the roles or skills needed to deliver the product or project. The self-organizing nature of Scrum means the team decides how to work together to accomplish the Sprint Goals and to deliver on commitment.
Scrum Ceremonies
The Sprint
The Sprint is a time-box in which a potentially releasable increment of the product is produced. The Sprint contains and consists of Sprint Planning, Daily Scrums, the development work, the Sprint Review, and the Sprint Retrospective. Typically, Sprints are 1 to 4 weeks long where the team focuses on completing a specific set of items from the Product Backlog.
At the beginning of each Sprint, the team holds a Sprint Planning meeting to define the Sprint Goal, select items from the Product Backlog, and estimate the amount of work required to complete them. The team then works on these items during the Sprint, holding Daily Scrum meetings to ensure everyone is aligned and obstacles are identified and addressed promptly.
At the end of the Sprint, the team holds a Sprint Review meeting to demonstrate the completed work to stakeholders and get feedback. They also hold a Sprint Retrospective meeting to reflect on the Sprint and identify areas for improvement.
Sprint Planning
In Sprint Planning, the Scrum Team collaborates to build a plan for the next Sprint. The team should review the Product Backlog and identify the items that are most important to the Product Owner and stakeholders. These items should be prioritized based on business value, technical feasibility, and customer needs. The team will then select the user stories or tasks that they will commit to complete during the Sprint and estimate the effort that is required to complete each. The goal of Sprint Planning is to establish a shared understanding of the work to be done and to create a plan for achieving it.
Daily Scrum
The Daily Scrum is an internal meeting for the Development Team. In it, the Development Team inspects their progress toward the Sprint Goal and plans how it will work together for the next 24 hours to accomplish the Sprint Goal.
The Development Team sets the meeting agenda. If others attend the Daily Scrum, the Scrum Master ensures that they do not disrupt the meeting.
The Sprint Review
The Sprint Review is an opportunity to reflect on the progress made during the Sprint. As each Sprint should produce a “potentially releasable” product increment, this is what is usually reviewed during the event.
The Sprint Retrospective
The Sprint Retrospective is the team’s opportunity to reflect on its own practices and facilitate continuous improvement and to enable the team to work more effectively in future Sprints. In the meeting, teams discuss what went well, what didn't go well, and what can be improved in the next Sprint. The outcome should result in action items that are specific, measurable, and actionable for the team to improve upon.
Scrum Artifacts
Scrum Artifacts are the tangible and transparent components that support the empirical nature of Scrum. They are designed to promote transparency, inspection, and adaptation within the Scrum framework.
The Product Backlog
The Product Backlog is a list of work to be done. It includes user stories and non-functional requirements that incrementally delivers the Product Vision. The Backlog is owned and managed by the Product Owner who is responsible for ensuring that it is constantly updated, refined, and prioritized to reflect changing business needs.
Product Backlog Refinement is the act of adding detail, estimates, and order to items in the Product Backlog. This is an ongoing process in which the Product Owner and the Development Team collaborate on the details of Product Backlog items. During Product Backlog Refinement, items are reviewed and revised. This is not officially a Scrum Event, but rather an activity that most teams find helpful or even necessary in order to maintain a healthy Backlog.
Sprint Backlog
A Sprint Backlog is a prioritized list of tasks or user stories that the team plans to complete during the upcoming Sprint. It is a dynamic list that is created during Sprint Planning. Backlog items are ordered based on their priority and estimated effort required. It is an important tool for transparency and communication within the team and stakeholders. It helps ensure alignment on the work that needs to be done and provides a shared understanding of the progress being made.
Burn-down Charts
Burn-down charts are visual tools that are commonly used to track progress over time. They consist of two axes: the x-axis represents time (usually in days, weeks, or Sprints) and the y-axis represents the amount of work remaining to be completed (usually in story points, hours, or other units of effort). The chart starts with the total amount of work that needs to be completed, and as work is completed, the chart shows how much work is left to be done over time. They provide a visual to see how a project is progressing and whether it is on track to meet its goals. They also help identify issues early and indicate when a team is falling behind schedule. This allows the team to take corrective action before the problem becomes more serious.
Product Increment
A Product increment is the sum of all the Product Backlog items completed during a Sprint. An increment is what is decided to be released to the customer. Like the name suggests, it is a small functional piece of a product which adds incremental value to the overall product.
Definition of Done (DoD)
The Definition of Done for a Backlog item (user story) is the set of quality standards that apply broadly to all Backlog items. It is a shared agreement upon checklist that defines the criteria that must be met in order for a Backlog item to be considered complete and ready to be released to customers. An example of the Definition of Done for a software team might be that their code is checked in and tested against the current version in source control.
Overall, getting started with Scrum requires a commitment to the Agile principles and incremental delivery, a willingness to work collaboratively, and a focus on continuous improvement. There can be challenges when shifting a culture of traditional Waterfall projects, but the advantages of an iterative approach and will far outweigh the drawbacks.