Comparison: Scrum and Lean Software Development
- mathis's blog
- Login or register to post comments
In the last meeting of our Munich Scrum Group "Agiletuesday" the question of comparing Scrum with other methodologies came up and we put the topic on our backlog.
I come up with some ideas on comparing Scrum and Lean and I combine it with a second question: can Scrum and Lean be combined - and makes it sense? Can we develop criteria of compatibility of different approaches?
The first obvious difference is the starting point: Scrum starts at the team while Lean starts at the process.
ScrumWhen we introduce Scrum, the first thing to do is to create a self organizing team which commits to a clear set of objectives in a given sprint length and is protected from too much chaos in its environment.
Lean
When we start using Lean Development – one variant is Lean Software Development – we concentrate strongly on value creation and eliminating waste. Several principles translate these goals into a number of specific actions. The most prominent tool to use is the value stream map, by which we analyze the steps and waiting times of a given project or type of projects in an organization.
The principles of Lean Development
- Eliminate waste
- Build quality in
- Create knowledge
- Defer commitment
- Deliver fast
- Respect people
- Optimize the whole
are derived form the experience with Lean Product Development at Toyota. Mary and Tom Poppendieck have developed these principles further to software development. For example,
- Eliminate waste is refined to specific hints which types of waste to look for: handovers, extra features, partially done work and others
- Quality is refined to test automation, test driven development, continuous integration, proposals for pairing, reviews and others.
Commonalities and Differences
As we can see, Lean Software Development provides much more specific hints how to perform tasks and a set of engineering practices, while Scrum restricts itself to a basic framework of project management practices. As Lean is also not a comprehensive method, but a set of best practices around the idea of value creation, an obvious idea is to combine some of the Lean practices with Scrum. To assess the feasibility of this idea, we should compare various aspects of Scrum and Lean:
- Procedures
Scrum has few, but well defined meetings, roles, artifacts
Lean consists of practises and more general advices – all starting with the value stream - Team and Responsibilities
In Scrum the team is self organized and as a team responsible for the results. The results are presented to the Product Owner in Sprint reviews who accepts them and represents the business responsibility to the outside world.
Lean also puts much emphasis on developing a team and its initiative and involvement, but there exists also an aspect of leadership – at Toyota in the role of the chief engineer. The chief engineer or champion is ultimately responsible for the results, breaks deadlocks and ensures the results are produced in time.
- Values
Lean and Scrum share the principal values esp.
- Respect
- People are not resources
Both emphasize that these values are inseparably connected to the success of Scrum resp. Lean. Additional compatible values like the XP values are often introduced as part of a Scrum implementation.
- Engineering practices
Scrum does not contain statements about engineering practices, so it is easy to add the Lean engineering practices
- Knowledge building
Scrum has a widely-used practice of retrospectives in teams. While the retrospective was not part of the original definition of Scrum, it is impossible to imagine today’s Scrum practice without retrospectives. The retrospective is in some sense where teams’ learning takes place. Scrum contains no institutionalized form of spreading knowledge in an organization.
Lean addresses knowledge building in two ways: first, it combines the areas decision making and knowledge building: keywords here are just-in-time decision making and parallel development. Second, Lean has means to follow up on acquired knowledge: a team presents their experience to other teams and (e.g. with the help of line managers) the experience may build the basis for standardized practices – here we see the close relationship to Lean (Production) Thinking and the process as the starting point of the Lean Development approach.
- Iterations / Sprints / Timeboxes
Scrum work is done in fixed length iterations called Sprints. At the beginning of each Sprint the highest prioritized Features (often: User Stories) form the Backlog are decomposed into tasks which build the Sprint backlog. Results, i.e. finished features are presented and evaluated at the end of each Sprint.
Lean is less specific on time boxes. It has a system called Kanban which ist similar to a product backlog, but lacks the distinction between Features and Tasks. It has however a strong emphasis on quality, esp. on a definition of done.
Summary
While Scrum and Lean concentrate on different aspects, they both have their main focus on creating value and share fundamental values. Scrum does not prescribe a specific process, it is a framework which can be extended to a process and many of the Lean principles can be used in doing so where Scrum does not contain a definition.