Was brauchen Sie, um mit Agile erfolgreich zu sein?

11

Agile Adoption kann in einigen Organisationen fehlschlagen. Ich habe sogar für ein Unternehmen gearbeitet, in dem Wasserfall der einzige (wahre) Weg war, aber nur, weil sie Agile bei einem Projekt ausprobiert haben und gescheitert sind.

Als ich die Leute fragte, die sich noch daran erinnerten (ich war ein Junior), wurde ich hart abgeschaltet, als würde ich sie an einen schlimmen Albtraum erinnern, der wirklich passiert ist.

Ich weiß nicht, warum das Projekt fehlgeschlagen ist. Es gibt Ressourcen im Internet, warum Agile bei einigen Unternehmen versagt, aber der Grund ist meistens wirtschaftlicher Natur. Also dachte ich, ich bitte hier um ein Feedback.

Was sind die Gründe, warum die agile Einführung in einigen Organisationen fehlschlägt? Oder anders ausgedrückt: Was brauchen Sie, um mit Agile erfolgreich zu sein?

neugierigAboutIt
quelle
1
Lesen Sie alle diese Fragen: stackoverflow.com/search?q=agile+failure . Verfeinern Sie dann Ihre Frage, um genauer zu sein. Dies wurde abgedeckt. Gründlich. Beim Stapelüberlauf.
S.Lott
Ich habe keine Antwort hinzuzufügen, außer der Tatsache, dass die Antworten unten ALLE so voller Gewinn sind .
maple_shaft
Was Sie brauchen, ist, den tatsächlichen Wert für Agile anzuzeigen, nicht Agile, weil es Agile ist. Ansonsten siehst du in diesem Video genauso albern aus wie der CIO .
1
Sie brauchen einen unerschütterlichen religiösen Fanatismus und den Mut zuzugeben, dass jeder Misserfolg mit mehr Agilität hätte verhindert werden können .
Aaronaught
Agile eignet sich für Projekte, bei denen sich die Anforderungen sehr häufig ändern und bei denen die explorative Entwicklung eine praktikable Lösung darstellt: Die Kosten für Fehler aufgrund einer schlechten Implementierung sind im Vergleich zu den Vorteilen eines frühen Kundenfeedbacks vernachlässigbar. Mit agile können Sie beispielsweise einen Online-Katalog für einen Supermarkt entwickeln. Auf der anderen Seite sollten Sie nicht agil verwenden, um eine Steuerungssoftware für ein Kernkraftwerk zu entwickeln: Da ein Ausfall keine Option ist, können Sie keinen Trial-and-Error-Ansatz verwenden: Sie müssen ihn im Voraus entwerfen. Viele Projekte liegen irgendwo zwischen diesen beiden Extremen.
Giorgio

Antworten:

11

