Introduction to Scrum

Agile software development is gaining a lot of popularity due to its incremental nature, its flexibility to change, and its collaborative and self-organizing multifaceted teams. This provides the perfect solution for businesses like startups that are not resource intensive and need to respond to market conditions fairly quickly. Modern Agile owes its proliferation to the Agile Manifesto which was published in 2001 by a group of veterans who came together to discuss lightweight and flexible development methods. The rest, as they say, is history!

There are several popular Agile processes, such as Extreme Programming or XP, Scrum, pair programming, acceptance testing, and role-based development, to name a few. Perhaps the most popular and widely used today is Scrum. Scrum was formalized in 1993 by Ken Schwaber and Dr. Jeff Sutherland. Scrum has been successfully implemented in many of the top organizations around the world, such as Yahoo, Capital One, GE, and Thoughtworks. So what exactly is Scrum and how is it different from many other methodologies or frameworks out there?

Why Scrum?

The word ‘scrum’ is derived from the game of rugby in which a team collectively moves across the field to reach their goal. Scrum is an experiential process that encourages teams to challenge themselves a little more each time. Scrum follows a process of ‘Inspect’ and ‘Adapt’. Frequent inspection exposes problems or barriers, and then the team adapts its approach as needed. This shorter feedback loop ensures that any product defects are fixed early in the cycle.

Scrum is made up of certain roles, artifacts, and time boxes. A Scrum team consists of 5-7 people. Let’s take a brief look at the various components of Scrum.

Scrum roles

Scrum defines only three roles for your development team. These are the Product Owner, the Scrum Master, and the Team. Typically, there is a Product Owner who acts as the customer or customer representative and finalizes the requirements. The Scrum Master is the process owner who works primarily to remove barriers facing the team and ensures that Scrum is followed correctly. The Team is any member of the team other than the Product Owner or Scrum Master. This could be a programmer, tester, business analyst, architect, etc. Scrum encourages your team members to wear different hats, and it’s all too common to find team members collaborating when and where needed.

In Scrum jargon, team members are called pigs, while external resources are called chickens. This comes from a story about a pig and a chicken who plan to open a restaurant called ‘ham and eggs’. The pig would be ‘compromised’ since its skin is at stake. The chicken is only ‘involved’.

Scrum is made up of iterations or ‘sprints’. These can be of any duration ranging from one week to four weeks. Sprints start and end at a fixed time, regardless of whether the target work is finished. This aspect is called “time box” which will be explained later in more detail.

Scrum artifacts

The main artifacts that occur in Scrum are the Product Backlog, Sprint Backlog, Sprint Burndown, and Release Burndown.

The Product Backlog is an ordered list of all the features the customer could want in the product. Higher-priority features are at the top, ensuring that the most important and highest-value functionality is built first.

The Sprint Backlog is limited in scope. It consists of features from the Product Backlog that are going to be built in that particular sprint. Any work not done by the end of the sprint goes back to the product backlog for reprioritization.

The Sprint Burndown graph tells us how much time is left before we reach our goal. It tracks the work done every day and is relevant only to the given sprint.

The Release Burndown graph tracks the time remaining until the end of the release. It also shows how much work has been done against the publishing goals.

Scrum Time Boxes

Scrum introduces the concept of a time box. This means that a given event will have a fixed time and will expire at the end of the time limit. The various meetings in Scrum are assigned a timebox. Scrum time boxes include the Sprint Planning Meeting, Release Planning Meeting, Daily Scrum, Sprint Review, and Retrospectives. The Daily Scrum or standup is always 15 minutes. The other planning meetings also have a fixed time depending on the duration of the Sprint that the team decides.

Scrum Acceptance Criteria

Scrum introduces the concept of ‘done’. This is also called success criteria or acceptance criteria and describes the conditions that a particular feature must meet in order for it to be considered ‘done’ or complete.

Scrum Story Boards and Placement

The storyboard, used to represent the Sprint Backlog, is another pillar of the Scrum process. This is a physical board on the computer that could be part of one wall or multiple walls as needed. There is a concept of ‘story’ which is a high level feature or requirement. Typically, any product backlog item could be turned into one or multiple stories. The history establishes what the user accepts of a certain function. For example, ‘As a user, I should be able to sign in to my email.’ The success criteria describe the things that need to happen to be considered ‘done’. All the tasks needed to plan, design, code, and test this story are placed below this. These tasks can be performed by multiple people on the team.

Scrum encourages placement of all team members in an open group area with no walls. The idea is to encourage open communication and reduce the overhead of emails or phone calls. Impromptu discussions between the customer and team members are quite common in a Scrum room.

Information Radiators

Scrum artifacts are displayed throughout the area where the team sits and works. These include storyboards, backlogs, burndown charts, barriers section, architecture maps, layouts, etc. The idea is that any relevant information is easily visible to the team at all times. This is informative and motivating. Information radiates or jumps out of all charts and dashboards. Color coding is used to differentiate tasks, stories, barriers, etc. Many software tools are available to track Scrum projects, but in my opinion, they cannot replace the effect that physical information radiators have.

Sprint Retrospective

Retrospective deserves special mention. This is where the team comes together at the end of a sprint and talks openly about what went well and what could be done better. A hindsight should not be used to point fingers. Retrospectives become more effective as a team solidifies and team members trust each other and management. This is necessary to uncover impediments that people may be hesitant to talk about in a typical control management structure.

Scrum on the Global Stage

Although Scrum encourages colocation, it may not always be possible, especially in the case of distributed teams that are in multiple geographic locations. Scrum has been shown to be effective even in such situations and many teams practice distributed Scrum.

This is a high level introduction to Scrum. In the coming weeks, we will take a closer look in more detail at the various Scrum concepts discussed in this article.

Leave a Reply

Your email address will not be published. Required fields are marked *