The intention of this post is to briefly touch upon the development up to the Lean Software Development movement starting from the very origins in Toyoda. This post may touch upon many words, concepts, and principles but provide no detailed explanations. The intention is to produce many other posts that will explore the details of Lean Software Development.
Sakichi Toyoda, the founder of Toyota, owned the Toyoda Loom Works that manufactured fully automatic machines for the textile industry. His machines had one of the earliest implementation of what would later become the concept of Jidoka (a.k.a stop-the-line or Autonomation in Lean manufacturing). When the machine encountered any little problem it would stop and signal for the weaver to fix the problem.
The origins of Just-in-time (JIT) Production
Sakichi Toyoda was joined by his son Kiichiro Toyoda and they together grew the loom business profitably. Kiichiro Toyoda later diversified into automobile manufacturing by founding the Toyota Motor Corporation in 1937. The new company soon hit into manufacturing restrictions placed on passenger cars during the second world war. After the war the restrictions were lifted but the American automobile industry (Ford and GM, specifically) had surged way ahead through their huge factories and mass production models. There was little Toyota could work conventionally match such competing economies of scale due to the following factors:
- Lack of land and finances in post-war Japan prevented building of huge factories
- Lack of natural minerals and other natural resources
- High unemployment
These compulsions led Sakichi Toyoda to vision a “Just-in-time production system” that was based on Jidoka, understanding the whole, respect for people and Kaizen (continuous improvement). He set a vision and challenged employees in his company to implement this and catch up with the American competition.
The Toyota Production System (TPS)
Taiichi Ohno, an employee of Toyota Motor company and the Toyoda Loom Works before that, responded to the challenge. He was a shop floor supervisor in the engine manufacturing shop. He studied the US automobile industry, especially Ford, and used the experience from Toyoda Looms to perfect a production system that incorporated Sakichi Toyoda’s vision of JIT, Jidoka, and Kaizen. This he called the Toyota Production System which he defined as a system to absolutely eliminate all waste from Toyota’s automobile manufacturing process. He defined 7 types of Muda (waste) for this purpose that ought to be eliminated:
The 7 types of wastes in a production system
|Delay, waiting or time spent in a queue with no value being added||Unnecessary movement or motion|
|Producing more than you need||Inventory|
|Over processing or undertaking non-value added activity||Production of Defects|
The basic principles of the TPS system are listed here:
Challenge and understand the whole, Genshi Genbutsu (go to the floor and observe to understand the problem first hand)
|4. The right process will produce the right results
Kanban (Visualize a pull based workflow), Heijunka (level the workload), JIT, Jidoka, standardize, transparency
respect for people, teamwork
|5. Add value to the organization by developing your people and partners
Develop exceptional and committed people, grow leadership at every level, respect partners and suppliers
|3. Long term philosophy
Management must have a long-term view while making decisions
|6. Continuously solve root problems to drive organizational learning
Genshi Genbutsu, Nemawashi (make decisions slowly but implement rapidly), Hansei (become a learning organization) and Kaizen
The Spread of TPS
Shigeo Shingo was a consultant specializing in factory management. He worked closely with Taiichi Ohno to deploy the TPS in Toyota. He later took the TPS and implemented it in various Japanese companies. Some of his books, especially the English translation Study of the Toyota Production System (a.k.a The Green Book) of his Japanese book, brought the TPS to the shores of America. He added the concept of quick assembly/re-assembly of machines (also called SMED) to produce various parts in the speed demanded by a JIT production system. His other notable concepts, added to Taiichi Ohno’s definition of TPS, was about Poka-Yoke (mistake-proofing the system by designing it to eliminate root cause of defects and making mistakes impossible to occur) and zero quality control (no need to examine results).
In the US, several researchers who studied the TPS expanded the 6 principles to 14 as listed below:
|1. Establish customer-defined value to separate value-added from waste||8. Fully integrate suppliers into the product development system|
|2. Front-load the product development process to explore thoroughly alternative solutions while there is maximum design space.||9. Build in learning and continuous improvement|
|3. Create a level product development process flow||10. Build a culture to support excellence and relentless improvement|
|4. Utilize rigorous standardization to reduce variation, and create flexibility and predictable outcomes||11. Adapt technologies to fit your people and process|
|5. Develop a chief engineer system to integrate development from start to finish||12. Align your organization through simple visual communication|
|6. Organize to balance functional expertise and cross-functional integration||13. Use powerful tools for standardization and organizational learning|
|7. Develop towering competence in all engineers.|
The Lean Production System and it’s Spread
During the 1990s, the TPS became famously known as the Lean Production System largely due to the book The machine that changed the world. Within Toyota, The Lean Production system also acquired other counter parts over time – The Lean Supply Chain (to extend Lean to suppliers and partners also), and The Lean Product Development System (to extend Lean to the product development process also).
Lean Software Development
Outside of Toyota Motors, the Lean Manufacturing system were adapted into services and IT forming the Lean Services and Lean IT respectively. The Lean Software Development adapted Lean manufacturing, Lean Services, Lean IT to the software domain and merged them with the Agile principles and practices.. This was designed by Mary Poppendieck and Tom Poppendieck based on their experiences in Software development and implementing Lean in their manufacturing industries. It contained 7 principles and 22 tools or practices.
The 7 principles of Lean Software Development are listed here.
|1. Eliminate waste||5. Empower the team|
|2. Amplify learning and create knowledge||6. Build integrity/quiality in|
|3. Decide as late as possible||7. See the whole|
|4. Deliver as fast as possible|
The 22 tools or practices are listed here.
|1. Seeing waste||12. Cost of delay|
|2. Value stream mapping||13. Self determination|
|3. Feedback||14. Motivation|
|4. Iterations||15. Leadership|
|5. Synchronization||16. Expertise|
|6. Set based development||17. Perceived integrity|
|7. Options thinking||18. Conceptual integrity|
|8. The last responsible moment||19. Refactoring|
|9. Making decisions||20. Testing|
|10. Pull systems||21. Measurements|
|11. Queuing theory||22. Contracts|
- Lean Software Development: An Agile Toolkit by Mary Poppendieck et al.
- Implementing Lean Software Development: From Concept to Cash by Mary Poppendieck et al.
- Lean Software Development – A History
- The Toyota Production System