As software development projects grew ever more complicated – and cross-functional – through the 1980s, it was already becoming clear: the old ways of doing things were not going to work much longer.
In a 1986 Harvard Business Review article entitled “The New Product Development Game,” Hirotaka Takeuchi and Ikujiro Nonaka wrote:
“The… ‘relay race’ approach to product development… may conflict with the goals of maximum speed and flexibility. Instead a holistic or ‘rugby’ approach – where a team tries to go the distance as a unit, passing the ball back and forth – may better serve today’s competitive requirements.”
The name of that rugby approach?
Origins of Scrum
Out of that visionary sports reference grew today’s leading software development framework, aptly named Scrum.
Jeff Sutherland was one of the first to play with the idea, holding initial scrum sessions at Easel Corp in 1993. Soon after, now with IDX (which later became GE Healthcare), he had over 500 people following the foundations of what would soon be referred to as Scrum.
And then, in 1996, he and a partner – Ken Schwaber – presented Scrum formally to an industry audience at OOPSLA 96. Schwaber took the point from then on and is commonly regarded as one of Scrum’s founders and chief architects. He authored three books on the subject as well.
In 2002, Schwaber and Mike Cohn co-founded the Scrum Alliance. At first, it was just a subgroup of the Agile Alliance, but the group took on a life of its own. Today, the Scrum Alliance boasts more than 450,000 members and certified practitioners worldwide.
Who’s Using Scrum Now
Scrum has blossomed into a robust set of guidelines appropriate for large and small companies alike. Some of the largest software companies in the world – Microsoft, Google, and Intuit, to name a few – use Scrum.
As a framework for running projects, Scrum is one of the most adaptable solutions ever devised. For this reason, it’s been used in projects ranging from commercial software to embedded systems to mobile and web applications – and many more besides.
Just about any software project you can imagine… chances are you can build it quicker and more efficiently with Scrum.
Why is Scrum Different?
Remember old-school project management techniques? Start by creating hundreds of pages of documentation on everything you plan to do, how it all fits together, who’s going to do the work, etc. Appoint a Project Manager to oversee it all and drive performance. Create project plans, workflow charts, Gantt charts, and all sorts of other graphs to see how your time is going to be spent and how you’ll allocate your resources.
And then, after all that, your teams can finally get to work.
But if you want to make changes, good luck. Because some of your changes could affect everything.
And then there’s the relay effect mentioned above. All those extra communications and hand-offs as your project passes from team to team…
Many large companies had to create internal Project Management Organizations just to keep it all from becoming a huge mess. Which it often-times did, anyway.
Scrum aimed to eliminate those problems.
A Scrum project is not managed or driven by a single leader. A Scrum project focuses on short-term results more than long-term expectations. A Scrum project engages a single, cross-functional team rather than a chain of department hand-offs.
And it worked. When run properly, Scrum development will eliminate those old-school problems.
Characteristics of a Scrum Project
Here are some of the most important characteristics you’ll find in a Scrum-based project:
- Self-organizing Scrum teams
- Product progresses in a series of 2-4 week production sprints
- Requirements are captured as items in a list called the “product backlog”
- No specific engineering practices are prescribed
- Uses generative rules to create an agile environment for delivering projects
These characteristics support the values of Agile development as seen in the Agile Manifesto:
Building High-Performance Scrum Teams
There’s no question that Scrum places a premium on teamwork and collaboration. In my opinion, the greatest value of Scrum is its ability to shape and empower those teams in highly effective ways.
Here are a few ways that Scrum helps you build high-performance teams:
- ScrumMaster versus Project Manager. A traditional PM was an authoritarian figure tasked with keeping everything on schedule and holding members accountable. A ScrumMaster is the opposite: he or she facilitates the project, making sure that team members have all the information and support they require to do their jobs. This distinction means that the team is really self-organized and self-managed, giving each member much more control – and interest – in the results.
- Cross-functional teams. A Scrum development team includes all the resources it needs from the start, and they’ll remain a part of the process until it’s completed. The interplay between Product Owner, ScrumMaster, and individual team members is designed to reduce the fundamental disconnects between your business and technology organizations.
- No prescribed solutions. One of the most important aspects of a Scrum engagement is that team members are told what needs to be accomplished, but never how. It’s up to the Scrum team – the people doing the actual work – to decide how to best accomplish each task. And since they are the ones making those decisions, they’re far more invested in seeing those decisions work.
- Keeping the goal in sight. Another way Scrum enables high-performing teams is that the focus is always on the short-term. Scrum team members don’t waste much time wrestling with long-term issues – many of which may never even occur. Instead, they focus on producing tangible results every 2 to 4 weeks, and their attention is fixed on providing the best possible results for the work being done now.
Contact us today to learn how your organization can build software quicker and more efficiently with Scrum.