Sie benötigen Management, Kunden und Entwickler, um die agile Denkweise und die agilen Methoden zu verstehen und zu unterstützen. Ausführlicher:

  • Das Management muss sich damit abfinden, die Wahrheit zu hören, im Gegensatz zu dem, was es traditionell erwartet (dh "Ja, das Projekt ist auf dem richtigen Weg" für 11 Monate ... dann plötzlich "Ups, wir müssen die Frist um einige Wochen verschieben." ... ähm, Monate ... ähm ... "ganz am Ende). Sie müssen auch damit vertraut sein, dass jede Partei ihre Arbeit erledigt (und Verantwortung dafür übernimmt). Am prominentesten ist, dass die Entwickler technische Entscheidungen und Schätzungen treffen sollen. Also keine strenge Kontrolle und Mikromanagement.
  • Kunden müssen verstehen, dass Agile eine intensive und kontinuierliche Beteiligung am Entwicklungsprozess erfordert, nicht nur "Bestellung aufgeben", sondern die Lieferung einige Monate später abholen. Sie müssen sich auch mit dem Fehlen einer Spezifikation für große feste Anforderungen und dem offensichtlichen Mangel an Engagement des Entwicklungsteams, das zu liefern, wonach sie ursprünglich angefordert wurden, wohl fühlen.
  • Entwickler müssen damit vertraut sein, Verantwortung zu übernehmen, Entscheidungen zu treffen, offen zu kommunizieren und als Team zu arbeiten. Dh kein "Code-Besitz", keine "einsamen Cowboys" und keine erfolglose Schuld anderer für Probleme, die vom Team selbst gelöst werden können.

Nach meiner Erfahrung ist dies der erste Punkt, der am häufigsten hinter fehlgeschlagenen agilen Projekten steckt, aber die beiden anderen können ebenfalls Probleme verursachen.

Aktualisieren

Mit "Management" meine ich nicht nur den direkten Projektmanager, sondern auch höhere Ebenen. Wie @Michael zu Recht bemerkt hat, können einige mehr oder weniger externe Parteien (z. B. QS oder ein externer Aufgabenbeauftragter) auch den Erfolg / Misserfolg von agilen Projekten beeinflussen, aber ich nehme an, dass dies nur möglich sein kann, wenn ihr jeweiliger Leiter dies zulässt, und / oder wenn Verantwortlichkeiten und Befehlszeilen innerhalb der Organisation nicht klar sind.

Péter Török
quelle
2
+1: Management ist der größte Gegner agiler Methoden. Genauer gesagt ist es Buchhaltung. "Verantwortungsbewusstes" Management bedeutet, dass in unvorhersehbarer Zukunft ein Zeitplan und ein Budget geplant werden müssen. Immer unmöglich.
S.Lott
7

Du brauchst:

  • Menschen, die bereit sind, sehr offen und ehrlich zu sein . Sichtbarkeit ist alles, weil Sie Vertrauen über alle Arten von Ebenengrenzen hinweg benötigen.
  • Kunden und Manager, die wirklich die Wahrheit hören wollen.
  • Menschen , die bereit und fähig sind , ihre Rollen neu definieren zu entsprechen , was gebraucht wird gerade jetzt .
  • Freedom Prozesse zu ändern , die nicht arbeiten jetzt .
  • Menschen, die bereit sind, Fehler zuzugeben und umzukehren .
  • Die Fähigkeit, Build- und Testumgebungen nach Belieben zusammenzustellen . (Dies ist wichtiger und teurer, als die Leute es glauben.)
  • So viele Whiteboards, wie Sie Ihre Wände füllen können.

Scheint so einfach, aber viele davon sind große Fragen in dieser Branche.

pdr
quelle
+10391399 wenn ich auf "Kunden und Manager, die wirklich die Wahrheit hören wollen" könnte!
maple_shaft
... wieder ein ausgezeichneter Kommentar zur Fähigkeit, Umgebungen nach Belieben zu errichten, und zur Bedeutung von Whiteboarding. Wenn das Firmenbudget für Trockenlöschmarker pro Jahr nicht in den Hunderten liegt, dann machen Sie nicht genug Whiteboarding :)
maple_shaft
1
Ich habe gerade mein Home Office beendet. Eine Wand mit weißer Tafelfarbe bedeckt. Es bindet den Raum wirklich zusammen.
JeffO
3

Ein agiles Projekt scheitert meistens, wenn ein Schlüsselspieler sich weigert, agil zu sein, oder (schlimmer), wenn jemand nicht ehrlich am Erfolg des Projekts interessiert ist oder es geradezu sabotiert. Letzteres kann jedes Projekt beenden (wie eine Reihe anderer Dinge), aber agile Prozesse geben den Menschen mehr Flexibilität, und dazu gehört auch die Flexibilität, destruktive Politik zu betreiben.

Beispiele:

  • Die Qualitätssicherung besteht darauf, dass Kunden die Software nur sehen können, wenn sie einen einmonatigen manuellen Testzyklus durchlaufen hat
  • Das Management legt unrealistische Fristen fest
  • Der Kunde weigert sich, Anforderungen zu priorisieren (" alle haben die höchste Priorität!")
  • Jemand, der kein unmittelbarer Stakeholder ist, aber über politischen Einfluss verfügt, weist einem wichtigen Teammitglied immer wieder langwierige, nicht verwandte Aufgaben zu, und der Projektmanager kann dies nicht verhindern.
Michael Borgwardt
quelle
3

Ich kann meinen Rat nur aus eigener Erfahrung geben.

