Overview
Although it began in car manufacturing, Lean has become an increasingly important influence within the Agile Community. However, Lean's origin in manufacturing is a mixed blessing. Although the manufacturing production-line heritage provides us with some valuable continuous improvement concepts as well as language and patterns that are familiar to upper management, this heritage also leads to a tendency for management to see software engineering as an oversimplified pattern - a simple, well-understood process of repeated steps.What To Fear
In reality, producing a new piece of software is rarely as neat as the production-line manufacture of a car.The key difference is that the software development process is intended to design and create a new piece of software, while the car manufacturing process is intended to produce identical copies of a car that has already been designed, prototyped, tested and had the bugs shaken out.
Once we have developed our software, copying it is a simple file copy process. The car production line is an analogue to our file copy process, not our software development process.
Comparing software development to car design is probably more accurate than comparing it to the production-line "copying" process. Even the car design comparison is imperfect as the specifications for a car are defined by expert Mechanical Engineers using clear, unambiguous Engineering terms and CAD/CAM techniques, while the specifications for our software business logic are defined by business people, using ambiguous business terms, and are rarely as clearly elicited as the CAD/CAM diagrams for a car.
A Kanban board may be able to capture a perfect representation of the car production process, but it is unlikely that this could be done for software development. The flow for one software module could be quite different to the flow for the next. Attempting to turn a Kanban board into a complete description of your process is likely to be a mistake.
The challenge is to take from Lean the language and processes that are of value, while remembering that there is a difference between creating a fleet of identical cars on a production line, and creating a unique software solution based on an ambiguous, emerging and changing business specification.
What To Cheer: What Lean Brings to Agile
1) Lean/Agile fusion brought us ScrumBan. Scrum's Sprints provide the cadence and development practices, but Lean's Kanban provides the flow.2) Lean provides terminology and patterns that Executives understand. Explaining Agile to executives in a way that they can buy into is sometimes challenging. We can use Toyota's Lean processes as an example to help explain how and why Agile concepts work.
3) Lean has processes for looking at the big picture. Agile's focus on improving the quality of the product's codebase and delivery process can potentially lead to delivering the wrong product in an efficient way. Lean extends Agile's focus to include areas like Systems Thinking and Vantage. Consequently, Lean has helped us focus on building the right product.
4) Lean provides techniques for continuous improvement. Lean provides us with ideas and techniques for improving the efficiency of our process. This is where most of the Lean concepts are being applied in IT today. Value Stream Maps provide one of the key methods for waste elimination and process improvement.
No comments:
Post a Comment