Implementieren von Agile-Methoden, die sich skalieren lassen

Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2019

Unternehmensorganisationen wenden sich Agile-Methoden aus vielen Gründen zu. Zu den vorrangigen Gründen zählen:

  • Verkürzen der Time-to-Market, Beschleunigen der Produktlieferung
  • Verbessern der Effektivität der Organisation bei der Verwaltung sich ändernder Prioritäten
  • Verbessern der Vorhersagbarkeit von Softwarequalität und -lieferung
  • Verbessern der Projekttransparenz und Reduzieren des Projektrisikos

Wenn Ihre Organisation wächst, sollten Sie Ihre Methoden skalieren, um agil zu bleiben und die sich ändernden Ziele zu erreichen. Berücksichtigen Sie dazu die beiden folgenden Leitprinzipien:

  • Wie sieht Erfolg aus – für Sie, Ihre Teams und Ihre Organisation? Was hat das höchste Gewicht: Pünktliche Lieferung? Produktqualität? Vorhersagbarkeit? Kundenzufriedenheit?
  • Rückkehr zu den ersten Prinzipien – kehren Sie zu den Prinzipien und gemeinsamen Werten zurück, die im Agile-Manifest aufgeführt sind, wie von Ken Schwaber, einem der Gründer von Scrum, dargelegt:
    • „Werte und Prinzipien skalieren, aber Praktiken sind kontextsensitiv.“
    • „Behalten Sie die Werte, behalten Sie die Prinzipien, denken Sie selbst. Eine Kernprämisse von Agile ist, dass die Menschen, die die Arbeit leisten, auch die sind, die den besten Weg finden können, sie zu verrichten.“

Erstellen von Rhythmus und Fluss

Indem Sie einen gemeinsamen Rhythmus und einen festen Satz regelmäßiger Kommunikation einführen, schaffen Sie einen konstanten Aktivitätsfluss in der gesamten Organisation. Zu den Praktiken, die zur Schaffung von Rhythmus und Fluss in größeren Organisationen beitragen, gehören:

  • Gemeinsamer Rhythmus: Regelmäßige Sprints und Releases bestimmen den Rhythmus des Geschäfts. Alle Teams in einem gemeinsamen Rhythmus arbeiten zu lassen, hilft bei allen Aktivitäten zu Koordination und Zusammenarbeit.
  • Sprint-E-Mails: Um die Organisation und alle Teams über den Fortschritt und die Pläne von Featureteams auf dem Laufenden zu halten, kann jedes Featureteam eine Zusammenfassung seiner bisherigen Sprintergebnisse und aktuellen Sprintpläne per E-Mail senden.
  • Sprint-Demos: Ein kurzes Video von 2 bis 3 Minuten, das ein neues Feature veranschaulicht, das das Team produziert hat. Links zu solchen Videos können in Sprint-E-Mails eingefügt werden.
  • Präsentationsbesprechungen: Um andere Teams zu informieren und Feedback zu Software in der Entwicklung einzuholen, stellen Teams die von ihnen geleistete Arbeit vor. Führen Sie diese Treffen während des gesamten Projektlebenszyklus in regelmäßigen Abständen durch, und öffnen Sie sie für alle Interessierten.
  • E-Mails mit Fehlerzusammenfassungen: Zum Unterstützen von Erkenntnissen zur Produktqualität und Fördern einer ständigen Fehlerdisziplin teilen Sie regelmäßig Qualitätsmetriken mit der Organisation. Zu diesen Metriken können die aktiven Fehler pro Featureteam, Fehlertrends und Fehler pro Techniker gehören.
  • Koordinationsbesprechungen: Halten Sie Besprechungen ab, die Teams entweder in regelmäßigen Abständen oder so oft wie nötig koordinieren, um sich überschneidende Ziele, Abhängigkeiten und Risiken anzugehen.

Interaktion mit Kunden

