Agil steht für Beweglichkeit und genau das wird auch in der agilen Softwareentwicklung verfolgt: Vorankommen in kleinen
Schritten und ein kontinuierliche Auslieferung an den Kunden.
Lean steht kurz und knapp für Kundenfokus, Mitarbeiterorientierung und (Prozess-) Effizienz statt Überdimensionierung und
Trägheit [1].
Ein Lean Mindset ist ein Paradigma, das dem Kunden die Krone aufsetzt und die schnellstmögliche Erfüllung des Kundenwunsches
(Wert) an erster Stelle sieht. Sind alle Unternehmensprozesse (Wertstrom, End-to-End) frei von jeglichem Ballast (Muda),
standardisiert und optimiert, steht dem Flow des Kundenwunsches durch das Unternehmen nichts mehr im Wege. Die Königsdisziplin
liegt dabei im Erzeugen eines Wertes „on demand“ (Pull) statt auf Halde (PUSH). Die Basis nachhaltiger Effizienz bildet dabei
Empowerment der Mitarbeiter, gemäß dem Motto hinter jeder starken Lösung, steht ein starkes Team. Letztlich ist Dranbleiben die
Devise der Kontinuierlichen Verbesserung (KVP) und dem Streben nach Perfektion. Ziel für Unternehmen ist es, auch in stürmischen
Zeiten des Wandels nicht aus der Kurve zu fliegen, effizient zu bleiben und sich im Wettbewerb behaupten zu können [1]
[2], [3].
Eine wesentliche Gemeinsamkeit von Agil und Lean liegt also in der Ausrichtung aller Aktivitäten auf den Kunden. Die zentrale
Frage lauten „Wer ist mein Kunde und was ist sein Wunsch?“. Ist diese Frage beantwortet, gilt es die internen Prozesse unter die
Lupe zu nehmen und von jeglichem Ballast zu befreien.
MUDA - Die Zauberformel zu Beginn einer jeden Entschlackungskur
Mary und Tom Poppendieck prägen den Begriff Lean Software Development. Dabei soll der Lean Gedanke Orientierung für Prozess- und
Qualitätsverbesserungen im Softwareentwicklungsprozess bieten [4].
Ebenso wie für die Urväter von Lean im Produktionsumfeld, liegt für sie das Fundament eines schlanken
Softwareentwicklungsprozesses, neben einem ganzheitlichen Optimierungsansatz, vor allem in der Eliminierung von Verschwendung
[4].
Verschwendung oder japanisch MUDA sind alle Aktivitäten, die dem Kunden keinen Mehrwert bieten und somit für ein Unternehmen
nicht wertschöpfend sind [2].
Die Frage hierzu lautet „Ist unser Kunde bereit für diese Aktivität zu bezahlen?“
Im Umkehrschluss lassen sich 8 Arten der Verschwendung benennen, für die der Kunde mit Sicherheit keinen Pfennig ausgeben möchte,
sei es bei der Produktion seines neuen Sportwagens oder bei der Entstehung einer heiß geliebten App [2], [4], [5].
|
Verschwendung in der Produktion
|
Verschwendung in der Softwareentwicklung
|
1 |
Bestand (Inventory)
- Überflüssige Bestände von End- und Zwischenprodukten
- alle Komponenten, die im Regal liegen und verstauben
|
Unvollständig erledigte Arbeit (Partially Done Work)
- Keine Integration von Code in Gesamtumgebung und Bestätigung der Funktionsfähigkeit
- Umfangreiche Dokumentation von Anforderungen, die nicht umgesetzt werden
|
2 |
Überbearbeitung (Overprocessing/-engineering)
- Unnötig aufwändige Bearbeitung/Prozesse
- Ziel: nur so genau, wie nötig
|
Zusätzliche Prozesse (Extra Processes)
- Unnötig komplexe Algorithmen lösen einfache Probleme
- Unnötig aufwendige Anforderungsdokumentation
|
3 |
Überproduktion (Overproduction)
- Hergestellte Produkte, für die es keinen Kunden gibt
|
Zusätzliche Features (Extra Features)
- Programmierte Features, für die es keinen Kundenwunsch gibt
|
4 |
Transport (Transportation)
- Überflüssiger Transport von Material
|
Multitasking (Task Switching)
- Gedankliche Rüstzeit durch ständiger Wechsel zwischen Projekten
- Keine sequentielle Abarbeitung von Projekten
|
5 |
Warten (Waiting)
- Warten von Mitarbeitern oder Leerläufe von Maschinen/Anlagen
|
Warten (Waiting)
- Informationen, die nicht weitergegeben werden
- Kein integratives Vorgehen von Design und Softwareentwicklung
- Langsamer Rechner
|
6 |
Bewegung (Motion)
- Unnötige Bewegung von Mensch und Maschine
|
Bewegung (Motion)
- Einholen von Information
- Arbeiten an unterschiedlichen Standorten
|
7 |
Fehler (Defects)
- Fehlerhafte Produkte und Nacharbeit
|
Bugs (Defects)
- Software entspricht nicht der Spezifikation
- Ziel: Fehler schnellstmöglich erkennen, durch häufiges Integrieren und Testen
|
8 |
Intellect
- Ungenutzte Potentiale der Mitarbeiter
| |
An der Frage, welche Art der Verschwendung es nun bevorzugt zu Verteufeln gilt, scheiden sich die Geister.
Poppendieck und Cusumano zitieren hierzu einen erfolgreichen Senior Manager, der die Initialzündung von Lean in einem
kurzzyklischen Vorgehen sieht: “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]
Im Produktionsumfeld hingegen liegt der schwarze Peter bei der Überproduktion, da diese alle weiteren Arten der Verschwendung
hinter sich herzieht. Analog dazu birgen auch zusätzliche Features zahlreiche Verschwendungsquellen. Jede Zeile Code
erhöht die Komplexität und ist verbunden mit Aufwänden für Entwicklung, Integration, Testen und Wartung über den gesamten
Lebenslauf hinweg.
Glaubt man einer Studie aus dem Jahr 2018 mit Teilnehmern aus 14 Unternehmen der Branchen Telekommunikation, Automotive,
Verteidigung und Beratung so ist Multitasking die bedeutendste und Zusätzliche Features geringste Form der Verschwendung.
Wohingegen die beratenden Unternehmen in den Zusätzlichen Features die größte Form der Verschwendung sahen. In allen Unternehmen
gibt es jedoch keinen strategischen Ansatz zur ganzheitlichen Reduzierung und Eliminierung von Verschwendung [7].
Ein plakatives Beispiel, um Verschwendung zu demonstrierten, soll Steve Jobs bei der Entwicklung des ersten iPods geliefert
haben. Aus seiner Sicht war der iPod zu groß geraten und verfehlte somit die Kundenbedürfnisse. Um zu belegen, dass Platz in dem
Gerät verschwendet wurde, warf Steve Jobs den iPod kurzerhand in ein Aquarium, es stiegen Luftblasen auf und der Beweis war
erbracht.
Was können wir aus diesem Beispiel mitnehmen?
Es bleibt immer zu hinterfragen, ob eine Effizienzsteigerung auch wirklich den Kundenwert erhöht und mit einer Kostensenkung
verbunden ist.
Verschwendung zu sehen, ist ein Prozess auf dem Weg zur Perfektion und „Perfektion ist nicht dann erreicht, wenn man nichts mehr
hinzufügen, sondern wenn man nichts mehr weglassen kann“ (Antoine de Saint-Exupéry).
Quellen
-
[1] Ohno, T. Das Toyota Produktionssystem. Frankfurt/Main, New York: Campus Verlag, 1993.
-
[2] Liker, J. K. Der Toyota Weg - 14 Managementprinzipien des weltweit erfolgreichsten Automobilkonzerns. München:
FinanzBuch Verlag, 2008.
-
[3] Womack, J. P., und D. T. Jones. Lean Thinking - Ballast abwerfen, Unternehmensgewinne steigern. Frankfurt am Main:
Campus Verlag, 2004.
-
[4] Poppendieck, M., und T. Poppendieck. Lean Software Development: An Agile Toolkit. New Jersey, Addison-Wesley
Professional, 2003.
-
[5] Shingo, S. A Study of the Toyota Production System from an Industrial Engineering Viewpoint. New York: Productivity
Press, 1989.
-
[6] Poppendieck, M., und M. A. Cusumano. Lean Software Development: A Tutorial. IEEE Software, Volume: 29, Issue: 5,
2012.
-
[7] Alahyari, H., und T. Gorschek und R. B. Svensson. An Exploratory Study of Waste in Software Development
Organizations
using Agile or Lean approaches: A Multiple Case Study at 14 Organizations. Information and Software Technology 2018.