This article is the first in a short series on the definition of Lean and its application to the Software Development field.
I often hear people say: "Software Development is a craft"... well sure, I agree with that.
Each good developer requires many years of experience to develop his/her craftsmanship in forging and maintaining high-quality, long-lasting code. She/he needs to learn from training, books, seminars, conferences, but mostly by doing day after day, advised by more experienced mentors... (and of course making mistakes)
Yet, projects in Software Development share common characteristics with other types of projects:
1- structurally, they are defined by the presence of stakeholders, a team, limited financial means and goals to be attained in a finite amount of time,
2- dynamically, they all follow (consciously or not) some kind of working process, and encounter unforeseen obstacles along their way.
The Software field is still very young compared to other businesses.
This is I think why any serious software organisation looking for more-than-average results must look at what top performers in other fields do to stay well ahead of all their competitors.
Some recent studies demonstrate that there concretely exists a common mindset and type of behaviour in the face of difficulties encountered by all those organisations: read "The High Velocity Edge" (Steve Spear) for thorough examples applying to several, very different domains.
Let's review a few common false assumptions before moving on.
Lean IS NOT :
- one more trick or control tool invented by managers to exploit workers,
- about cost reduction and layoffs (as some want to make believe),
- the rigid application of standards defined by some Quality Department,
- Kanban (but, Kanban may sometimes be used as a tool, following Lean Thinking under a certain set of circumstances)
Where does the term "Lean" come from?
The expression "Lean Manufacturing" was first used in 1990 by James Womack, in a book called "The machine that changed the world", that describes the history of the automobile industry and in particular the very successful Toyota TPS (Toyota Production System). According to Wikipedia, Lean Production is "a practice that considers the expenditure of resources for any goal other than the creation of value for the end customer to be wasteful, and thus a target for elimination".
How do I define Lean today?
I've been thinking about this for the 2 past years, reading and experimenting in the context of a heavy project, with a mix of both very interesting and poor results.
In the meantime, I applied last year (2010) to a 6 day training course called "Lean IT Project Management
", broken down into 3 chunks of 2 days for 3 consecutive months. The trainer was my former XP mentor, Régis Médina. This course offered me great insight on the core of "Lean Thinking", and ways to apply it to the IT world.
I'm definitely not a Lean expert, but actively want to undestand its nature. I personally prefer to talk about "Lean Thinking", or the "Lean Mindset".
First, let's be clear about one thing: true Lean Thinking is about developing the true asset of the organisation: its people. If you can't feel this quality in a company, then it is definitely NOT a Lean organisation (in spite of anything they claim or say).
From that assumption, I would define "Lean Thinking" as a rigorous, generic, adaptable and repeatable thinking process for targeting operational excellence and maximizing the value (thus, the satisfaction) of the end customer in any complex organisation.
What does it mean for a software development project?
From the former section, I hope you understand why the "Lean mindset" does matter.
In the next article, I'll be more specific about what it meant for my past experience in a large development and maintenance project for the Telecom industry, starting by what should be the very first step : defining the "True North" of the project team.
I recommend you the reading of those books on the subject, as they have profoundly affected the way I think and work, all for the better :
- The Gold Mine, by Mickael Ballé
- The Lean Manager, by Mickael Ballé
- Toyota Kata, by Mike Rothers
- The High Velocity Edge, by Steve Spears
You can also find many interesting information online. I'll just mention 2 resources I find just great: