Top!
Top!
Hello
Agile stands for agility and this is exactly what is pursued in agile software development, progressing in small steps and continuous delivery to the customer.
Lean stands, in a nutshell, for customer focus, employee orientation and (process) efficiency instead of oversizing and inertia [1].
A lean mindset is a paradigm that puts the customer first and sees the fastest possible fulfillment of the customer's wish (value) as top priority. If all company processes (value stream, end to end) are free of any ballast (muda), standardized and optimized, nothing else stands in the way of the customers' wishes flowing through the company. The supreme discipline here lies in generating value "on demand" (pull) instead of in stockpiles (PUSH). The basis of sustainable efficiency is the empowerment of the employees, according to the slogan behind every strong solution, there is a strong team. In the end, staying on track is the key to continuous improvement (CIP) and the pursuit of perfection. The aim for companies even in challenging times of change is not to lose focus, to remain efficient and to maintain position in the competitive environment [1], [2], [3].
An essential commonality of Agile and Lean is therefore the orientation of all activities to the customer. The central question is "Who is my customer and what are their needs? Once this question has been answered, the internal processes must be carefully examined and be cleared of any ballast.
Mary and Tom Poppendieck have coined the term of LEAN SOFTWARE DEVELOPMENT. For them, this was not about the application of LEAN tools in software development as such, but rather the idea of LEA should provide orientation for process and quality improvements in the software development process [4].
As much as the pioneers of lean in the production environment, they consider the elimination of waste to be the foundation of a lean software development process, as well as a holistic approach to optimization [4].
The term waste, or MUDA in Japanese, is any activity not adding value to the customer and thus not adding value to a company [2]. So, the relevant question is "Is our customer willing to pay for this activity?"
In reverse, 8 types of MUDA can be identified for which the customer would certainly not want to spend a penny, whether in the production of his new sports car or in the creation of a beloved app [2], [4], [5].
Waste in Production | Waste in Software Development | |
---|---|---|
1 | Inventory - Excess inventories of final and intermediate products All components gathering dust in a drawer |
Partially Done Work - No integration of code into overall environment and confirmation of functionality - Extensive documentation of requirements that are not implemented |
2 | Overprocessing/-engineering - Unnecessarily complex editing/processes - Goal: only as accurate as necessary |
Extra Processes - Unnecessarily complex algorithms solve simple problems - Unnecessarily complex documentation of requirements |
3 | Overproduction - Products manufactured for non-existent customers |
Extra Features
- Programmed Featuresfor non-existent customer requests |
4 | Transportation - Unnecessary transportation of material |
Task Switching - Mental set-up time due to constant change between projects - No sequential execution of projects |
5 | Waiting - Maintenance of employees or idle time of machines/equipment |
Waiting - Information that is not shared - No integrative approach of design and software development - Slow computer |
6 | Motion - Unnecessary movement of man and machine |
Motion - Information gathering - Working at different locations |
7 | Defects - Defective products and rework |
Bugs (Defects) - Software does not comply with the specification - Goal: Detect errors as quickly as possible through frequent integration and testing |
8 | Intellect - Unused potential of employees |
Opinions differ on the question of which type of waste should be preferably demonized.
In this regard, Poppendieck and Cusumano quote a successful senior manager who defines the initial spark of lean in a short-cycle approach: “If you deliver daily, waste is exposed almost immediately; you have no choice but to build quality in; you learn quickly what customers value; everyone at every level is focused on making customers happy; problems are exposed quickly and so constant improvement is mandatory; and finally, optimizing just a part of the system simply is not an option with daily deployment.” [6]
In the production environment, however, the blame game is the overproduction, as this drags all other types of waste behind itself. (Source) Similarly, additional features also generate numerous sources of waste. Each additional line of code adds complexity and is connected with development, integration, testing and maintenance over the entire lifecycle.
According to a study established in 2018 with 23 participants from 14 companies in the telecommunications field, automotive, defense and consulting industries, multitasking is the most significant form of waste. In contrast Additional features was the least whereas the consulting companies saw Additional Features as the greatest form of waste. In all companies, however, there is no strategic approach to the holistic reduction and elimination of waste [7].
A prominent example of waste is said to have been provided by Steve Jobs during the development of the first iPod. In his view, the iPod was too big and thus failed to meet customer needs. To prove that space in the device was wasted, Steve Jobs threw the iPod into an aquarium, air bubbles rose and the proof was given.
What can we learn from this example?
It always remains to be questioned whether an increase in efficiency really increases customer value and is associated with a reduction in costs.
Seeing waste is a process on the way to perfection and "perfection is not achieved when you can no longer add anything, but when you can no longer leave anything out" (Antoine de Saint-Exupéry).