Scrum

Scrum is elegantly deceptive. It is one of the easiest frameworks to understand yet is one of the hardest frameworks to implement well. I say “implement well” because Scrum’s inherent simplicity can seduce us into thinking it is easy to do, when in reality it can take years to do it well. Scrum seems to go against all that we have learned in our many, many years of waterfall development. It stands to reason that it will take us a while to unlearn our bad habits and adjust to a new reality.

Jeopardy has always been one of my favorite TV game shows. I keep wishing for the software development edition where we have categories like Methodologies and Frameworks, Common Causes of Software Failure, Famous Software Architects or Stupid Quotes from Smart People. I can think of dozens of questions that would fill these categories, such as, “Name the person who is thought to have said Be nice to nerds. Chances are you'll end up working for one.” I envision a question under Methodologies and Frameworks to be, “Named after a Rugby term, this project management framework delivers working software every two to four weeks.”

One common answer that would likely be accepted, in the form of a question of course, would be What is … Scrum?

So what is Scrum really? Scrum is not a methodology or set of engineering practices. It is, instead, a lightweight framework that was designed to manage software and product development. Ken Schwaber and Jeff Sutherland describe Scrum like this:

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

Scrum is:

  • Lightweight
  • Simple to understand
  • Extremely difficult to master

Scrum is a process framework that has been used to manage complex product development since the early 1990s. Scrum is not a process or a technique for building products; rather, it is a framework within which you can employ various processes and techniques. Scrum makes clear the relative efficacy of your product management and development practices so that you can improve.

Scrum relies on a fixed cadence of iterative cycles called sprints. Each sprint begins with a planning meeting and ends with a demonstration of potentially shippable product. Scrum is characterized by a high level of feedback and transparency, both within the team and outside of it. Its short cycles and collaborative nature make it ideal for projects with rapidly changing and/or highly emergent requirements.

Scrum is built on five core values and has three distinct roles, three artifacts and three (or four) meetings.