Would you think that it triggers completely different thought processes when you talk with an agile practitioner or with a lean practitioner?
The essence of the Agile Manifesto are four values:
Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan
They are not absolute positions, but rather value pairs: “while there is value in the items on the right, we value the items on the left more.” So values here feel like priorities that guide your many decisions when developing software. If all team members share the same values, then many of those decisions will automatically be aligned.
From those 4 values follow 12 principles which (in retrospect) do not yet speak the clearest possible language. But hey, it’s now 15 years and we all heave learned a lot about Agile Software Development.
The early books about agile software development all had chapters about values as the basis for agile principles and practices, e.g. the original values of Extreme Programming (XP) were:
Although a linguist might not call all those terms values.
If you compare those XP values with the 12 practices of the Agile Manifesto (linked above) you will see that there was no clear understanding what to call a value and what a principle. There still was some confusion even in the heads of the agile thought leaders.
Let’s turn from Agile/XP to Lean: The Toyota Production System (TPS) that made Toyota one of the world’s largest car manufacturers was based on 6 principles:
- Continuous improvement
- Respect for people
- Long-term philosophy
- The right process will produce the right results
- Add value to the organization by developing your people and partners
- Continuously solving root problems drives organizational learning
Mary and Tom Poppendieck analyzed the TPS and helped us software developers to understand it via their books about “Lean Software Development” (LSD). Mary Poppendieck says “By focusing on value, flow, and people, you get better results, lower cost, and faster delivery.”
Value, in this respect, is “customer value”. Anything that does not add value for your customers, is considered waste. And there are “Seven Sources of Waste”: Partially Done Work, Paperwork, Extra Features, Task Switching, Handoffs, Delays, and Defects.
Mary and Tom transposed the 6 principles from the TPS into the world of software development and gave us 7 principles of Lean Software Development (details)
2. Amplify learning
3. Decide as late as possible
4. Deliver as fast as possible
5. Empower the team
6. Build integrity in
7. See the whole
You can learn more about those 7 lean principles and 22 thinking tools in my slide deck from 2004. Back then, I’ve used the following figure to compare the practices from XP with the thinking tools from LSD.
Hint: Mary has also written an interesting back story where she describes Lean as an evolution to Agile Software Development.
So to sum it up:
- Agile practitioners think of values as priorities. In a team of like-minded people with shared values this results to quick and congruent decisions even without the need for much discussion.
- Lean practitioners strive to deliver customer value. They optimize flow efficiency across the entire value stream to deliver value to the customer as quickly and efficiently as possible.
Two different schools of thought – both have value (pun intended).
At Catalysts we have got both aspects in our DNA from the very beginning. Yet it has taken us several more years to get better and better at sorting out values from practices, understanding the different kinds of values and living those values every day.
More to come in the next articles …