Ein Arbeitgeber, den ich bei Agile völlig gescheitert war. Die Arbeiten wurden auf Ad-hoc-Basis durchgeführt, es gab keine Tests und die Anforderungen wurden in E-Mails und Sitzungsprotokollen dokumentiert. Die einzige verwendete Entwicklungsmethode war Anarchie oder "Fire-and-Forget-Codierung". Die Implementierung einer Software-Engineering-Methode wäre unmöglich gewesen, da die Entwickler zu überarbeitet waren, um eine Art Story-Tracking-Projektmanagementsoftware einzurichten.

Bei einem anderen Arbeitgeber hatte unser Team ein heldenhaftes Mitglied, das verzweifelt versuchte, einige agile Best Practices zu etablieren - wir hatten ein Kanban-Board, Problemverfolgung, wir verwendeten TDD und BDD (obwohl sie an sich nicht agil sind, sind sie in agilen Gruppen präsent). . Leider fehlten uns Dinge wie Story Points, Schätzungssitzungen, Kapazitätsplanung, Burn-Down-Diagramme, Geschwindigkeitsdiagramme - eine Art nützliches agiles Projektmanagement-Material, mit dem die Arbeit reibungslos ablaufen kann. Als klassisches Symptom dafür, dass Agile schief geht, haben wir ein größeres Board gekauft, als unser Kanban-Board zu voll wurde: /

Der Ort, an dem ich mich gerade befinde, verwendet Story Points als Planungsmethode für zweiwöchige Iterationen, TDD, tägliche Stand-ups, Iterationen für Iterationen mit Zeitbox-Retrospektiven und Paarprogrammierung für die meisten Dinge. Dies ist das Ergebnis eines umfassenden Management-Buy-ins und einer Kundenschulung.

Damit Agile in einem Unternehmen erfolgreich sein kann, benötigen Sie Folgendes:

  • Projektmanager, die Agile verstehen und die Tools angemessen einsetzen.
  • Entwickler, die Agile verstehen, die offen und ehrlich sind, mit der Disziplin, die Agile erfordert
  • Buy-In vom Kunden. Sie müssen die Vorteile von Agile erkennen und bereit sein, auf die Ratschläge ihrer Entwickler zu hören, was in einem bestimmten Zeitraum entwickelt werden kann.

BEARBEITEN: Es ist auch wichtig sicherzustellen, dass Sie ein gutes Verständnis dafür haben, warum Dinge wie tägliche Stand-Ups und kurze Iterationen nützlich sind.


quelle
2

Meine Erfahrungen mit agilem Versagen hatten nichts mit Wirtschaft zu tun, sondern mit Unternehmens- / Abteilungs- / persönlicher Politik.

Auf persönlicher Ebene gibt es einfach einige Leute, deren Persönlichkeiten zusammenstoßen werden. Wenn sie zu einem agilen Team oder noch schlimmer zu einem gepaarten Programmierteam gezwungen werden, wird ihre Abneigung gegen einander zu einem Siedepunkt eskalieren. Dies kann sehr böse werden, sehr schnell und zu Dingen wie Sabotageakten führen, die einer Reality-Show würdig sind, und Scrum-Meetings in eine kreisförmige Schießgruppe der Schuld oder noch schlimmer verwandeln.

Darüber hinaus gibt es Entwicklungsmanagement. Ich habe gesehen, dass dies auf zwei verschiedene Arten schief gelaufen ist.

Das erste ist "Cargo Cult Agile", bei dem der Manager darauf besteht, das Manifest und die Klasse / das Buch / die Website, die er genau liest, zu befolgen, ohne zu verstehen, warum und wann er sie verwendet und wann er improvisiert. Es ist, als ob der agile Manager auf die Magie wartet, weil er dem Zauber genau folgt. Diese prokrustische Implementierung von Agile kann zu einer Reihe von Problemen führen, die zum Scheitern des Projekts führen.

Das andere ist "Agile In Name Only", bei dem die Terminologie wie Sprints und Scrum verwendet wird, aber eigentlich nur Bezeichnungen für alte Praktiken wie Mikromanagement, Unehrlichkeit, die die Befehlskette auf und ab geht, langwierige nutzlose Statusbesprechungen und ähnliches . Projekte scheitern wie früher, aber jetzt kann Agile eher dafür verantwortlich gemacht werden als für schlechtes Management.

