A Brief Introduction to Scrum:

Who Uses Scrum?

This is just a small sample of the name-brand firms who have changed their approach to building products.

  • Google
  • Microsoft
  • Nokia
  • State Farm
  • Siemens
  • Cisco
  • SalesForce.com
  • Bose
  • Motorola
  • Electronic Arts
  • Inuit
  • TomTom
  • Northrup Grumann
  • Hewlett Packard
  • BMC
  • CapitalOne

Scrum is a world-class software project delivery power tool that is designed to enable development teams to begin delivering real, working software in as little as two weeks. I recommend it to all teams who are wanting to begin agile software development because it is easy to learn and can "wrap" around existing practices to minimize organizational disruptions. It is important to note that Scrum is not a methodology: It doesn't prescribe how you should build software itself or resolve problems that arise in due course; it is a set of rules of engagement that help define who-does-what to optimize productivity and value while controlling scope.

Definition:

Scrum (n): A simple framework within which people can address complex problems and productively and creatively develop products of the highest possible value.

Scrum was developed over 20 years ago by Ken Schwaber and Jeff Sutherland, who adapted lean manufacturing techniques for software development projects, taking inspiration from Takeuchi and Nonaka's 1981 Harvard Business Review paper, The New New Development Game which described how Japanese firms were able to quickly bring consumer products to market with higher quality than previously attained. It has since been used by thousands of software development teams and organzations to deliver all manner of products and systems.

The core of the Scrum process framework is a repeatable 2-4 week time box called a Sprint that starts with collaborative planning between the development team and customer, and concludes with a review of the delivered product increment. Each day during the Sprint, the team has a short meeting called the Daily Scrum where they inspect their progress and make any necessary adaptations to maintain progress.

Scrum Roles:

Unlike traditional software development projects that have a phalanx of roles, there are just three in Scrum: The Scrum Master, The Product Owner/Manager and the Development Team.

The Scrum Master or Coach helps the Product Owner and Development Team optimize productivity and value by enforcing the rules and providing servant-leadership through the removal of impediments and provision of as-required resources and assistance.

The Product Owner/Manager sets the vision, scope and definition for a software product or service that is being built by the Development Team and is responsible for maximizing value and the return on investment (ROI) delivered each Sprint.

The Development Team is 5-9 software developers, testers, requirements analysts, UI/UX designers or other mix of professionals who are assembled to build the software product or service for the Product Owner.

Scrum Artifacts:

Unlike traditional software development projects that produce a lot of superflous documentation and artifacts that do not positively contribute toward the goal of creating working software, Scrum has only three: The Product Backlog, The Sprint Backlog and The Product Increment.

The Product Backlog is a master-list of the features that will comprise a release of the product or service. It is maintained by the Product Owner/Manager who keeps it prioritized (with the aid of the Development Team and Scrum Master) according to the highest value and priority items that will maximize their ROI.

The Sprint Backlog is a task list built and maintained by the Development Team for each Sprint that details what needs to be done to turn a set of selected features from the Product Backlog into a working product. During the Sprint, the team continually evaluates their progress against this list, compiling the results into a Sprint Burndown graph.

The Product Increment is the goal of EVERY Sprint and the guarantee of ROI to the Product Owner and stakeholders: Working software that implements the features selected for the Sprint.

Scrum Events:

Traditional software projects are often referred to as "high-ceremony" because of the number and size of meetings that are held to run the project through its various phases, including sign-offs. In contrast, Scrum has only four: Sprint Planning, Daily Scrum, Sprint Review and Sprint Retrospective.

Sprint Planning is a two-part meeting where the Product Owner/Manager selects features from the Product Backlog for a Sprint (ie. the "what") and negotiates with the Development Team what can be built, who then decompose the features into tasks for a Sprint Backlog (ie. the "how").

Daily Scrum is a regular 15 minute meeting each day where the team updates one another on their progress and advises the Scrum Master of any impediments or problems they need addressed to keep productivity high and meet the goal of the Sprint.

Sprint Review is a 2-4h collaborative meeting that concludes the development activities of the Sprint and allows the Development Team and Product Owner, along with any stakeholders inspect the functional, potentially-shippable product increment that has been delivered. All or parts of the increment may be accepted or rejected, and feedback is gathered to inform the next Sprint Planning meeting.

Sprint Retrospective is a 1-2h meeting where the entire Scrum Team reviews how they performed over the past Sprint and how they can improve for suceeding sprints for continuous improvement. This is a critical aspect that sets Scrum apart - in traditional projects, this is often referred to as a "post-mortem" and conducted only once after the entire project has concluded, and often to address failures.