Die Einbindung der Kunden während des gesamten Produktlebenszyklus ist ein primäres Agile-Prinzip. Befähigen Sie jedes Team, über die Featuresets, die im gehören, direkt mit den Kunden in Interaktion zu treten.

  • Kontinuierliches Feedback: Integrieren Sie Kundenfeedbackschleifen. Diese Schleifen können viele Formen annehmen:
    • Kundenstimme: Machen Sie es Kunden leicht, Feedback zu geben, Ideen beizusteuern und über Features der nächsten Generation abzustimmen. Feedback erfolgt oftmals über eine dedizierte Website.
    • Produktfeedback: Feedbackschaltflächen im Produkt sind eine weitere Möglichkeit, Feedback zum Produkterlebnis oder bestimmten Features einzuholen.
    • Kundendemos: Regelmäßig stattfindende Demos mit der Bitte um Kundenfeedback können Ihnen dabei helfen, die nächste Produktgeneration zu gestalten, und Sie auf dem richtigen Kurs halten, damit Sie Anwendungen entwickeln, die Ihre Kunden nutzen möchten.
  • Early Adopter-Programme: Solche Programme sollten mit der Idee entwickelt werden, dass möglicherweise alle Teams an einem bestimmten Punkt teilnehmen möchten. Early Adopters erhalten Zugriff auf frühe Versionen von funktionierender Software, zu der sie dann Feedback geben können. Häufig funktionieren diese Programme durch Aktivieren ausgewählter Featureflags für eine Liste der Early Adopter.
  • Datengesteuerte Entscheidungen: Finden Sie Möglichkeiten, Ihr Produkt zu instrumentieren, um nützliche Daten zu erhalten, mit denen sich verschiedene Hypothesen testen lassen. Helfen Sie, eine experimentierfreudige Kultur zu fördern, die Lernen als Errungenschaft sieht.

Verbessern der Projekttransparenz

Je mehr Erkenntnisse Sie und Ihre Teams über das Ziel, die Vision und den Fortschritt der geleisteten Arbeit haben, desto besser können Sie Risiken reduzieren und Abhängigkeiten in den Griff bekommen.

  • Teamstruktur: Unabhängig davon, wie groß Ihre Organisation wird, strukturieren Sie Ihre Organisation um kleine Teams mit 6 bis 9 Skalen. Schaffen Sie vertikale, autonome Featureteams, die unter Portfolioverwaltungsbereichen gruppiert sind.
  • Struktur der Arbeitsaufteilung: Das Aufteilen großer Ziele, Features oder Anforderungen in kleinere bleibt eine Kernkompetenz des Projektmanagements. Durch die Aufteilung von Arbeit in Aufgaben ähnlicher Größe können Teams bessere Einschätzungen vornehmen und Risiken und Abhängigkeiten besser erkennen.
  • Konsolidierte Ansichten: Verwenden Sie Ihre Onlinetools zur Nachverfolgung zum Aggregieren der Arbeit, um teamübergreifend Wissen zu gewinnen. Erstellen Sie Dashboards, um Fortschritte und Trends anzuzeigen.
  • Erfahrungsüberprüfungen: Diese Besprechungen, die vor Beginn der Entwicklung für ein Feature abgehalten werden, werden verwendet, um Führungskräfte in Szenarien und Prioritäten zu schulen, Feedback zu sammeln, Erwartungen festzulegen und teamübergreifende Probleme im Zusammenhang mit dem Feature aufzudecken.

Fördern einer produktiven Belegschaft

