Inhalt
- 1Was sind Agile Release Trains?
- 2Agile-Teams: Management und Visualisierung von Abhängigkeiten | Planview
- 3Lean-Kennzahlen zur Verbesserungs des Flows
- 4Agile-Kennzahlen versus Lean-Kennzahlen
- 5Agile Frameworks
- 6Agile-Skalierung: So bewältigen Sie 3 häufige Herausforderungen
- 7Kanban-Software für das Agile-Skalierungsframework
Abhängigkeiten sind Beziehungen zwischen Arbeiten, die die Reihenfolge bestimmen, in der Agile-Teams Arbeitselemente (Features, Storys, Aufgaben) abschließen müssen. Das Abhängigkeitsmanagement ist der Prozess des aktiven Analysierens, Messens und Arbeitens, um die durch teaminterne und/oder teamübergreifende Abhängigkeiten verursachten Störungen zu minimieren.
In diesem Artikel geht es darum, wie Abhängigkeiten identifiziert, abgebildet und verwaltet werden können, um Agilität zu erhöhen und Verschwendung innerhalb von Agile-Teams zu reduzieren.
Agile Programm-Management: Arbeit vernetzen und sichtbar machen
Erfahren Sie mehr über die Herausforderungen für Unternehmen bei der Transformation und wie Unternehmens-Kanban-Software Ihnen effektives Agile Programm-Management ermöglicht.
E-Book lesen • Agile-Programm-ManagementSimplify the Complexity of Agile at Scale
Scaling and extending your Agile program across teams isn’t easy. Simplify the complexity with the right technology.
Webinar ansehen • Simplify the Complexity of Agile at ScaleWas sind Abhängigkeiten in Agile-Teams?
Kein Projekt wird im luftleeren Raum verwaltet. Innerhalb eines Projekts entstehen Abhängigkeiten – zwischen Personen, Schritten, Funktionen oder Teams. In jeder Situation, in der eine Sache vor einer anderen geschehen muss, besteht eine Abhängigkeit:
- Eine Arbeit muss überprüft werden, bevor sie geliefert werden kann.
- Ein Artikel muss geschrieben werden, bevor er redigiert werden kann.
- Ein Feature muss die Qualitätssicherung durchlaufen, bevor es veröffentlicht werden kann.
- Eine Blutprobe muss entnommen werden, bevor sie analysiert werden kann.
Alle diese Beziehungen zwischen Aufgaben sind Abhängigkeiten. Abhängigkeiten können intern oder extern zu den Agile-Teams oder Unternehmen bestehen, die die Arbeit leisten.
Auch wenn „Abhängigkeit“ eher negativ klingt – die Abhängigkeit von einer illegalen Substanz etwa wird als ungesund und schädlich für die abhängige Person angesehen –, sind Abhängigkeiten in Arbeitsprozessen eine neutrale Kraft. Sie sind weder an sich gut noch an sich schlecht, und in den meisten Fällen sind sie unvermeidlich.
Es ist die Reihenfolge von Aufgaben, Arbeiten, Schritten oder Prozessen, die Abhängigkeiten für Agile-Teams handhabbar macht. Das Erkennen von Abhängigkeiten und deren Visualisierung ermöglicht allen Beteiligten, ihren Anteil an der Arbeit besser zu koordinieren und zu priorisieren, um den Flow zu optimieren.
Agile-Teams planen oft Abhängigkeiten in Prozesse ein, um Risiken zu reduzieren, etwa wenn eine Person einen Artikel schreibt und eine andere ihn redigiert oder wenn ein Teammitglied ein Feature entwickelt und ein anderes es testet. Es birgt ein inhärentes Risiko, wenn nur eine Person sowohl für das „Tun“ als auch die „Kontrolle“ in einem Prozess verantwortlich ist, also bauen Teams Abhängigkeiten ein, um dieses Risiko zu verringern.
Eines haben alle Abhängigkeiten gemeinsam: Sie erhöhen die Komplexität jedes Systems. Und mit mehr Komplexität geht oft mehr Verschwendung einher. Die Weitergabe von Arbeit zwischen Menschen oder zwischen Teams ist in der Regel – es sei denn, diese Personen oder Teams sind perfekt koordiniert – mit Leerlaufzeiten, also Verschwendung, verbunden. Viele Agile-Teams bemühen sich, den Umlaufbestand zu reduzieren, um Leerlaufzeiten zu verringern, und laufen damit Gefahr, eine andere Art verschwenderisch zu sein: Fähigkeiten nicht zu nutzen.
Warum gibt es in Agile-Teams Abhängigkeiten?
Eine natürliche Frage wäre: Sollte es überhaupt Abhängigkeiten geben? Wenn Abhängigkeiten Agilität verringern, sollten agile Unternehmen sie dann nicht abschaffen?
Konzeptionell schon – das ideale agile Unternehmen wäre in vollständig autarken, funktionsübergreifenden Agile-Teams organisiert. Diese Teams wären in der Lage, von Start bis Ende ohne externe Abhängigkeiten kontinuierlich Mehrwert zu erbringen. Jedoch ist das nicht realistisch.
Man kann Nutzen ziehen aus der Zusammenarbeit mit anderen Teams, Funktionen und Personen im Unternehmen; die meisten Projekte beinhalten auch bei noch so agilem Design Abhängigkeiten, und sei es bloß innerhalb des Teams.
Zusätzlich zu diesen Prozessabhängigkeitstypen gibt es auch systemische Abhängigkeiten, etwa technische Abhängigkeiten, um die es später noch gehen wird.
Das bedeutet nicht, dass alle Abhängigkeiten gleich oder unvermeidlich sind und Agile-Teams sie einfach umgehen müssen. Einige Abhängigkeiten beruhen auf schlechtem oder übermäßig komplexem Organisationsdesign, und Teams sollten daran arbeiten, sie vollständig zu beseitigen. Andere sind jedoch im Sinne der effektiven Zusammenarbeit, des Risikomanagements oder aus technischen Gründen unerlässlich. Letztlich brauchen Agile-Teams gegenseitige Kontrolle (Abhängigkeiten), um zu gewährleisten, dass sie die bestmögliche Lösung produzieren.
Das Ziel agiler Unternehmen ist also nicht die vollständige Beseitigung aller Abhängigkeiten, sondern:
- sich in funktionsübergreifenden Agile-Teams zu organisieren und unnötige Abhängigkeiten wirksam „herauszudesignen“
- Mapping von Abhängigkeiten zu nutzen, um ein besseres Verständnis der Abhängigkeiten zwischen Systemen, Prozessen und Teams zu gewinnen
- kontinuierliche Verbesserung zu verfolgen, um unnötige Abhängigkeiten zu eliminieren
- notwendige Abhängigkeiten zu analysieren, um vorherzusagen, wie sie sich auf die Lieferbarkeit auswirken
- bessere Systeme für ein Abhängigkeitsmanagement zu schaffen, das die entstehenden Störungen reduziert
Was ist Abhängigkeitsmanagement in Agile-Teams?
Abhängigkeitsmanagement ist der Prozess des Erkennens, Vorwegnehmens und Verwaltens von Abhängigkeiten zwischen Aufgaben, Personen, Prozessen und Systemen. Ein effektives Abhängigkeitsmanagement trägt dazu bei, die Prozessvariabilität zu verringern und die Vorhersagbarkeit zu erhöhen.
Was genau beinhaltet Abhängigkeitsmanagement? In seiner grundlegendsten Form beinhaltet es:
- Identifizierung von Beziehungen zwischen Arbeitselementen
- Erkennung abhängiger Aktivitäten
- Visualisierung dieser Abhängigkeiten
- Mapping von Abhängigkeiten: Erstellung einer dynamischen, detaillierten Dokumentation der Abhängigkeiten zwischen Systemen, Ressourcen und Prozessen
- Nutzung der richtigen Technologien zur Integration des Abhängigkeitsmanagements in Planung und Durchführung von Workflows
Abhängigkeitstypen in Agile-Teams
Bei jedem Arbeitsprozess gibt es mehrere Abhängigkeitstypen. Um effektives Abhängigkeitsmanagement zu praktizieren, ist es hilfreich, zwischen ihnen zu unterscheiden.
Es gibt mehrere Faktoren, anhand derer Agile-Teams Abhängigkeiten kategorisieren können:
- intern oder extern
- obligatorisch oder diskretionär
- Charakter der Abhängigkeiten
Im Folgenden wird jeder dieser Faktoren anhand von Beispielen aus dem Hausbau veranschaulicht.
Interne versus externe Abhängigkeiten
Abhängigkeitstyp | Erklärung | Beispiel |
---|---|---|
Intern | Die Abhängigkeit liegt innerhalb der Kontrolle des Teams und beruht auf der Beziehung zwischen Arbeitsaktivitäten. | Ein Bauherr bittet den Trockenbauer seines Teams, mit den Arbeiten an den Innenwänden des Hauses zu beginnen. |
Extern | Die Abhängigkeit liegt außerhalb der Kontrolle des Teams und beruht auf der Beziehung zwischen Teams, Funktionen oder Unternehmen. | Ein Bauunternehmer muss auf eine Lieferung von Fliesen warten, bevor diese verlegt werden können. |
Obligatorische versus diskretionäre Abhängigkeiten
Abhängigkeitstyp | Erklärung | Beispiel |
---|---|---|
Obligatorisch | Beinhaltet harte Logik: Ein Schritt muss vor einem anderen Schritt getan werden. | Die Innenwände in einem neuen Haus müssen gebaut werden, bevor sie gestrichen werden können. |
Diskretionär | Beinhaltet weiche Logik: Es ist am besten, einen Schritt vor dem anderen zu tun, aber nicht unbedingt erforderlich. Diese Abhängigkeiten werden von Agile-Teams als Best Practices definiert. | Die Innenwände eines Hauses sollten gestrichen werden, bevor es mit Möbeln und Dekoration ausgestattet wird. |
Abhängigkeitsfunktion
Abhängigkeitstyp | Erklärung | Beispiel |
---|---|---|
Ende-Start | Aufgabe 2 kann erst beginnen, wenn Aufgabe 1 abgeschlossen ist. Dies ist der häufigste Abhängigkeitstyp. | Bevor mit dem Bau begonnen werden kann, muss Land gekauft werden. |
Start-Ende | Aufgabe 1 kann erst abgeschlossen werden, wenn Aufgabe 2 beginnt. Dies ist der seltenste Abhängigkeitstyp. | Um den Landkauf abzuschließen, muss eine Begutachtung und/oder Inspektion durchgeführt werden. |
Start-Start | Aufgabe 2 kann erst beginnen, wenn Aufgabe 1 begonnen wurde, aber Aufgabe 1 muss nicht abgeschlossen sein, bevor Aufgabe 2 beginnen kann. | Die Installation der Trockenbauwände muss beginnen, bevor mit dem Anstrich begonnen werden kann, aber es müssen nicht alle Wände installiert sein, damit der Anstrich beginnen kann. |
Ende-Ende | Aufgabe 2 kann erst abgeschlossen werden, wenn Aufgabe 1 abgeschlossen ist. Aufgaben mit Start-Start-Abhängigkeit können auch eine Ende-Ende-Abhängigkeit haben. | Die Installation der Trockenbauwände muss abgeschlossen sein, damit der Anstrich der Innenwände abgeschlossen werden kann. |
Der Abhängigkeitstyp beeinflusst, wie Agile-Teams ihn visualisieren, planen oder anderweitig handhaben. Auch ist es wichtig, den Grund der Abhängigkeit zu kennen, denn er kann sich darauf auswirken, wie die Abhängigkeit gemanagt wird.
Grund der Abhängigkeit
Grund der Abhängigkeit | Erklärung | Beispiel | Erwägungen |
---|---|---|---|
Anforderungen | Abhängigkeiten, die aufgrund der Anforderungen des Projekts („Epic“, „Feature“ oder „Story“) bestehen. | Ein neues Haus muss alle Bauvorschriften erfüllen. | Im Planungsprozess sollten Agile-Teams versuchen, diese Abhängigkeiten zu identifizieren, damit sie entsprechend planen können. |
Fachwissen oder Fachexperte | Abhängigkeiten, die bestehen, weil die Arbeit spezifisches Fachwissen erfordert und nicht ohne den Beitrag einer Person mit diesem Fachwissen durchgeführt werden kann. | Da ein Haus an einem steilen Hang gebaut wird, muss ein Bauingenieur hinzugezogen werden, damit das Haus allen Wetterbedingungen standhält. | Besitzt jemand im Team das Fachwissen, ist die Abhängigkeit intern und leichter zu managen. Ist sie extern und das Fachwissen oft erforderlich, sollte das Team eine entsprechende Verstärkung erwägen. |
Geschäftsprozesse | Ein Schritt muss vor dem anderen ausgeführt werden, um die geschäftlichen Anforderungen zu erfüllen. | Bevor der Bau des Hauses beginnt, muss ein Darlehen zur Finanzierung des Hausbaus aufgenommen werden. | Geschäftsabhängigkeiten müssen bei der Vorplanung berücksichtigt werden, um sicherzustellen, dass keine betrieblichen Abläufe übersehen werden. |
Technik | Abhängigkeiten, die aufgrund technischer Beschränkungen oder Zwänge bestehen. | Da das Haus an einem Hang gebaut wird, müssen andere Träger, Entwässerung und architektonische Verstärkungen verwendet werden. | Zeigen sich ggf. erst nach Arbeitsbeginn. Vorsichtshalber sollten alle Arbeiten mit technischen Anforderungen auch in den Vorplanungsprozess einbezogen werden. |
Was sind Mapping und Visualisierung von Abhängigkeiten und wie nutzen sie Agile-Teams?
Die Visualisierung von Abhängigkeiten ist der erste Schritt zu einem Abhängigkeitsmanagement: Agile-Teams müssen erkennen, wo Abhängigkeiten bestehen, um sie zu managen. Eine konsequente Visualisierung kann Teams helfen, vorgelagerte Engpässe wirksamer zu verhindern und nachgelagerte ungewollte Folgen zu vermeiden.
Mapping und Visualisierung von Abhängigkeiten helfen Agile-Teams, nachzuvollziehen:
- wie Arbeit zwischen Teams und Teams of Teams (Agile Release Trains oder ARTs) zusammenhängt und korreliert
- wo Abhängigkeiten bestehen
- wo Abhängigkeitsmuster bestehen
Mapping von Abhängigkeiten und Kanban
Agile-Teams, die bereits Kanban praktizieren, führen vielleicht schon ein Mapping oder zumindest eine Visualisierung der Abhängigkeiten durch: Einige Kanban-Tools ermöglichen Teams, über- und untergeordnete Beziehungen zwischen Karten zu erstellen, etwa um verwandte Arbeiten auf demselben Board oder über mehrere Boards verteilt zu visualisieren.
Wenn ihr Kanban-Tool ihnen erlaubt, Beziehungen zwischen Aufgaben durch Kartenverknüpfungen zu visualisieren, können Agile-Teams diese Verknüpfungen nutzen, um eine Karte aller Abhängigkeiten auf einem Board zu erstellen.
In AgilePlace können Agile-Teams etwa die Connections Map nutzen, um zu sehen, wie Karten auf dem Board zueinander in Beziehung stehen. Diese Art Abhängigkeits-Mapping wird manchmal auch als „red string visualization“ bezeichnet, da auf physischen Kanban-Boards oft ein roter Faden zur Visualisierung der Beziehungen verwendet wird.
Neben der Verknüpfung verwandter Karten gibt es weitere Möglichkeiten, Teams bei Visualisierung und Kommunikation auf einem Kanban-Board im Hinblick darauf zu unterstützen, wie Abhängigkeiten die Bereitstellung beeinflussen könnten.
Zum Beispiel können Kartensymbole verwendet werden, um externe Abhängigkeiten widerzuspiegeln. Ein „Blockiert“-Symbol kann zeigen, dass eine Karte wegen einer externen Abhängigkeit nicht weiterverschoben werden kann. Wenn ihr Kanban-Tool Agile-Teams erlaubt, einen Grund für die Kartenblockierung anzugeben, kann diese Funktion den Teams helfen, prompt über externe Abhängigkeiten zu kommunizieren.
Wenn bestimmte Arbeitstypen spezifisches Fachwissen erfordern, das nur eine Person im Team besitzt, hilft die Zuweisung von Karten an diese Person dem Team, ihre Kapazitäten nachzuvollziehen. Wenn das Teammitglied mehrere Karten in seiner Warteschlange hat, kann das Team dies in der Zeitleiste für neue Karten, die dem Board hinzugefügt werden, berücksichtigen.
Viele Agile-Teams verwenden Kartenzuweisungen, um nur den „Inhaber“ der Arbeit zu kennzeichnen, was ein unvollständiges Bild davon vermittelt, womit die Menschen Zeit verbringen. Die Zuordnung aller an einer Arbeit beteiligten Personen zu der Karte kann Teams zu einem genaueren Verständnis der Kapazitäten verhelfen, was auch bei der Erhöhung der Vorhersagbarkeit hilfreich sein kann.
Welche Vorteile bieten Mapping und Visualisierung von Abhängigkeiten?
Mehr Vorhersagbarkeit ist das Ziel jedes agilen Unternehmens, und dieses Ziel kann nicht ohne eine bessere Methode zur Identifizierung, Visualisierung und Verwaltung von Abhängigkeiten erreicht werden.
Obwohl Abhängigkeiten im Prinzip antiagil sind, ist es unrealistisch, sie vollständig eliminieren zu wollen. Einige Abhängigkeiten sind im Sinne der effektiven Zusammenarbeit, des Risikomanagements und aus technischen Gründen notwendig.
Im Bestreben nach mehr Agilität sollte das Ziel von Agile-Teams nicht darin bestehen, Abhängigkeiten vollständig zu eliminieren, sondern die Komplexität zu reduzieren, den Flow zu optimieren und besser vorhersagen zu können, wie sich Abhängigkeiten auf ihre Fähigkeit auswirken, Arbeit zu erledigen.
Verbindungen zwischen zusammenhängenden Aufgaben zu visualisieren und sich die Zeit zur Beurteilung der Auswirkungen dieser Abhängigkeiten zu nehmen, ist entscheidend, um Teams wie folgt zu mehr Agilität zu verhelfen:
- Verbesserung der Planung von Arbeitsabläufen zur Vermeidung von Hindernissen und zur Reduzierung von Prozessverschwendung
- Verbesserung des Arbeitsflusses, Verringerung von Kontextwechseln auf allen Ebenen
- Unterstützung von Teams bei der Festlegung realistischerer Erwartungen an interne und externe Stakeholder
- Reduzierung der Prozessvariabilität und somit Erhöhung der Vorhersagbarkeit
- Praktizierung einer effektiveren Kapazitätsplanung und Priorisierung innerhalb von sowie zwischen Teams und teamübergreifend
- Verbesserung von Zyklus- und Durchlaufzeiten
Abhängigkeitsmanagement muss nicht als unternehmensweite Initiative beginnen. Es kann mit einem einzigen Team beginnen, das sich verpflichtet, aktiv Abhängigkeiten zu identifizieren und zu managen, und kann dann ausgeweitet werden. Es ist eine organisatorische Kompetenz wie jede andere; je öfter Agile-Teams sie praktizieren, desto besser werden sie.