There is much misunderstanding about how Lean applies in the software world. Certainly, there are different opinions about what Agile is. This article gives a quick overview of our perspective of what these are.
What is Lean?
The term “Lean” was coined to describe approaches by Toyota and to a lesser extent, Honda. It has often considered to be synonymous with Toyota’s Production System. However, software development is different. Not only is it not manufacturing, we are not even in the physical world. Even so, the core of Lean can be found by looking at the mindset Toyota had when they did what later became called Lean. Given Toyota’s commitment to continuous improvement and learning, Lean is not a static definition; rather, it is an evolution of both understanding and practices to achieve its goals.
Here are the basic tenets of Lean.
Given we are not in the physical world, you must apply these tenets differently than you would in manufacturing and physical product development. Visibility and managing WIP have overlapping goals one of which is to see delays (they show up as items in a queue).
Lean involves more. It is also about creating pride in our work, striving to be the best, and personally making a difference. An example of this is one reason that Toyota builds different cars on the same assembly line. It is to make the work more interesting and to keep people “on their toes.”
What is Agile?
Throughout the Agile community, there are huge differences of opinion about what Agile is. Net Objectives has never subscribed to the common view that the Agile Manifesto, written in 2001, is the one sacrosanct definition. There are two reasons for this. First, the Agile Manifesto is not based on systems-thinking which we feel is a necessary agreement for organizational change. Second, after a few years it seemed to us oxymoronic to have a manifesto suggesting that we be agile and to have to accept it as cast in stone.
That being said, there is much to learn from the Agile Manifesto. In fact, Agile and Lean have many of the same intentions.
There are ways Agile goes beyond Lean.
Agile was very much influenced by Lean, but not all of Lean was embodied in Agile. At the time of the manifesto the two most popular methods were Scrum (at the time sometimes considered synonymous with Agile) and eXtreme Programming (which is closer to Lean than Scrum) were inspired by articles written about Lean companies. Most significantly attended to was Hirotaka Takeuchi and Ikujiro Nonaka’s The New New Product Development Game written in 1986.
It is ironic that the Agile community has Agile reasonably ignored another iconic work by Nonaka, Toward Middle-Up-Down Management: Accelerating Information Creation, that explicitly discusses the role of (middle) management. In a nutshell management’s role is to look (up) at the business strategy to be implemented and creating an environment for the people they lead (down) can self-organize in to achieve those goals. While Agile is not inconsistent with this, the Agile Manifesto does not mention management at any point and even created its own role (the Scrum Master) to take on much of the responsibility that Lean managers do.
The Agile Manifesto is focused around the technology side and the technology side’s purpose of creating and manifesting value. A focus on customer value is not all a business does, however. Successful companies have clarity of purpose and a commitment to their employees. Both of these must be invested in.
Lean-Agile is taking the mindset of Lean, applying it to the software world while incorporating the lessons of Agile that are useful. Lean-Agile is not constrained to the workflows that have software in them. But then some aspects of Lean-Agile’s guidance must change.