Zu den spezifischen Agile-Praktiken, die sich gut skalieren lassen und zu glücklicheren, engagierten und produktiven Mitarbeitern führen, gehören:

  • Integrierte Führung: Ermöglichen Sie Teams und Führungskräften innerhalb der Organisation, sich so weit wie möglich selbst zu organisieren und selbst zu verwalten. Teamautonomie erhöht die Effektivität von Agilitätsteams in der Organisation. Stellen Sie sicher, dass Teams über das erforderliche Unternehmenssponsoring verfügen, um erfolgreich zu sein.
  • Tägliche Stand-ups: Oder Scrum-Besprechungen helfen Teams dabei, sich auf das zu konzentrieren, was sie Tag für Tag leisten müssen, um ihre Fähigkeit zu maximieren, ihre Sprintverpflichtungen zu erfüllen. Wenn Organisationen wachsen, sollten sie erwägen, diese Besprechungen zu staffeln, damit bei Bedarf teamübergreifende Teilnahme stattfinden kann.
  • Scrum of Scrums: Tägliche Stand-Ups von Mitgliedern aus verschiedenen Agile-Teams, um abgeschlossene Arbeiten, nächste Schritte und Probleme oder Blockierungen in ihren jeweiligen Teams zu melden.
  • Teamkommunikation: Ermutigen von Teams zum Austausch ihrer Praktiken und Anleitungen, auf die sie und andere Teams über das Unternehmensnetzwerk zugreifen können. Zu den gängigen Tools, die für diesen Zweck verwendet werden, gehören Teamwikis, OneNotes oder Markdown-Websites.
  • Zusammenarbeit: Fördern Sie informelle Team-zu-Team-Kommunikation und Zusammenarbeit innerhalb der Teams. Institutionalisierende Praktiken wie Code Reviews, Design Reviews und Spezifikationsüberprüfungen erhöhen nicht nur die Zusammenarbeit im Team, sondern tragen auch zur Entwicklung der individuellen und allgemeinen Unternehmenskompetenz bei.

Verbessern der Unternehmenskultur

Sie verbessern die Effektivität der Organisation, indem Sie sich der Kultur verpflichten, die Sie schaffen möchten. Änderungen der Kultur treten ein, wenn Einzelpersonen, Teams und Organisationen eine oder mehrere Methoden zur kontinuierlichen Verbesserung anwenden. Zu den verschiedenen skalierbaren Agile-Methoden gehören:

  • Retrospektiven: Fragen wie „Was ist gut gelaufen?“, „Was sollten wir anders machen?“ und „Was sollten wir nicht mehr tun?“ helfen Teams dabei, über die Verbesserung ihrer Prozesse und Praktiken nachzudenken. Retrospektiven helfen Teams dabei, ans Licht zu bringen, was gut funktioniert und was verbessert werden muss. Retrospektiven können jederzeit und überall durchgeführt werden. Die Institutionalisierung bestimmter Retrospektiven im regelmäßigen Rhythmus trägt jedoch zur Institutionalisierung kontinuierlicher Praktiken zur Verbesserung bei. Beispiel:

    • Sprint-Retrospektiven können Teams helfen, in einem regelmäßigen Rhythmus Bereiche zu identifizieren, die verbessert werden können.

    • Releaseretrospektiven können Organisationen dabei unterstützen, Bereiche zu identifizieren, in denen die Kommunikation und interne Methoden verbessert werden können, und Verbesserungen für das nächste Release voranzutreiben.

    • Betriebsüberprüfungen: Werden in der Regel monatlich durchgeführt und beziehen Vertreter eines gesamten Wertstroms ein. Durch Abdecken eines Portfolios von Projekten und anderen Initiativen und Nutzen objektiver, quantitativer Daten können Sie diese Retrospektiven so ausgestalten, dass Diskussionen über die Dynamik, die sich auf die Leistung zwischen den Teams auswirkt, angeregt werden.

      Im Ressourcenwiki für Agile-Retrospektiven finden Sie Ideen, Tipps und Tools für die Planung und Durchführung von Retrospektiven. Siehe auch die Marketplace-Retrospektive-Erweiterung.

  • Tracking-Board für Verbesserungen: Gute Ideen zur Verbesserung von Prozessen können jederzeit und von jedem kommen. Diese Ideen zu erfassen, um zu diskutieren und zu entscheiden, wie eine schnelle Reaktion darauf erfolgen kann, ist ein Schlüssel bei der Unterstützung der Anstrengungen zur Prozessverbesserung.

    Ein Whiteboard bietet alle einfachen und visuellen Mittel zum Festhalten von Ideen. Außerdem können Sie ein Team zum Nachverfolgen von Verbesserungen erstellen und Ideen erfassen, die Sie auf einem elektronischen Kanban-Board nachverfolgen.

  • Institutionalisieren des Teilens: Das Teilen bewährter Methoden und die Kommunikation von Ideen helfen allen Teams innerhalb einer Organisation, zu wachsen und sich zu verbessern. Die Entwicklung einer Kultur des Lernens ist entscheidend bei der Unterstützung dieser und anderer Aktivitäten zur kontinuierlichen Verbesserung. Einige bedenkenswerte Ideen:

    • Interne Wikis

    • Interne Verteilerlisten

    • Hackathonwochen oder 10 % Hackzeit

    • Internes Agile-Supportteam zur Unterstützung von Teams, die Agile-Methoden anwenden

      The Culture Game bietet Agile-Managern eine gute Ressource, um Teams bei der Einführung von Agile zu unterstützen und bewährte Methoden auszutauschen.

  • Übungsgemeinschaften: Unterstützen Sie gemeinsame interne Fachrichtungen (z. B. DBAs, SW-Architektur, UX-Design)

