top of page

What is LEAN?

Updated: Jan 30, 2022

Lean word is primarily originated from Manufacturing industry. Lean is a philosophy or a concept which is all about making manufacturing process more efficient & optimized by reducing waste to create highest quality with less cost in shortest lead time.


History

Let us understand history of Lean first.

Lean was coined from TPS and TPS was originated from Manufacturing industry.


It is believed that Manufacturing industry started somewhere in 14th Century and continuously evolved from there till date. In 14th century, goods were produced by people with their bare hands and not by any machines. And there was no mass production concept existed that time as buyer market was limited.


The first major shift in manufacturing industry came in 18th Century. It is also called as Industrial revolution.

In this era, Machines & Processes were invented. Items / goods were getting created by people by using machines & process oriented approach.

Factory concept was also came in existence. Factory concept was "where machines were organized in a big space in specific sequence or order and operated in a process or sequence and maintained by many people to created goods. Eventually to maintain this factory model the time management & work management concepts also evolved with time. And to manage this position like Supervisor also came to existence.

Then second Major shift happened in 19th century which also known as Modern era of Manufacturing. In this era giant car manufacturing companies like FORD, TOYOTA started mass productions. Henry Ford was the first to truly introducing the production line concept in manufacturing which today we call as Assembly lines.

Toyota was founded somewhere in 1926 by Sakichi Toyoda. Somewhere on 1950's Toyota was going through some bad patch. So they decided to explore & understand how FORD is doing production and making profit too. After studying FORD production system Toyota realized they are do Mass production. However Toyota quickly realized that they cant go for similar mass production.

There were mainly 2 Reason:

1. Japanese market was too small & diverse for mass production.

2. Customer demand was ranging from small cars to Luxurious vehicles.

At that period Mr Taiichi Ohno joined Toyota and he his new ways of production redefined Toyota. He was very sharp & quick learner and experimental in nature. He bought concepts like right sizing machines, Self monitoring machines, waste management, Just in Time production, Jidoka (stop the machine immediately if problem occurs) which increase quality to next level.

All such concepts & practices helped Toyota to build the product faster, cheaper and with best quality. And later it was well known as Toyota Production System.


The Toyota Production System [TPS]

TPS was based on 2 fundamental blocks.

  1. JIT (Just In Time) - In sequential process flow, create only those things which are needed and when it is needed.

  2. JIDOKA - Automated machine / equipment which stops when problem occurs. This will make sure defects in items are avoided and quality gets improved.

There were other attributes as well like FLOW, Takt Time, Pull System etc. We will understand them in detail in blog section below.


Origin of Lean

Where did this "Lean" work come from?

TPS was defined more of Manufacturing oriented view and mostly all things were written in Japanese language. So James P. Womach was the first one to coin the word Lean through his book "The Machine that changed the World" in 1991. He wrote this first book on Lean based on his study from several Manufacturing systems & TPS at Toyota. In this book he explained all TPS concepts from generalized view and not specific from Manufacturing. This is how LEAN came to existence.


What is Lean?

Lean is not software or technology. Lean is a philosophical systematic thinking or approach to improve your value creation by reducing waste from the process & increase accountability among your team / workforce.


Fundamental Principles of Lean

There is lot of confusion around Lean principles. Some says its 5 and some says 7. Let me clarify it. Lean was originated from TPS (Toyota Production System) and TPS was more for Manufacturing industry. So when Lean was created it was of generalized version which can be applied to any industry and not specific anymore to Manufacturing one. And those were 5 Basic Lean principles which are mentioned below.


1. Define Value

To better understand this 1st principle of defining value, we need to understand what value is. Value is always defined by end customer of thing or product or feature you are producing. Hence it is very important to adopt product mindset & discover the actual needs of the customer by collaborating with customer.

Sometimes customers himself may not aware what he / she want or unable to articulate it. There are many techniques such as client interviews, surveys, discovery workshops and web analytics that can help you discover what customers find valuable. Once you identify this Value then you can create it in collaboration with Customer.


Example: If customer has hair dandruff problem then customer would appreciate if we create a product which will solve dandruff problem rather than silky hairs.


2. Map the Value Stream

The 2nd Lean principle is identifying & mapping the value stream. The goal is to identify all the activities that we do to create customer values. Activities that do not add value to the end customer are considered as waste.

The waste can be broken into two categories:

a. non-valued added but necessary

b. non-value & unnecessary

Second (b) is pure waste and should be eliminated. While the 1st should be reduced as much as possible. By reducing & eliminating unnecessary processes or steps, you can ensure that customers are getting exactly what wish / want. This will minimize or reduce time & cost of product or service we are creating.


3. Create Flow

Once you identify and minimize the wastes from the value stream, ensure that the flow of the remaining steps run smoothly without interruptions or bottlenecks or delays. Some approaches / ways for ensuring that value-adding activities flow smoothly include:

breaking down huge steps into smaller steps, reconfiguring the production steps, the workload, creating cross-functional team members, and training employees to be multi-skilled & adaptive.


4. Establish Pull

