I’ve written about it before, but in late 2008, we started a major transformation of our SAP NetWeaver development approach, processes and organization: We made a bold move with my world-wide distributed, 2000 people organization to adopt Lean and Agile Software development methodologies in a large-scale, systematic and consistent manner. The transformation was a major project and I have blogged about it on the SAP Community Network before (see my blog posts Square OneGood Riddance and Different people). The transformation was a major effort over several years and is still ongoing today — Lean and Agile are a journey, a mindset, not a one time act of implementation. In the meantime, we have added additional methodologies, e.g. Design Thinking, into our set of tools and they actually fit very well with Lean and Agile.

When we started the whole transformation, we often got critical remarks from people in our own organization who were concerned that Lean was a methodology originating in production environments — Lean was invented by Toyota in the 1940s already — and was not a fit for Software Development. That’s when I started to think about how to convince people that Lean (and Agile) was more than something for the automotive industry. Even in retrospective and after having had hundreds of individual talks and discussions around Lean, I like my original storyline around Lean Software Development back then. And I thought it might be worth sharing… So here’s my “dog and pony show” presentation why Lean is relevant for any larger Software Development organization:

Lean Software Development -- We're not building cars -- luckily Lean Production goes back to Toyota.
Taiichi Ohno introduced it first in 1940.
It was originally targeted at manufactoring.
A lot of criticism we hear about Lean in Software Development seems to come from the wrong perception that we would believe we can apply this 1:1 to our business.
But we know we are not building cars – luckily!
Lean Software Development -- Software Development is a creative process We are in Software Development which is non-deterministic by its nature.
It’s much more like animation movie making or modern architecture – you need to get the craftsmanship right, but more important to success is the creative and innovative character of what you are doing.
It is a creative process, it’s an information creation process, learning is part of the journey and hence change is inherent to Software development.
So rather than ignoring change, one better sets himself up to cope with it right from the start.
Lean Software Development -- Eliminate Waste & Maximize Customer Value Nevertheless, what is common between car manufacturers like Toyota and us in Software Development is the strong desire to sustainably and profitably stay in business.
In essence, it means eliminating all the waste that keeps you from maximizing customer value.
Lean Software Development -- The core concepts of Lean Software Development Luckily, we can look outside and see that a lof of people and companies in the same business as we have thought about and made practical experience how Lean Software Development can work.
Just to name some examples: IBM has e.g. transformed their DB2 business, Salesforce.com has changed an 500 employee organization to an “agile development model” in recent years as well… And Microsoft has radically changed their way of developing e.g. their OS platform and development tools following lean concepts and agile principles.
Mary and Tom Poppendieck have condensed their findings into writing and the following slides will explain in a bit more detail what the 7 core principles of Lean Software Development are.
Lean Software Development -- Think Different The first thing to keep in mind is the fact that “Lean” is not a one-time activity, some procedure to implement and then you are done.
It is about mindset and about sometimes surprising or seemingly counterintuitive thinking.
It is for sure about continuous reflection on how you are approaching things.
The foundation of lean is about continuous improvement and respect for people.
Lean Software Development -- Think Less is More -- Eliminate Waste Principle #1 is to eliminate waste – and without going into details, all Lean Production “waste types” translate naturally into software development process “waste types” as well…
Lean Software Development -- Think Three Sixty Kickflip -- Amplify Learning The second core principle is about learning as much and as early as possible and about correcting what you are doing.
Like training to ride a skateboard in a half- or full-pipe: repeat often, learn quickly, adapt in the next cycle.
Obviously, this principle gets manifested in fixed takt cycles, shipping working software early and often, involving stakeholders and customers from the start in each takt evaluating and giving feedback about the software, doing Scrum reviews and retrospectives to thrive for perfection in execution, looking at software development from an end-to-end perspective, etc.
Lean Software Development -- Think Marriage -- Decide as late as possible Fooling yourself to believe you can predict the future or making decision based on premature information at hand, can be very costly to revert if you have to change plans afterwards.
So core principle #3 is about making decisions as late as possible – but not later!
One example is to tackle problems with a set-based approach, trying out more than a single solution in parallel, only later deciding on the best option. Or doing early prototyping and first getting customer/stakeholder feedback…
Lean Software Development -- Think Pizza -- Deliver as fast as possible Core Principle #4: Deliver as fast as possible – both internal and external.
It’s the-fastest-to-market who wins, not the biggest!
It helps to avoid “inventory” on the shelf, gives you feedback early and allows you to put the right things into the next (short) development cycle – maximizing customer value!
Lean Software Development -- Think Rugby -- Empower The Team Most challenging is “think different” probably for management – which is why we need “lean freaks” in management.
It is about the insight that you get the best results, if you empower the teams, the colleagues who know best how to get things done, how to approach a certain goal. It is about respect for people.
It is about getting rid of “process police”: you manage things, and you release people.
Lean Software Development -- Think Brain Surgery -- Build Quality In If you want to deliver fast and are dependent on fast feedback, if you want to maximize customer value, then quality cannot be an afterthought.
You have to build quality into the product and the process simultaneously.
And quality is more than defect-free software! It is about change-friendly code and architecture, about usability, about flexibility – it is about the integrity of the whole product.
Lean Software Development -- Think House of Cards -- See the Whole Finally, think from a customer perspective – think from the delivery side.
Don’t just optimize one area, but strive for making the whole a success.
Lean Software Development -- The 7 Principles To become “lean”, all of the 7 core principles have to be considered jointly, not “pick some, ignore the others”…
That’s why Lean and Agile make perfect sense in software development as well. Dear Automotive Industry — no offense meant! 😉