Will infoq.com have a "Lean" section in the near future? Given the recent rise in blogs, presentations and articles on Lean subjects, don’t be surprised if, in 2009, Lean will be the new Agile.
Lean is a process management philosophy derived from the Toyota Production System that aims to provide more value with less work. Lean originated from mass manufacturing but has successfully been applied in other industries such as health care, travel industry, and services. That means Lean can also be applied in software development.
Although Lean is becoming more popular in the Agile community, the views on what Lean is, differ widely. Martin Fowler tries to avoid the entire Lean vs. Agile debate by stating that they are equal. Although the idea of keeping Lean within the boundaries of Agile has its appeal, not everyone agrees.
Some see Lean as an improvement on Agile. Alan Shalloway from Netobjectives sees Lean as ‘Agile in the Enterprise‘, referring to the ‘value stream’ thinking tool that Lean offers. In a Value Stream Map, the entire process of delivering value to the customer is studied and improvements are made based on the biggest problems in the stream instead of optimizing only small parts. In an enterprise environment, this could provide a lot more reduction of waste than a regular Agile approach. Scott Ambler refers to the local optimization of Agile as silos, although he might not think of Lean as removing these silos.
Lean is also used to criticize current Agile methods such as Scrum. Tobias Mayer loosely quotes Marry Poppendieck in his blog claiming Scrum is "insufficient". This triggered a response by David Anderson; one of the most profound contributors to the current rise of Lean in software development. David presented Lean concepts at Agile2008 in his talk ‘Future Direction for Agile‘, opening up Lean as a way to improve further on Agile.
For many, Lean will be used as a set of (thinking) tools that can aid in tuning current Agile practices. A perfect example is Corey Ladas’s Scrum-ban approach; a way to upgrade the default Scrum task board using Lean tools. Given the rising popularity of that article, I predict many Scrum-ban boards will be implemented by current Scrum practitioners. I expect some case studies to appear on Scrum-ban at Agile2009. Thanks Olav Maassen, a strong proponent of Kanban, a new stage has been added to Agile2009 for these cutting-edge Lean practices. For more information, have a look at an in-depth example is the use of Kanban in the gaming industry.
Although there are different views on Lean within the Agile community, they have one thing in common, they all adopt only parts of Lean. One cause is the limited amount of books available on Lean Software Development. Of course, the Poppendiecks have written great books on Lean Software Development, but a community needs more than one source of information. Books such as ‘The Toyota Way’ and ‘Lean Thinking’ describe the original Lean principles. When one reads these books, it becomes apparent that some key Lean concepts are ignored in software development.
David Binnerts pointed out the concept of ‘standard work’ missing from Lean Software Development. Lean defines standard work as: ‘the current best practice’. Anyone performing the same task should follow the same procedure. This is the basis for ‘Kaizen’, the process of continuous improvement and refinement. Only with an established current practice can you improve that practice. Especially software developers have very limited experience with this amount of discipline and abolishment of variation. Perhaps David Anderson would want to introduce this concept in software development using CMMI?
Dave Thomas and Alan Cooper describe the entire software development process more or less as a waterfall. According to Dave Thomas software is still hard to change once it is written, which makes Extreme Programming close to impossible for large projects. He claims the need for a design and architectural phase before actual implementation starts. This approach cuts the development part in two halves: the design and the implementation. Both this design and implementation phase would benefit greatly from a Lean approach. This is, however, not compatible with Scrum or XP and could be seen as un-Agile or labeled Big Design Up Front.
A concept like Standard Work doesn’t seem to fit the XP/Scrum organic self-organization of teams. Whereas Scrum does not exclude this concept, as David Anderson states, Scrum could be viewed as the current best practice on which a team can improve further. Scrum, perhaps similar to CMMI level 2, a good baseline for further refinement and expansion into all areas of practice and organization.
I admire David Anderson and Corey Landas for their unconventional thinking. A lot of new Lean concepts and practices are ready to enter the software development community. I hope Lean will be embraced fully, including the hard parts that require great discipline. I crave a new view on software development and a long-term vision. A few months ago at Agile 2008 I speculated on a new hype that could surpass Agile, however, I never expected it to come this quickly.