Darüber hinaus fehlt ein Buy-In durch den Kunden / Kunden des Projekts. Diese Mitarbeiter haben ihre eigenen Abteilungsprioritäten und können möglicherweise nicht mit einem Entwicklungsteam zusammenarbeiten, es sei denn, das Management hat klargestellt, dass dies ein wesentlicher Bestandteil ihrer Arbeit ist. Dies kann durch Abteilungs- oder Unternehmenspolitik verschlimmert werden. Zum Beispiel haben sowohl der Betrieb als auch das Marketing einen Beitrag zu einem Projekt geleistet, und Ihr Team dreht am Ende die Räder, da sich beide Seiten auf nichts einigen können. Ein weiteres Beispiel ist, wenn Unternehmensrichtlinien zu Zeitmanagement und Abrechnung Konflikte verursachen. Ich habe tatsächlich festgestellt, dass externe Kunden einfacher zu behandeln waren als interne. Sie mochten die Aufmerksamkeit, die sie durch den Prozess erhielten, und wussten, dass sie auf ihre Kosten kamen.

jfrankcarr
quelle
0

IMO "Agile" schlägt fehl, wenn die Praktiken nicht im großen Stil übernommen werden. Was ich damit meine ist, dass Agile sich darauf verlässt, dass der "Kunde" (normalerweise eine andere Abteilung oder ein anderer Manager) versteht, dass:

  1. Sie wissen nicht zu 100%, was die Software tun soll, selbst wenn sie glauben, dies zu tun
  2. Sie haben keine Ahnung, wie lange es dauern wird, bis sie fertig sind, selbst wenn sie glauben, dass sie es tun
  3. Sie erfahren , wie lange es dauern wird, und müssen es akzeptieren oder Funktionen reduzieren , um eine Frist einzuhalten
  4. Sie müssen bei jeder Iteration Funktionen auswählen und erhalten nicht die vollständige, 100% vollständige Anwendung auf einmal.

All dies sind für die meisten Manager sehr schwer zu schlucken, und IMO ist der Hauptgrund, warum es schwierig ist, agil zu arbeiten. Manager sind es gewohnt, zu sagen, dass es bis zum x-Datum erledigt sein wird und dass es bis zu diesem Datum "magisch" gemacht wird (nachdem die Entwickler 80-Stunden-Wochen eingegeben haben) und es ist eine 180, um zu erkennen, dass das Entwicklungsteam Ihnen mitteilen wird, dass dieses Projekt in 3 Monaten abgeschlossen sein wird. Sie haben nur die Wahl, es zu akzeptieren oder die Anforderungen zu reduzieren es geschah früher.

Zweitens muss Vertrauen in das Entwicklungsteam bestehen. Hand in Hand mit Nummer 1 oben scheinen nur sehr wenige Manager der Meinung von Leuten zu vertrauen, die als Experten eingestellt wurden. Wenn ein Entwickler sagt, dass ein Projekt x Zeit in Anspruch nimmt und x mehr ist, als das Management denkt, ist es nie ein Fall von "Ich weiß nicht, wie man Software schreibt, also hat der Entwickler wahrscheinlich Recht", es ist mehr. Diese nichtsnutzigen Entwickler wollen bei der Arbeit abhauen, also sagten sie, dass es 3 Monate dauern wird. "

Drittens muss Ihr Entwicklungsteam hinter Agile stehen. Das bedeutet, keine Ecken zu schneiden und ständige Rückmeldungen und Fragen zu "Ist das richtig? Wenn x passiert, was soll Y tun?" nicht zu ignorieren. Auch wenn Sie TDD oder Pair Programming nicht befolgen, muss Ihr Entwicklungsteam kompetent genug sein, um die agilen Prozesse (z. B. Sprints, Iterationen) zu verfolgen. Dies beinhaltet einen Lead / Manager, der Aufgaben richtig einschätzen kann und versteht, dass Sie nicht jede Funktion zu einer Priorität machen müssen, es ist in Ordnung, einen Arbeitsstau zu haben, und Sie sollten die Leute nicht überarbeiten.

Wayne Molina
quelle