Bottongos.com

Committed for Better Business

Agile software development is gaining a lot of popularity due to its incremental nature, its flexibility to change, and its multi-faceted collaborative and self-organizing teams. This provides the perfect solution for businesses like startups that are not very 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 got 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 Feature 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, including 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 down the field to reach their goal. Scrum is an empirical 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 is made up 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. There is usually a Product Owner who acts as the customer or customer representative and finalizes the requirements. The Scrum Master is the process owner who primarily works to remove barriers faced by the team and makes sure 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 its team members to wear different hats and it is very common to find team members collaborating when and where needed.

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

Scrum is made up of iterations or ‘sprints’. These can have 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 are produced in Scrum are Product Backlog, Sprint Backlog, Sprint Burndown, and Release Burndown.

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

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

The Sprint Burndown chart 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 publication goals.

Scrum timeboxes

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 frames 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 length of the Sprint decided by the team.

Scrum Acceptance Criteria

Scrum introduces the concept of ‘done’. This is also called the success criterion or acceptance criterion and describes the conditions that a particular feature must meet in order 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 your computer that could be part of a 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 become one or multiple stories. The story establishes what the user accepts from a certain function. For example, ‘As a user, I should be able to log into my email.’ The success criteria describe the things that must happen to consider this ‘done’. All the tasks required to plan, design, code, and test this story are placed below this. These tasks can be performed by multiple people in the team.

Scrum encourages the 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, section barriers, 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 from 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

Special mention deserves the retrospective. This is where the team meets at the end of a sprint and talks openly about what went well and what could be done better. A retrospective 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 collocation, 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 and 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 *