Origins of Lean Software Development

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.

The Beginings

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
Transportation

The basic principles of the TPS system are listed here:

1. Kaizen

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

2. Respect

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

References

  1. Lean Software Development: An Agile Toolkit by Mary Poppendieck et al.
  2. Implementing Lean Software Development: From Concept to Cash by Mary Poppendieck et al.
  3. Lean Software Development – A History
  4. The Toyota Production System
Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s