Funktionierende Software

„Liefern Sie funktionierende Software häufig (alle paar Wochen oder Monate), unter Bevorzugung der kürzeren Zeitskala.“
„Funktionierende Software ist das primäre Maß für den Fortschritt.“
- Agile-Manifest

In dem Maß, in dem die Menge an Software, Features und Komplexität zunimmt, müssen Sie Praktiken einführen, die Ihnen bei der Herstellung von Verbrauchslösungen helfen.

  • Featureflags: Verwenden Sie Featureflags, um den Zugriff auf verschiedene Features zu aktivieren oder zu deaktivieren. Bieten Sie Unterstützung zum Aktivieren von Features für Early Adopters, um Arbeitsfeedback zu erhalten.
  • Release Trains: Bieten Sie einen anderen Rhythmus, um ein oder mehrere Features zu liefern. Featureteams kennen den vorgeplanten Zeitplan für die Veröffentlichung neuer Features und planen richtig. Release Trains können demselben Sprintrhythmus entsprechen, der für die Organisation festgelegt wurde, oder einen anderen Rhythmus aufweisen. Informationen zum Einrichten von Sprints und Release Trains finden Sie unter Scaled Agile Framework.
  • Continuous Integration: Führen Sie Prozesse ein, die manuelle Arbeit vermeiden, und automatisieren Sie stattdessen den Softwarefluss durch den Test-, Build- und Bereitstellungszyklus.
  • Internes Open Source: Bringen Sie die Werte und das Ethos, die in der Open-Source-Software-Community entwickelt wurden, in Ihre internen Entwicklungsteams ein.

Zusammen mit den oben genannten Methoden finden Sie weitere Anleitungen zum Skalieren Ihrer Agile-Tools in den folgenden Artikeln:

Branchenressourcen

Praktiken, die sich nicht skalieren lassen

  • Schätzung großer Initiativen: Ein Teil der Wasserfall-Projektmethoden beinhaltete die Schätzung von Ressourcen und Zeitplänen. Je größer die Initiativen, mit desto geringerer Wahrscheinlichkeit hatten diese Schätzungen irgendeinen Wert. Wenn Projekte wachsen, können Risiken und unvorhergesehene Probleme und Hindernisse entstehen, wodurch viele Schätzungen ungültig werden.
  • Geschwindigkeit: Die Teamgeschwindigkeit kann zwar eine nützliche Metrik sein, um Erkenntnisse darüber zu erhalten, wie viel Arbeit jedes Team während eines Sprintzyklus erledigen kann, Sie können Teamgeschwindigkeiten aber nicht addieren, um aussagekräftige oder nützliche Metriken zu erhalten. Die Verwendung der aus vielen Teams gewonnenen Geschwindigkeit für zuverlässige Vorhersagen mit langer Reichweite ist ebenfalls problematisch. Teams unterscheiden sich in der Art, wie sie ihre Arbeit einschätzen, und diese Abweichungen nehmen im Lauf der Zeit zu.
  • Vorgeschriebene Top-Down-Lösungen: Eine Größe passt nicht allen, und eine Lösung passt in der Regel nicht für alle Teams. Unterstützung der Teamautonomie bedeutet, Teams ihre eigenen Lösungen finden zu lassen.