Agile - Scrum Framework¶
You know the “scrum” word is taken from a rugby game! A scrum is a method of restarting play in rugby football that involves players packing closely together with their heads down and attempting to gain possession of the ball. The goal is to move the ball down the line one point at a time.
Similarly, the scrum approach breaks the deliverables and milestones into smaller pieces and involves the entire team to focus on one goal until it is done, reflect and move on with the next goal.
Definition¶
According to Scrum Guides, “Scrum is a lightweight framework that helps people, teams, and organizations generate value through adaptive solutions for complex problems”.
Scrum is often used to manage complex software and product development, using the iterative and incremental method. Scrum has more advantages than the waterfall method since it increases productivity and time delivery of the product in the market. Scrum enables organizations to adjust smoothly to rapidly-changing requirements, and produce a product that meets evolving business goals. Applying scrum methodology benefits the organizations in the following ways:
- Increased team trust, better communication with the customer, and hence always a satisfied customer.
- Increased adaptability to changes in requirements.
- Increased productivity since provided a better overview of the product in smaller milestones.
- Increased predictability and control risk.
Scrum Theory¶
Before we move ahead with the process and how it is implemented, let us first understand its core values and commitments followed every day till the completion of the project.
Let us assume the Scrum framework as an institution that is founded on blocks of “empiricism” and “lean thinking”. The institution pillars are “transparency”, “inspection”, and “adaptation”. The team members abide by core values ( such as Commitment, Focus, Openness, Respect, and Courage ) while building the institution.
Thus, the scrum team ( Product Owner, Scrum Master, Developers) achieves the artifacts (like “product goal”, “sprint goal”, and “definition of done”).
The analogy was really heavy with words. Right! Let’s check out the definitions and what they mean.
Foundation Block¶
The scrum is founded on empiricism and lean thinking.
-
Empiricism¶
It asserts that knowledge comes from experience and making decisions based on what is observed.
-
Lean thinking¶
It reduces waste and focuses on the essentials.
Three Pillars¶
The foundation pillars of scrum framework are:
-
Transparency¶
Transparency allows visibility to the significant aspects of the process to team members to feel responsible for the overall result. The team members should know the essentials of the process and be regularly informed of changes.
-
Inspection¶
Inspection timely checks on the process of sprint goal until final goal to identify possible deviation. Inspection allows checking on issues that can become a roadblock in the development process and time to rectify them.
-
Adaptation¶
Adaptation is adjusting a process as soon as possible to minimize any further deviation or issues. Scrum Teams can adapt the product at the end of every sprint. Scrum allows for adjustments at the end of every iteration.
Core Values¶
-
Commitment¶
Commitment is followed by scrum team members to achieve the goal.
-
Focus¶
Focus allows members to look for solution to problems one at a time.
-
Openness¶
Openness introduces more conversation and expression about difficulties faced during implementation.
-
Respect¶
Respect instills trust on capabilities of each other keeping them independent as well.
-
Courage¶
Courage allows members to do the right thing and work on tough issues.
Essential elements of Scrum¶
The essential elements of Scrum framework consists of roles, artifacts, and events. Roles are important to hold the accountability and responsibility of the assigned task, artifacts checks transparency and clarity, and events provides opportunities to understand the task better, inspect and adapt.
Scrum Team¶
The Scrum team consists of three roles Product Owner, Scrum Master, and Developers.
Let’s understand each roles and its responsibilities.
Product Owner¶
The Product Owner is accountable for maximizing the value of the product resulting from the work of the Scrum Team. The product owner is often referred to as the voice of the business.
- In touch with stakeholders - Product Owner meets stakeholders, understands their requirements for the product, creates priorities of the task, and delegates it.
- Product Vision - They are responsible for setting the vision and helping the team define the work needed to be done.
- Prioritization - The Product Owner determines what needs to be done and sets the priorities to deliver the highest value.
- Product Backlog Items - They clearly express product backlog items(prioritized list of deliverables) to best achieve goals and missions. Ensures product backlog is visible, transparent, and clear to all.
- Plan sprints - They are responsible for planning sprints and product iteration releases. Make decisions and set goals for future sprints.
Scrum Master¶
Scrum Masters are accountable for scrum adoption and the scrum team’s effectiveness. The Scrum Master is often referred to as the Servant Leader.
Scrum Masters are true leaders who serve the Scrum Team, Product Owner as well as organizations.
- Communicator - Clearly communicate vision, goals, and product backlog items to the team members. The Scrum Master helps employees and stakeholders understand and enact scrum.
- An aide to Product Owner - Helps Product Owner to find techniques for effective product goal definition, create clear and concise product backlog items.
- Facilitator - The Scrum Master facilitates the sprint retrospective meeting and sprint ceremonies to plan and review the features for development.
- Remove Impediments - Remove impediments to the development team’s progress. . It is the job of the Scrum Master to ensure that any roadblocks are resolved quickly. If the Scrum Master can’t directly resolve the issue themselves, they need to empower the right person to do so.
- Ensures Cooperation and work - environment - Enables close cooperation across all roles and functions and removes barriers. Shields the team from external interferences.
Developers¶
Developers are accountable for creating increments for every Sprint that meets the definition of done. Developers are cross-functional and self-organized members.
- Executors - They have the skills necessary to make the product vision a reality. They estimate the complexity and effort to get the work done.
- Update the Product Owner - They work with the product owner in clarifying what the requirements are and have the product owner review the quality of their outputs.
- Handles Stories - They outline the tasks that need to be completed to develop a feature/user story.
- Flexible - The development process goes through lots of changes and is fast-paced. Hence, the team needs to be flexible enough to adapt to new tools and processes.
Events¶
The events is another term for the meetings in a scrum with predefined motives, participants, and time constraints. The events in scrum are sometimes called as ceremonies.
Sprint¶
Sprints are the heartbeat of Scrum, where ideas are turned into value. A sprint is a time-boxed event where the important stuff is discussed among the scrum team.
A Grooming Session is held before the actual ceremonies happen, where the entire scrum team collaborates and discusses the product under product owner. The Product Owner arranges the session with product backlog. The team calculates the time required to make improvements in the backlog. The backlog/epics(collection of user stories) are broken down into stories(specific task). Acceptance criteria are redefined. Developers are assigned with story points.
All the work necessary to achieve the Product Goal, including Sprint Planning, Daily Scrums, Sprint Review, and Sprint Retrospective, happen within Sprints.
Sprint Planning¶
During sprint planning, the entire team collaborates and discusses what they can achieve and how they can achieve the defined sprint goal. The product owner describes the highest priority features. Then, the team selects user stories from the product backlog. Developers decide how much of the high-priority work they can accomplish during the sprint.
Daily Scrum¶
The development team meets for 15 minutes every day of the sprint to inspect progress toward the sprint goal. They discuss how much progress they have made so far, if any issue they are facing, ask for help if needed, whether they are on right track or not, what all things need to be done today.
Sprint Review¶
Here the team displays what has been accomplished during the sprint as a demo of new features to the stakeholders. The project is assessed against the sprint goal. They adapt the product backlog as needed based on this feedback.
Sprint Retrospective¶
Sprint retrospective happens immediately after sprint review. The team reflects how the last sprint went regarding individuals, interactions, processes, tools, and definition of done. Sprint Retrospective helps the team to inspect themselves and to bring continuous improvement for the next sprint.
Artifacts¶
Scrum’s artifacts represent work or value. They increase the transparency of key information.
Product Goal¶
The product backlog is the process of breaking down complex tasks into simpler and more precise items. Product Backlog helps everyone, including stakeholders, to understand what’s required to develop or improve the product.
The Product Goal describes how the product will look like in the future, mapping the team to remain on track without losing focus. The Product Goal is explained in the Product Backlog.
Sprint Goal¶
Sprint Backlog is a plan by and for the developers to accomplish the Sprint Goal. Sprint backlog keeps developers on track by giving a real-time picture of the work they need to accomplish during the Sprint to achieve the Sprint Goal. Moreover, the sprint backlog is flexible enough to change whenever needed, which is discussed in the daily sprint.
A specific and singular purpose for the sprint backlog. This goal helps everyone focus on the essence of what needs to be done and why.
Definition of Done¶
The Definition of Done describes the state of the Increment when it meets the quality standard required for the product. If a Product Backlog item does not meet the Definition of Done, it cannot be released or even presented at the Sprint Review. Instead, it returns to the Product Backlog for future consideration.
Putting it together¶
Let us understand the Scrum framework by putting it all together:
- At start, where stakeholders come up with a purpose to Product Owner. The Product Owner understands Stakeholders and tries to vision their product, later prepares a list of prioritized task called as Product Backlog keeping Product Goal in mind. The Product Owner will make a Scrum Team with the help of other stakeholders that consists of Developers and Scrum Master.
-
The Scrum Team starts sprinting which can lasts up to a month. During Sprint Planning, Scrum team discusses Product Backlog and decides tasks for sprint. The Product Owner with team breaks the sprint backlog into epics and user stories to clearly define the task for the sprint. Developers pull the work from user stories and forecast what they can do during the Sprint.
-
Once Sprint Planning is over, Developers start executing their plan, and they meet every day for a maximum of 15 minutes during Daily Scrum. They review their progress towards the Sprint Goal and adjust the plan to meet the Goal during Daily Scrum.
- The scrum master checks for burndown charts(It is a graphic representation that shows the rate at which work is completed and how much work remains to be done), how much task is uncompleted and resolves the issues faced by developers during development phase.
- During Sprint Review, Scrum Team demonstrates their accomplishments to Stakeholders and Product Owner in the form of Increment. Stakeholders and Product Owner review the outcomes keeping the Product Goal in mind.
- A necessary discussion occurs between the stakeholders and the Scrum Team to see what best can be done in future Sprints looking at the progress made so far towards the Product Goal, which may result in adapting the Product Roadmap.
- Then, during Sprint Retrospective, Scrum Team meets to inspect themselves and the product quality is defined using the Definition of Done. The Scrum Team will review the team relationships, collaboration, processes followed during the Sprint, and the Definition of Done with an anticipated outcome of a few improvement commitments for the team to challenge themselves in the upcoming Sprint.