Lean principles in Agile

Lean was followed in manufacturing industries from quite some time, but it was adopted for software development by Marry and Tom Poppendieck in the first decade of the 21st century. They simplified the concept of lean to be understood and applied in the software world.

In this Article we will talk in brief about lean values:

Lean is a mindset that emphasizes getting the waste eliminated, building in more and more quality, and focuses only on what is required for the product. 

LEAN IS A MINDSET – a mental model of how the world works

– Marry and Tom Poppendieck

Like Scrum and XP, Lean also has its own set of values, and any team that wants to take advantage of lean principles should start embracing these values, also known as ‘lean thinking’.

The seven basic principles to learning if you are looking to start practicing and taking benefit from Lean are:

seven principles of lean

1. Eliminate Waste 

Any team will be able to eliminate waste processes/work only if they can identify it. In many cases, any work important for one ‘role’ in the team might not be as important to others. Therefore lean came out with seven wastes of software development.

  • Partially Done Work : Any task that is not ‘done done‘ cannot be delivered to customers and is a waste.
  • Extra Processes: Processes like too much documentation or frequent status meetings do not add value to software; therefore, it is considered waste.
  • Extra Features: Building unnecessary features that are neither required nor demanded by anyone is a waste.
  • Task Switching: Switching between tasks like training and support adds a lot to waste.
  •  Waiting: Often, a team member is waiting to pull another task until some other member has done some work. Such processes add to waiting time and adds to waste. 
  • Motion: Movement required to communicate with the team adds to waste.
  • Defects: Fixing defects later instead of preventing them is a waste.

2. Amplify learning 

Lean talks about amplifying the team’s ability to learn more and faster. Learning concerning new technology and user needs should be given importance if you want to boost your learning to build a better product. Software development is a creative process, and there can be situations where the team is uncertain about the solution, requirement, and even problems. Teams that are inclined towards learning are successful. Few pointers to help improve product learning:

  • Test smaller pieces of code end to end.
  • Work on interfaces first rather than focusing on separate components. 
  • Cross functional team.

3. Deliver as fast as possible 

As you must have gotten an idea, we refer to frequent and continuous deliveries, which customers do not like the product to be delivered quickly. Faster deliveries keep the customers engaged, have trust and confidence built into them, and get frequent feedback for improving quality. Some points that help fast delivery are :  

  • Develop in small iterations. 
  • Deployment tools for daily builds.
  • Automated testing to prevent issues.

4. Decide as late as possible 

This is the most misunderstood lean principle, which says to defer decisions to a point where you have the maximum information. This value does not say that you do not make decisions or postpone your work. For example – while working on your product’s architecture, have the designs with you but implement any one of them when the team has information on the scalability required, number of users of the product, and cost available. Softwares that are configurable and loosely coupled can defer their decisions till the right time arrives.

5. Empower the team 

This principle emphasizes not doing micromanagement but empowering your team to make decisions. Engage your team; do not direct them. Trust the team and provide them with the environment to take managed risks.

6. Build integrity in 

Work on building on software that is in synchronization with the users. Know in-depth about your product to enhance the quality internally (developers perspective) and externally (users perspective). Lean highlights that the two tools you can use to accentuate integrity into your product are refactoring and testing

7. See the whole 

Try to optimize the whole system rather than focusing on individual components for example, team not having the full knowledge of the product might have a negative impact on one of the areas within the product while optimizing any other area. The team might be thinking that they did an excellent job. but that is not the case. Having a mechanism in place to measure the health of the product as a whole and timely identification of the root cause of issues helps to know the bigger picture better.

Application

Applying lean values allows the team to maximize their productivity, build a better product by enhancing their learning, engage with customers, identify waste, and eventually help the organization grow.

Scroll to Top