Scrum & Scrum Framework is the latest buzzword in the IT industry, which implies that the teams focus on the continuous evolution of learning and adapting throughout a project. They prefer to deliver a big project in bite-sizes rather than all at once. Below article is aimed at covering:-
- Definition of Scrum
- History of Scrum
- Framework of Scrum
- Examples for better comprehension
What is Scrum?
We discussed Agile Methodologies in our previous lecture, which explained various terms, roles & frameworks used to develop an agile software. Out of the multiple frameworks discussed, Scrum is one of the most widely used frameworks which employs various processes and techniques.
Scrum and Agile are two terms that are often confused because Scrum works around continuous improvement, which is a core principle of agile.
Scrum is an agile way to manage a project say software development; It's a framework for getting work done, whereas agile is an attitude or a mindset. You can't become “agile” as such, but you can always use a framework like Scrum to help you start thinking in a way that revolves around continuous improvement. Scrum assists in building agile principles into your everyday work.
Definition of Scrum
Scrum is a framework in which the team solves complex problems and comes up with productive & innovative solutions that are of the highest possible quality. It is a framework that assists the smooth & productive way to deliver end products & helps in building agile principles.
Scrum is:
- Lightweight
- Simple to understand
- Difficult to master
History of Scrum
The term "Scrum" comes from authors Hirotaka Takeuchi and Ikujiro Nonaka, who in 1986, wrote an article comparing high-performing, cross-functional teams to the scrum formation used by rugby teams.
It originates from the moment in a rugby game where suppose during any violation, or if the ball goes out of the ground, the team players lock their arms, heads down aim at taking possession of the ball. Unlike a relay race where the baton is passed & success depends on the speed of the team member. Hence, Scrum is cross-functional, where competencies of each member are utilized to deliver an agile end product.
Scrum Values
The entire Scrum framework is based on mainly 5 Scrum Values, which are discussed below. These values provide a standard to define what our actions & our work should adhere to. Hence, it's essential to reinforce theses values time and again.
- Commitment – This means dedication to providing high quality, working software with active collaboration.
- Courage - Means to accommodate client's new requirements & to deliver high-quality products every time, in every iteration.
- Focus - Means to concentrate on current priorities irrespective of their changeability.
- Openness - Means transparency in doing work with stakeholders, consistency within the team, openness to accept the new features.
- Respect - Means respecting the roles, norms, needs & expectations of various scrum partners.
Scrum Framework
The Scrum framework is heuristic in nature means it acknowledges the fact that a team doesn't know everything at the beginning of a project & the learning evolves gradually during a project. It is fabricated in a way where teams keep refreshing their priorities according to end-user requirements and continuously adjust to the fluctuating conditions.
Scrum is structured but not rigid in its application. Its application & execution can be customized to the needs of any organization.
The Scrum framework consists of:
- Scrum Artifacts
- Scrum Roles
- Scrum Rules
- Scrum Events
Each component in the Scrum framework serves a specific purpose & we shall be discussing them one by one in the below tutorial.
Scrum Artifacts
Artifacts are something that we create, e.g., a tool to solve a problem or a value that adds transparency.
The main idea of defining an artifact is that everyone in a team should be on the same page. The scrum team continuously visits these 3 Artifacts to make sure the process is smooth & that everyone in the group has the same understanding of how to go about the inspection and adaptation.
There are three primary Scrum artifacts, namely:-
- Product Backlog
- Sprint Backlog
- Sprint Goal (or increment)
Product Backlog
The Product Backlog is a dynamic list of features, requirements, improvements, etc. which acts as an input for the Sprint Backlog. It is a customer's requirement that gets captured to understand the client's need.
It is, practically, the team’s “To Do” list. Each item logged in the product backlog is referred to as a Product Backlog Item (PBI). Product Owner creates Product Backlog. We will understand more about the responsibilities of the Product Owner later in this article.
Sprint Backlog
Sprint Backlog is the list of finalized user stories, work items, bug fixes, etc., completed & selected by the scrum team for implementation & execution in the current sprint cycle.
It is created by the Scrum Team (discussed later).
Hence, Sprint Backlog is a further division of requirements that are gathered in a Product Backlog, which is given an effort-hour estimate, i.e., an estimate of the effort required to finish each task. This effort is measured in the number of hours.
Sprint Goal
The Sprint Goal is the useable end product derived from the completion of a sprint. It is also called as an increment. This sprint goal is demonstrated at the “End-of-Sprint Demo”, which will be discussed in the chapter further.
It defines the objective that has to be met as decided by the development team. It is derived after a discussion between the Product Owner (PO) & the Scrum Team (Development Team).
Scrum Roles
Each Scrum Team consists of three leading roles that are indifferent to the job titles of those members in the organization. Irrespective of what your job title is, you can play any of the below roles in Scrum.
The three leading roles in a Scrum are:-
Each of these roles has a defined set of responsibilities, and successful completion of the project depends on how closely do they work with each other & their level of collaboration.
Let's discuss them one by one to know more about their responsibilities.
Product Owner
The Product Owner, also known as PO in its abbreviated form, is a central role within the Scrum Framework. He represents the end customer or stakeholders. He is the main character in agile testing, which creates stories and features from the requirements provided by the stakeholders (also referred to as Epics/ User Stories). There is always one product owner in any scrum team.
Three main functions of a product owner are:-
- Defines the product in the customer-focused terminology (typically user stories)
- Adds them to the product backlog
- Prioritizes them based on importance and dependencies
The primary responsibilities of a product owner are:-
- Defines and announces releases
- He communicates delivery and team status to the Scrum Team. This acts as a reminder for the Sprint Goals to be achieved.
- Shares progress with the Development Team basis how well the work has been done.
- Negotiates priorities etc.
- Ensures that the product backlog’s visibility is high and bright.
Scrum Team
A Scrum Team is a group of individuals like developers, testers, etc. who work together to deliver the requested and committed products. The scrum team prioritizes the items from the Product Backlog that can be delivered & committed to. The Scrum Team is responsible for delivering the work to the customer.
Scrum teams, also known as Development Teams, are structured and empowered to self-organize and manage their work.
Main features of any Scrum Team are:-
- Self-organizing - Scrum teams are self-organizing means the teams know how to accomplish their work on their own, without outsiders’ interference.
- Cross-functional - Scrum teams are cross-functional means they have all the competencies needed to accomplish the task without depending on non-team members.
- The Scrum team is designed to optimize flexibility, creativity, and productivity.
Scrum Master
A Scrum Master, also known as SM in its abbreviated form, helps the scrum team perform at their highest level. He protects the team from both internal and external distractions. His role is not of a project manager or product owner but of a facilitator who ensures that there are no blockages that can hamper the ability of the team to deliver products.
The primary responsibilities of a scrum master are as below:-
- Helps the PO maintain the product backlog.
- Assisting in the determination of the definition of done (DOD) for the product.
- Coaching the team, within the Scrum principles.
- Promoting self-organization within the team
- Facilitation of Scrum Events like
- Daily Scrum Meetings
- Sprint Planning Meetings
- Sprint Review Meetings
- Sprint Retrospective Meeting
Scrum Rules
Scrum uses an incremental & iterative approach so that the predictability is optimized & risk is controlled. Three pillars uphold every implementation of scrum process control:
-
++Transparency++, e.g., Common language for all participants, i.e., those working on the project & those who are going to check the work done should have an ear understanding of the term “finished”.
-
++Inspection++, e.g., regularly inspecting Scrum artifacts and progress toward a Sprint Goal to detect undesirable variances.
-
++Adaptation++, e.g., Following four things are a way to adapt to deviances:-
- Sprint Planning
- Daily Scrum
- Sprint Review
- Sprint Retrospective
(We shall understand these terms in the last section of this tutorial).
Scrum Events
Scrum Events are prescribed events that are used to create regularity and to minimize the need for meetings which are not defined in a Scrum. All scrum events are time-boxed. These events are:
Before understanding these series of events let's see what a sprint is.
Scrum Framework - SPRINT
A sprint refers to a small, time-bound period in which a scrum team works to deliver the committed project to the user. Sprints are at the core of scrum and agile methodologies.
In the Scrum Framework, all activities which are shortlisted entries in the Scrum Backlog are executed in each Sprint. Sprints are also called ‘Iterations’. Sprints are generally 2-4 weeks long, but their duration can be decided by the team consensually.
Once a Sprint starts, its duration is fixed and cannot be shortened or lengthened. The remaining events may end whenever the purpose of the Scrum event is achieved, ensuring judicious use of time.
Each Sprint follows a pre-defined series of steps, as shown below:
Each Sprint starts with two meetings to define the content of the Sprint:
- WHAT-Meeting: Scrum Team commits to the User Stories from the Scrum Backlog.
- HOW-Meeting: To further divide the committed User Stories into smaller tasks.
The culmination of these two meetings is also known as the Sprint Planning Meeting.
Under the deployment stage & during the Sprint, a short daily Standup-Meeting (Daily Scrum Meeting) is held to update the status of the user stories and to assist the self-organization of the team. Here, the Product Owner grooms the Product Backlog, also known as Product Backlog Grooming, wherein the requirements are prioritized and refined accordingly in consultation with the Scrum Team.
At the end of the Sprint, a Sprint Review Meeting is conducted to allow the Product Owner to check if all of the committed tasks are finished and implemented correctly. This is also called as DOD, i.e., Definition of Done, which means all the tasks under User Story have been accomplished & are ready to be checked by the PO.
Additionally, a Sprint Retrospective Meeting is conducted to understand what went well, what didn't, and what should be improved.
Now that we have discussed all the terminologies of a scrum process let’s understand Scrum Events / Scrum Process with an example.
Before starting the first Sprint
- Garry is assigned as the Product Owner of a new software project. One of his first tasks is to write down the high-level requirements called Epics, from the customer.
- Bossy is the Scrum Master.
- He writes them into the Product Backlog and initiates an estimation and prioritization session with senior developers & tester.
- Now he starts to break-down the high-level requirements into smaller user stories. Let's assume eight stories are created out of 1 Epic.
- With this list, he then plans & invites for the first Sprint Planning meeting.
Sprint 1 - Day 0
- During the Sprint Planning meeting, Garry presents the Product Backlog items from the highest priority to the lowest.
- The team clarifies open questions, and for each task, the team discusses if they have enough capacity, skills, etc.
- After this, they commit to complete the stories 1, 2,3,6,7 and 8 until the end of this sprint. Out of the total eight stories, numbers 4 & 5 cannot be done due to technical issues.
- After the Sprint Planning meeting Bossy - the Scrum Master of the team - calls the team to define the details of how the committed items are going to be implemented.
- The resulting tasks are written down & every member of the Scrum Team selects a task to work on.
Sprint 1 - Day 1
- In the morning the whole team comes together for their Daily Scrum Meeting.
- Everyone gives a short statement of what has been achieved so far, tells what he or she is planning to do today and shares blockages if any.
- Today one of the team members has a problem with licensing. Bossy checks if other team members have the same problem & say that he'll take care of that after the meeting.
- After 15 minutes, everyone goes back to work.
Sprint 1 - Day 2
- Today, again, the whole team carries out their Daily Scrum meeting.
- In the afternoon, one of the Scrum team members is stuck in a task. He calls Garry - Product Owner- and discusses.
- The scrum team mutually finds out a solution and carries on to work.
Sprint 1 - Day 14
- The final day of the first Sprint and Bossy –Scrum Master- has invited the team for the Sprint Review Meeting.
- The team has prepared a software. Garry - Product Owner- checks if the product meets his expectations and if the features are documented as required.
- At the end of the Review Session, he derives the following conclusions:
- Stories 1, 3, 6 are finished as expected
- Story 2 & 7 couldn't be finished in time
- Story 8 has some tasks that have to be redone
- In the afternoon, the team gets together for the Sprint Retro Meeting and discusses what went well during the sprint and what could be improved.
- One of the feedbacks is that the team faces trust issues. Bossy invites the people manager to guide the scrum team on mutual trust for better results.
Sprint 2 - Day 1
- Garry - Product Owner- adds new items to the Product Backlog based on his recent customer meetings.
- Moreover, he suggests additional items for the addition in story 8.
- Garry then invites the team for the Sprint Planning Meeting for Sprint 2.
- The team discusses and commits to stories with the guidance of Bossy –Scrum Master- and the second Sprint begins.
That concludes the Scrum framework and its execution. We will be reading about the JIRA tool in our next tutorial, which is an agile project management tool. Till then, enjoy learning!