Die Agile-Entwicklung hat sich in den letzten Jahren zu einem der größten Trends in IT-Teams entwickelt. Obwohl die darin verwendeten Techniken auf eine Vielzahl von Projekten in jedem Unternehmen angewendet werden können, hat es sich als besonders nützlich für IT-Abteilungen und insbesondere für Softwareentwicklungsprojekte erwiesen.
Aber „agil“ ist ein vager Begriff mit einer Reihe möglicher Frameworks und Methoden, jeder und jede mit ihren eigenen Stärken und Schwächen. Selbst wenn Sie also eine bestimmte agile Arbeitsweise angenommen haben, müssen Sie immer noch entscheiden, wie Sie diese umsetzen wollen.
Zwei der beliebtesten agilen Frameworks für die Softwareentwicklung sind Scrum und Kanban. Diese gehen jedoch sehr unterschiedlich an das Konzept heran und sind möglicherweise nicht für jedes Projekt gleich gut geeignet.
Was müssen Sie also über die jeweiligen Vorteile wissen, und für welche Projekte sind sie geeignet?
Agile
Was ist das?
Agile ist ein Überbegriff für eine Vielzahl von Methoden, die sich von den traditionellen Wasserfall-Entwicklungsprozessen unterscheiden, für die z. B. Scrum und Kanban spezifische Frameworks sind. Ihr gemeinsamer Nenner ist jedoch, dass sie iterative Entwicklungsstrategien fördern, mit denen Projekte in eine Reihe kleinerer Aktivitäten unterteilt werden. Damit ist eine flexiblere Arbeit möglich, und die Teams können schnell auf veränderte Anforderungen reagieren.
Was sind die Vorteile?
Die Einführung einer Agile-Strategie verspricht den Unternehmen eine Reihe von Vorteilen. So ergab der 13. jährliche Agile-Statusbericht von Collabnet VersionOne, dass der Hauptgrund für die Wahl dieser Methode laut fast drei Vierteln der Befragten (74 %) in der Beschleunigung der Softwarebereitstellung liegt.
Darauf folgten folgende Gründe:
- Verbesserte Fähigkeit, sich verändernde Prioritäten zu managen (62 %)
- Gesteigerte Produktivität (52 %)
- Verbesserte Abstimmung zwischen Geschäftsbereichen und IT-Abteilungen (51 %)
Aber auch das Kostensenkungspotenzial ist ein zunehmend großer Treiber. Die Anzahl der Firmen, die diesen Faktor nannten, stieg im Vergleich zum Vorjahr um 71 %, während das Agile-Potenzial, die Moral der Entwicklungsteams zu verbessern, ein weiterer Faktor war, dessen Interesse deutlich zunahm.
Wann sollte ich Agile verwenden?
Wasserfall-Ansätze sind um lange Entwicklungszyklen und unterschiedliche Entwicklungsphasen herum strukturiert. Wenn Sie eine neue Anwendung von Grund auf neu erstellen und eine ausreichend lange Vorlaufzeit haben, können sie gut funktionieren. Sie bieten Klarheit und Struktur und ermöglichen es den Teams, spezifische Anforderungen zu stellen und auf deren Erfüllung hinzuarbeiten.
Aber in der realen Welt ist dies nur noch selten der Fall. Agile sollte immer dann eingesetzt werden, wenn die IT-Abteilung konkurrierende Anforderungen der Geschäftsbereiche ausgleichen muss, um schnell und kostengünstig Ergebnisse zu liefern, ohne dabei Kompromisse bei der Qualität einzugehen. Da die meisten IT-Abteilungen fast immer unter dem Druck stehen, schlanker und intelligenter zu arbeiten, wird es nur wenige IT-Projekte geben, die nicht von einem agilen Ansatz profitieren würden.
Jedes Softwareprojekt, das nicht von Anfang an ein klares, greifbares Ziel vor Augen hat oder von den wechselnden Launen der Geschäftsbereiche mitgerissen werden könnte, ist ein guter Kandidat für einen Agile-Ansatz.
Scrum
Was ist das?
Das Scrum-Framework wird oft als Synonym für Agile verstanden, ist aber ein spezifisches Subset von Agile mit eigenen Methoden und Eigenheiten. Zu den Schlüsselfaktoren, die Scrum von den allgemeinen Agile-Prozessen unterscheiden, gehört das „Sprint“-Format als komprimierter Arbeitszyklus, der bei jedem Abschluss eine funktionierende Software hervorbringt. Es erfordert ständiges Feedback von den Kunden/Endanwendern und wird unter der Aufsicht eines Scrum-Masters durchgeführt.
Was sind die Vorteile?
Scrum ist die beliebteste Form der Agile-Entwicklung. Ein Bericht von Collabnet VersionOne zeigt, dass mehr als die Hälfte aller Projekte (54 %) diese Methodik verwenden. Die schnellen Entwicklungszyklen - ein typischer Sprint dauert in der Regel nicht länger als zwei Wochen - gepaart mit täglichen Meetings zur Überprüfung des Fortschritts, führt zu einer schnellen Umsetzung und Prüfung der Ideen.
Das maximiert die der tatsächlichen Entwicklung statt der Planung gewidmete Zeit. Wenn ein Unternehmen eine neue Idee für eine Funktion hat oder die Funktionsweise einer Anwendung ändern möchte, können sie alle neuen Ergänzungen schnell implementiert und getestet werden, um beizubehalten was funktioniert und nicht funktionierendes zu eliminieren.
Bei Scrum liegt der Schwerpunkt auf ständiger Kommunikation, so dass sich niemand herausreden kann, den Status des aktuellen Projekts nicht zu kennen oder nicht zu wissen, was die neuesten Updates enthalten. Dabei geht es nicht nur um das Entwicklerteam, sondern um alle Beteiligten, von den Geschäftsbereichen bis zu den Kunden, wobei der Scrum Master als Moderator fungiert und alle Anweisungen und Diskussionen koordiniert.
Die tiefe Einbindung der Produkteigner und -manager in den Prozess bedeutet, dass sich alle über die Ziele im Klaren sind, und dass alle Mitglieder des Scrum-Teams klar definierte Rollen haben, die sicherstellen, dass jeder seine Stärken ausspielt und eine bestmögliche Zusammenarbeit fördert.
Wann sollte ich Scrum verwenden?
Scrum eignet sich besonders gut für Softwareentwicklungsprozesse, bei denen es darauf ankommt, neue Produkte oder Funktionen hinzuzufügen und schnell zu verwirklichen. Bei traditionellen Wasserfall-Methoden für diese Aufgaben wird die Arbeit in Stücke aufgeteilt, bei denen es zu Terminproblemen oder Funktionenchaos kommen kann.
Aber mit Scrum hat jeder Sprint die gleiche vorgegebene Länge - es gibt keine Verlängerung, selbst wenn sich herausstellt, dass die Aktivitäten länger dauern als erwartet. Das macht die Planung und Bewertung der Fortschritte einfach, da Sie so leicht erkennen können, ob Sie auf dem richtigen Weg sind. Sie müssen jedoch darauf achten, dass Sie bei der Aufteilung der Aufgaben in kleinere Teile für diese Sprints die Ziele für jede Iteration klar definieren und die Anforderungen nicht mitten im Sprint ändern.
Bei einem komplexen Projekt mit vagen Anforderungen, das gestrafft werden muss, helfen Ihnen das klar definierte Rahmenwerk von Scrum und die festen Fortschrittskontrollen, die Kontrolle über alle Aspekte der Entwicklung zu behalten. Wenn es wahrscheinlich ist, dass während des Entwicklungsprozesses Änderungen erforderlich werden, ist Scrum oft die beste Lösung, um diese wechselnden Anforderungen ohne Unterbrechung zu bewältigen.
Kanban
Was ist das?
Kanban ist eine zunehmend beliebte Option mit einer Reihe wesentlicher Unterschiede zu Scrum. Es wurde von einem Ingenieur bei Toyota entwickelt, um die Effizienz von Just-in-Time-Fertigungsstrategien zu verbessern, hat sich aber auch als sehr nützlich für die Softwareentwicklung erwiesen. Es basiert auf Arbeitsabläufen und Zeitplanung, wobei der zentrale Punkt eine Übersichtstafel des Arbeitsablaufs des Projekts ist, die zeigt, in welchem Stadium des Prozesses sich jede einzelne Aufgabe befindet, wobei jede dieser Aufgaben ihre eigene Karte hat.
Was sind die Vorteile?
Ein wesentliches Merkmal von Kanban ist ein Überblick über das gesamte Projekt auf einen Blick, der zeigt, was bereits abgeschlossen, gerade in Arbeit und noch nicht begonnen ist.
Es ermutigt die Teams, die Anzahl der gleichzeitig stattfindenden Aufgaben zu begrenzen und Elemente schnell von der Idee zur Fertigstellung zu bringen. Teams sollten die Anzahl der gleichzeitig in der Spalte „In Bearbeitung“ möglichen Karten begrenzen, um eine Überlastung zu vermeiden und den Entwicklern zu helfen, sich auf die prioritären Bereiche zu konzentrieren. Dadurch wird ein klarer Arbeitsablauf aufrechterhalten, da jeder Karte auf dem Brett eine Priorität zugewiesen ist. Wenn eine Karte von "in Arbeit" auf "abgeschlossen" wechselt, wird die Aufgabe mit der nächsthöheren Priorität auf der Liste nach vorne verschoben.
Kanban betont die Bedeutung der kontinuierlichen Lieferung und Verbesserung. Indem sich die Teams regelmäßig treffen - wenn auch nicht unbedingt nach einem gleich festen Zeitplan wie bei Scrum - können sie alle den Prozesse aufhaltenden Hindernisse identifizieren und besprechen, welche Änderungen vorgenommen werden müssen, die dann auf dem Kanban-Board festgehalten werden. Dadurch soll sichergestellt werden, dass die Aktivitäten immer darauf abzielen, so direktlinig wie möglich zu sein, aber die Anpassungen werden schrittweise vorgenommen, ohne dass es zu plötzlichen großen Veränderungen in der Projektentwicklung kommt.
Wann ist die Verwendung angebracht?
Aufgrund seines Fokus auf die Arbeitsabläufe und den Durchsatz ist Kanban oft die beste Lösung für Projekte mit vielen relativ kleinen Aktivitäten, die eher ad-hoc notwendig werden. Wenn es sich also um eine sofortbedarfssorientierte Arbeit handelt, wie z. B. die Behebung von Problemen oder Fehlern in einer bestehenden Produktionssoftware, ist Kanban oft die beste Option.
Projekte ohne großen Arbeitsrückstand mit diskreten Aufgaben, bei denen das langfristige Ziel nicht klar definiert ist oder bei denen es keine klare Definition von "fertig" gibt, können von einem Kanban-Ansatz profitieren.
Dabei sind die Rollen der Teammitglieder sind weniger starr als bei Scrum, wobei keine Person die Verantwortung für irgendeine Phase der Projektentwicklung übernimmt oder für die Leistung des Teams verantwortlich ist. Stattdessen arbeitet das Team kollektiv, wobei Aufgaben je nach Bedarf zugewiesen und an der Tafel festgehalten werden. Daher ist dieser Ansatz ideal, wenn man noch nicht genau weiß, welche Aufgaben auf wen zukommen werden.
Keine Angst vor dem Experimentieren
Scrum und Kanban sind zwar die bekanntesten und am weitesten verbreiteten Agile- Methoden, aber bei weitem nicht die einzigen Frameworks auf dem Markt. Extreme Programming, Crystal und Feature Driven Development sind einige weitere Optionen.
Es spricht auch nichts dagegen, einen hybriden Ansatz zu wählen oder mit mehreren Frameworks gleichzeitig zu experimentieren. Es lohnt sich, Zeit in die Untersuchung aller Optionen zu investieren, um eine zu finden, die besonders gut zu Ihrer Arbeitsweise und Unternehmenskultur passt. Und natürlich kann jeder Rahmen, für den Sie sich entscheiden, nur dann effektiv sein, wenn Sie sich auch daran halten - Disziplin ist unabhängig vom gewählten Ansatz unerlässlich.
Greifen Sie auf die neuesten Geschäftskenntnisse in der IT zu
Zugang erhalten
Kommentare
Nehmen Sie an der Diskussion teil ...