Inventory is considered one of the biggest wastes in any production system. The goal of a pull-based system is to limit inventory & work in process (WIP) items while ensuring that the requisite materials and information are available for a smooth flow of work. In other words, a pull-based system allows for Just-in-time delivery where products are created at the time that they are needed and in just the quantities needed. Pull-based systems are always created from the needs of the end customers. By following the value stream and working backwards through the production system, you can ensure that the products produced will be able to satisfy the needs of customers.


5. Continuous Improvement

Wastes are getting identified and minimized from above 4 steps explained above. However, the fifth step of continuous improvement is the most important step among them all. Continuous process improvement is a part of the Lean Thinking organizational culture. Every employee should strive towards perfection while delivering products based on the customer needs. The company should be a learning organization and always find ways to get a little better each and every day.


As I explained above that these are 5 fundamental principles of Lean thinking. When we apply this Lean thinking in Software Development then there 7 specific Lean software Development principles.


Lean Software Development principles

1. Eliminate Waste

The foundation of lean software development is identify and eliminate the waste. Elimination of everything which does not bring any value to the end-users. We start by identifying value of the product that we are building. This will identify the waste like unnecessary code, unclear goals, additional features, and extra processes, etc.

There are 7 typical types of waste categories:



  1. Partial work - In my view its like Half baked food. Which we can neither eat nor throw. This can be lowered by putting limitations in work-in-progress, through the mode of Kanban framework.

  2. Extra Processing - This waste in introduced when team members spend time on learn certain things multiple times. Or sometimes when any team member left the team then knowledge loss happens and when we have to work on that area of software we need to keep learning that part of it again. So time is getting invested every time for the same thing so it is a waste.

  3. Extra feature - As per product mindset approach, whatever we create for end user should create a Value. This value is defined by end user who is going to use it. Normal tendency of human being is that they try to make customer happy and deliver extra features other than customer demanded or needed. But if any feature which is not used by customer is not a value and becomes a waste. So collaborate with customer and provide only those feature (best Quality) which is asked by customer or paid by customer.

  4. Delay - When team members are working in silos or if team members are geographically distributed or approval process in involved etc then this waste is introduced. By using pair programming approaches and better collaborations this waste can be minimized

  5. Handsoff - Normally this waste emerge when team members work in silos. And team don't have or follow any agile boards to visualize their work. In such cases they need formal handsoff for activities they complete. We solve the issue by not keeping our team functioning as silos and try to work one team which collaborates on daily basis.

  6. Context / Task Switching - When team members work on multiple things at one time then this waste is introduced. Normal human being takes some time to switch the context and if enough time is given he might not be able to provide best quality on which he was working on.

  7. Defects - Software defects is the biggest & costliest waste. This emerge when the quality doesn't get created as per functionality or use expected from that software. Or sometimes if we fail to deliver as per customer expectation which we normally refer as Value.

2. Create Knowledge / Amplify your Learning

Software development process, create lot of Digital knowledge. Lean says we need to create easy ways to learn and understand the system & requirements. To do this there are many ways. Lean principle align with development process by implementing some key methods like: shorter iterations, TDD, code reviews, performing training, code comments, project's or product's key documentation, pair programming and knowledge sharing sessions, etc.


3. Build Quality In

Lean says always ensures that the focus should be always on delivering high quality products. We always keep enhancing our development process to eliminate the waste from steps involved in our software creation process.

There are various lean agile software development approaches that we apply to better the software or product quality:

  • Pair programming – to increase collaboration & lower miscommunication waste and maximum output.

  • Testing – Testing system at all level and ensuring that it meets the requirement.

  • Incremental development – ensuring the quality through timely, consistent feedback from customer.

  • No wait states – to protect the quality and streamline efficiency while lowering the gap in knowledge.

  • Automation – By leveraging technologies like AI and machine learning to lower and eventually eliminate the errors in development processes.


4. Fast Delivery

The Lean & Agile development basics focuses on the fast delivery of software processes to customer. Lean agile principles, being a part of the approach also put focus on fast delivery. It simply means that the project team would have to deliver the software in shorter iterations & continuously improve with customer feedback.

It is easier when there is a stable workflow that helps teams in understanding the value of the process and thus facilitate fast results.


5. Empower Your Team

This one lean principle is what we follow regardless of the team and project. Our team that focuses on software development for startups understands that when you work together you have to respect each other. And when things go south or not according to plan, the focus should be kept on checking for gaps in the work process that might have led to conflicts and challenges.

Ever since our inception, we have been focusing on the creation of a favorable work environment where we lead by example. To better the morale, we also enable creative freedom to our teams giving them the choice to identify the best approach for any task.


6. Delay in Making Decisions

We know what you are thinking – delay in decision making has to be a bad idea.

But when we follow the lean agile principles, we believe that deciding late is not equal to becoming irresponsible. In fact, it encourages the team to keep their options open for a long period of time so that they can gather data which can help in taking important decisions.

The result of this is that our project never suffers from negative impacts which emerges because of bad decision making.


7. See As A Whole & Optimize

Any software or functionality is more than just sum of its parts, but also the interactions between the parts. So it is essential to optimize all parts and build a software which works together and provide great experience to customer as whole. Hence in Lean emphasis is given on entire system or software and not on individual part of system or software; because customer will value the whole software or system & not just your individual small part of system.

 
 
 

Comments


Post: Blog2_Post

Subscribe Form

Thanks for submitting!

©2019 by Ritesh Chopade

bottom of page