Monday 5 January 2015

Toyota Production System

I thought it might be a little boring to continue writing about Lambda Calculus, so decided to talk about one of the Japanese management philosophy which has had a huge influence in software engineering too. It is called TPS or Toyota Production System.

TPS is the process Toyota developed and practiced between 1948 and 1975 to use in its production lines. It is based on the Toyota's philosophy which has two main parts:

  • Continuous Improvement:
    • Establishing a long-term vision
    • Working on challenges
    • Continual innovation
    • Solving the source of the issue or problem
  • Respect for People:
    • Ways of building respect
    • Ways of building better teamwork

In fact, Toyota discovered that factory workers had more to give to the factory than just using their physical power. They also discovered that there is always seven type of inconsistency in manufacturing systems which are:
  • Production: If you produce parts or products more than you need, then you have to keep them somewhere or provide other material to complete them and ...
  • Waitings: Time is money, any waiting due to any reasons need to be eliminated or you are wasting the money.
  • Transportation / Conveyance: Inefficient layout of the facilities, production lines, inventories and ... requires moving parts and products between them.
  • Processing: Over processing, paying more than it needs working on a part leads to a huge waste of time.
  • Inventory / Stocking: In case of storing too much of things, you tie up your money, assets, ... and you also need a bigger inventory space.
  • Movement: Wrong workflows and timings make things move around the production lines unnecessarily or in an inefficient way.
  • Correction: The price you have to pay to correct the defected or low quality produced products. Or when you deliver wrong, broken product to the consumer and the price you have to pay to repair or change it. 

To eliminate the waste sources we talked about, based on the Toyota's philosophy, TPS suggest the followings 14 famous principles:
  1. Base your management decisions on a long-term philosophy,  even at the expense of short-term financial goals.
  2. Create a continuous process flow to bring problems to the surface.
  3. Use pull systems to avoid overproduction.
  4. Level out the workload.
  5. Build a culture of stopping to fix problems, to get quality right the first time.
  6. Standardized tasks and processes are the foundations for continuous improvement and employee empowerment.
  7. Use visual control so no problems are hidden.
  8. Use only reliable, thoroughly tested technology that serves your people and processes.
  9. Grow leaders who thoroughly understand the work, live the philosophy, and teach it to others.
  10. Develop exceptional people and teams who follow your company's philosophy.
  11. Respect your extended network of partners and suppliers by challenging them and helping them improve.
  12. Go and see for yourself to thoroughly understand the situation.
  13. Make decisions slowly by consensus, thoroughly considering all options; implement decisions rapidly.
  14. Become a learning organization through relentless reflection and continuous improvement.
As we said at start TPS is the root source of some important ideas in software engineering like "Lean Software Development" which we talk about it soon.