Lean Software Development - Comprehensive Guide [2019]

Virender Singh

Enroll in Selenium Training

We have many other methodologies in Agile like Scrum and Extreme Programming then why Lean? What makes it different from other methods?

Here’s the answer, Lean Development Methodology decreases cost, efforts, and waste. Lean software development is an iteration methodology initially developed for the manufacturing industry to optimize production and avoid waste. Many of the principles and practices in Lean Software Development came from the lean enterprise movement and was initially used by big companies like Toyota.

Mary and Tom Poppendieck brought Lean into the Software development world. They converted all the values, practices, and principles according to the software industry, documented them all into one book and brought them into practice.

Lean Artifacts:

All the activities in any industry are divided into Value Add (VA) or Non-Value Add (NVA).

Value-Add activities -

are all the activities that physically improve a product or a service for customers – which means they are those activities that add value!

Non-Value Add (NVA) activities -

are the activities that do not add value but are performed. The Customer has to bear the cost of NVA, and since it is not value add, a customer doesn’t want to pay for it.

Waste -

To understand waste better, we can consider a very simple example of an oven. An oven’s design is such, that if you open the door, it stops automatically and saves electricity. Similarly, in technical terms, if a feature is of no use, no extra coding is required. The Japanese call waste as "Muda". The main focus of Lean is to remove waste and keep what is compulsory.

7 Waste of Software Development:

Lean Manufacturing and Toyota Production Systems (TPS) were the firsts to develop Lean Software Development. In TPS, they divided waste into seven major sections.

Mary and Tom Poppendeick - in their book ‘Lean Software Development – An Agile Toolkit’, interpreted these seven wastes of manufacturing into seven wastes of software development. These seven wastes are Non-Value Add and act as the opponent. They make us waste our efforts, time, and cost.

Once we understand all seven wastes, we should be able to identify the wastes in the process, irrespective of Industry. Once you can identify it, you can eliminate it and hence increase your efficiency, productivity, and revenue.

Below are the wastes in the manufacturing industry and they are recognized in the software industry as below:-

Manufacturing Industry Waste Software Development Industry waste
Inventory Incomplete/Partial work done
Extra processing Extra or not needed Feature
Overproduction Additional Processing or additional documentation
Transportation Task switching
Waiting Waiting/ delay
Motion Hand-off
Defect Defect (Counter-intuitive it seems at this moment, more details below)

7-Wastes-of-Software-Development

WASTE 1: Incomplete/Partial Work Done -

Work doesn’t add value to the customer until its complete, which, in turn, keeps the resources occupied. Moreover, until and unless it is not complete, we can’t figure out whether it will work or not.