Agile oder Lean: Ja, ja, was ist der Unterschied?

Ursprünglicher Autor: Abby Fichtner
  • Übersetzung
Ist Agile ähnlich wie Lean? Wenn Leute "Agile" sagen, meinen sie dann wirklich Scrum? Oder verwenden die Leute immer noch verschiedene Arten von Agile und warum?

Als ich in der Vergangenheit viele Fragen bekam, entschied ich mich, alle „Ands“ zu setzen.

Bild


LEAN


Lean stammt aus Lean Manufacturing. Er hat eine Reihe von Grundsätzen in Bezug auf Qualität, Geschwindigkeit und Kundenorientierung (genau wie wir es bei der agilen Entwicklung versuchen, oder?).

Mary und Tom Poppendik haben die Grundsätze von „Lean Manufacturing“ für die Softwareentwicklung angepasst Software, und ich glaube, dass diese Ideen die Grundlagen und Gründe dafür sind, wie agil funktioniert:

1. Beseitigung von Verlusten.
2. Verbesserung der Qualität.
3. Wissen schaffen.
4. Passive Rechnungsabgrenzungsposten.
5. Schnelle Lieferung.
6. Respekt für die Menschen.
7. Volle Optimierung.

Kurz gesagt, sagt Lean: Beseitigen Sie rücksichtslos alles, was keinen Mehrwert bringt, und tun Sie nur das, wovon Sie sich im Moment absolut sicher sind, dass Sie dies tun müssen. Verlust zu eliminieren bedeutet, unnötige Besprechungen, Aufgaben und Dokumentationen zu eliminieren. Es bedeutet aber auch, vorübergehende Verluste bei bekannten Aufgaben, die in Zukunft erledigt werden müssen, zu beseitigen (alles ändert sich ständig und wird am Ende oft unnötig. Wenn wir etwas im Voraus erledigt hätten, müssten wir Zeit damit verbringen, es zu überarbeiten, weil sich die Bedingungen oder unser Verständnis später bereits geändert haben). Dies bedeutet auch, dass wir ineffiziente Arbeitsweisen wie Multitasking beseitigen müssen, damit wir schnell liefern können.

Lean legt auch einen sehr starken Schwerpunkt auf das, was als "System" bezeichnet wird, d. H. dass das Team als Ganzes arbeitet. Wir müssen unsere Arbeit immer „von oben“ betrachten, um sicherzugehen, dass wir uns insgesamt verbessern. Beispielsweise möchten viele Manager die Arbeit eines jeden Entwicklers zu 100% übernehmen, aber in den meisten Fällen ist dies tatsächlich kontraproduktiv. Lassen Sie uns die Leute nicht zwingen, zu codieren, was nicht benötigt wird (oder nicht vollständig definiert ist), nur um zu codieren, da dies in Zukunft noch mehr Arbeit für uns schaffen wird.

Zusammenfassend sagt Lean: Respektiere die Menschen. Dies bedeutet, den Menschen die Arbeit zu geben, die sie am besten können. Geben Sie ihnen, was sie brauchen, um effektiv zu sein, und vertrauen Sie sie dann damit an. Die Essenz der Softwareentwicklung beim kontinuierlichen Lernen; Deshalb müssen wir unsere Arbeit so aufbauen, dass wir ständig lernen. Deshalb müssen Sie die Entscheidung auf den letzten Moment verschieben (da wir dann mehr wissen werden). Infolgedessen geht die Entwicklung von der Schaffung eines Qualitätsprodukts aus, da es keine andere Möglichkeit gibt, eine konstante und schnelle Lieferung zu gewährleisten, wenn Sie zurückkehren und unser Durcheinander beseitigen müssen.

"Unternehmen, die wirklich Lean folgen, haben einen starken Wettbewerbsvorteil, da sie sehr schnell und diszipliniert auf die Marktnachfrage reagieren, anstatt zu versuchen, die Zukunft vorherzusagen", so Mary Poppendik.

Agil


Agile baut auf der Kombination von Werten und Prinzipien auf, die im Agile-Manifest beschrieben sind. Das Manifest war eine Antwort auf die gängigen Schwergewichtsmethoden, bis die anstrengenden Softwareprojekte endlich begannen, das zu tun, was sie wirklich brauchten - Software zu erstellen, die den Kunden hilft. Ich glaube, dass die Werte und Prinzipien von Agile funktionieren, weil die Wissenschaft Lean folgt, und Sie werden feststellen, dass sich in Agile viele Anleihen wiederholen.

Agile Werte sind:


Menschen und Interaktion sind wichtiger als Prozesse und Werkzeuge.
Ein funktionierendes Produkt ist wichtiger als eine umfassende Dokumentation.
Die Zusammenarbeit mit dem Kunden ist wichtiger als die Aushandlung der Vertragsbedingungen.
Es ist wichtiger, auf Änderungen zu reagieren, als dem ursprünglichen Plan zu folgen.

Agile Prinzipien sind:


1. Die höchste Priorität ist die Zufriedenheit der Benutzer.
2. Änderungsanforderungen sind willkommen.
3. Ein funktionierendes Produkt sollte so oft wie möglich freigegeben werden.
4. Wirtschafts- und Entwicklungsvertreter müssen täglich zusammenarbeiten.
5. Motivierte Fachkräfte sollten an dem Projekt arbeiten.
6. Direkte Kommunikation ist am praktischsten und effektivsten.
7. Ein funktionierendes Produkt ist ein Schlüsselindikator für den Fortschritt.
8. Investoren, Entwickler und Nutzer sollten in der Lage sein, auf unbestimmte Zeit einen konstanten Rhythmus einzuhalten.
9. Kontinuierliche Aufmerksamkeit für technische Verbesserungen und Designqualität erhöht die Flexibilität des Projekts.
10. Einfachheit - die Kunst, unnötige Arbeit zu minimieren - ist von wesentlicher Bedeutung.
11. Die besten Anforderungen, architektonischen und technischen Lösungen werden von sich selbst organisierenden Teams geboren.
12. Das Team sollte systematisch mögliche Wege zur Effizienzsteigerung analysieren und den Arbeitsstil entsprechend anpassen.

Jedes Projekt, das diesen Werten und Prinzipien folgt, kann zu Recht als agil betrachtet werden. Trotzdem gibt es sicherlich die gängigsten Praktiken für agile Teams, nach denen Agilität erreicht wird.

Die gebräuchlichsten sind: Scrum oder Kanban (oder eine Mischung aus beiden) für „Management Practices“. Extreme Programming (XP) für technische Verfahren (wobei neue Verfahren vor allem aufgrund von Lean Statup (z. B. kontinuierliche Bereitstellung und Testen von Produkten) immer beliebter werden).

Gute agile Teams wählen einige der für sie am besten geeigneten Management- und technischen Praktiken aus. (Ein schlechtes Beispiel, wenn sie nur ein paar Übungen machen und fälschlicherweise glauben, dass es sie „agil macht“)

Danksagung: Dank an Yuri Prokudin, Ekaterina Kiveleva, für ihre Hilfe bei der Erstellung des Textes.

Jetzt auch beliebt: