In meiner Masterarbeit möchte ich mich mit der Anwendung von Agile beschäftigen.
Es gibt eine ganze Reihe von Unternehmen, die agile Lösungen verkaufen - viele Unternehmensberater, die ihre Marke als die "beste" verkaufen.
Ich bin nicht daran interessiert, ob XP , Scrum , Kristallklar , Agile-CMMI , Sechs Sigma oder eine andere Marke/Variante ist am besten. Ich bin daran interessiert, was echte, aktive Entwickler (d.h. ihr) tatsächlich als agil anwenden.
Ich habe untersucht, wie man agile Methoden an die verschiedenen organisatorischen Anforderungen anpassen kann.
Aus der Untersuchung, wie verschiedene Organisationen agile Methoden anwenden, habe ich die folgenden Leitlinien entwickelt - ein Rezept dafür, welche agilen Varianten in welchen Situationen angewendet werden sollten:
- Größere und stärker verteilte oder flexiblere Teams brauchen strengere Kodierungs- und Teststandards, kleine Teams können (und sollten) weniger verwenden.
- Die Prozessdokumentation sollte minimal, zeitnah und aktuell sein.
- Detaillierte statistische Kontrollindikatoren sind ein unnötiger Mehraufwand: Die frühzeitige Freigabe unvollständiger Software ist ein besserer Indikator für den Fortschritt.
- Idealerweise sollten die Entwickler in der Nähe des Kunden sein und keine spezialisierten Zwischenrollen übernehmen. Zusätzliche Rollen sollten nur verwendet werden, wenn die Kunden so spezialisiert sind, dass Entwickler nicht gleichzeitig auch Benutzer sind.
- Iterationen sollten flexibel sein, es sei denn, die Koordination der Freigaben mit anderen Abteilungen oder anderen Prozessen wird dadurch begünstigt.
- Die Entwickler sollten in der Lage sein, einfach und regelmäßig miteinander zu kommunizieren, aber die Treffen sollten seltener sein (monatlich und wöchentlich, nicht täglich).
- Die Paarprogrammierung sollte nur für Schulungs- und Untersuchungsaufgaben eingesetzt werden.
- Diese Leitlinien sind nur ein Ausgangspunkt: Durch kontinuierliche Verbesserungen sollte die agile Variante weiter an die genauen Umstände angepasst werden.
Diese Faktoren ändern sich, wenn sie in einer Organisation mit bestehenden traditionellen (d.h. BDUF o Wasserfall ) Modelle, bei denen agile Teams entweder mit Teams, die nicht-agile Methoden anwenden, koexistieren oder von diesen angepasst werden müssen:
- Eine Prozessdokumentation mit Abzeichnung und strukturierten Schritten hilft anderen Teams, das Projekt zu verfolgen.
- Statistische Indikatoren (z. B. Geschwindigkeit) können nicht-agilen Teams die Gewissheit geben, dass der Prozess unter Kontrolle ist.
- Feste Iterationen erleichtern die Koordinierung zwischen den Teams.
Diese zusätzlichen Leitlinien werden die Koexistenz von agilen und traditionellen Modellen erleichtern, bringen aber auch zusätzlichen Aufwand und Einschränkungen mit sich.
Was ich wissen möchte, ist, was Sie - die Leute, die Software schreiben, nicht die agilen Berater - von diesem Rahmenwerk halten.
Was ist Ihrer Meinung nach richtig? Was ist Ihrer Meinung nach falsch? Was würden Sie ändern? Was habe ich übersehen?
Und vor allem: Warum?
Ich habe ein Kopfgeld ausgesetzt, um einen zusätzlichen Anreiz für die Beantwortung dieser recht langen Frage zu bieten. Die Prämie geht an denjenigen, der die meisten Stimmen aus der SO-Community erhält - mir ist klar, dass es keine einzig richtige Antwort gibt, aber ich bin daran interessiert, was dem Konsens der Community am nächsten kommt.