Freigeben über


Implementieren von Agile-Methoden, die sich skalieren lassen

Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022 | Azure DevOps Server 2020

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

  • Kürzen der Marktzeit und 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, möchten Sie Ihre Praktiken skalieren, um agil zu bleiben und sich ändernde Ziele zu erreichen. Berücksichtigen Sie dazu die beiden folgenden Leitprinzipien:

  • Wie sieht Erfolg aus – für Sie, Ihre Teams und Ihre Organisation? Was interessiert Sie am meisten: Pünktliche Lieferung? Produktqualität? Vorhersagbarkeit? Kundenzufriedenheit?
  • Kehren Sie zu den ersten Prinzipien zurück und kehren Sie zu den Prinzipien und gemeinsamen Werten zurück, die im Agile-Manifest aufgezählt wurden, wie von Ken Schwaber, einer der Gründer von Scrum, erwähnt:
    • „Werte und Prinzipien skalieren, aber Praktiken sind kontextsensitiv.“
    • "Behalten Sie die Werte bei, behalten Sie die Prinzipien bei und denken Sie für sich 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.
  • Sprintkommunikation: 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 ihrer vorherigen Sprintergebnisse und aktuelle Sprintpläne über digitale Kanäle wie Microsoft Teams, Slack oder E-Mail teilen.
  • Sprint-Demos und Videos: Erstellen Sie schnelle 2 bis 3-minütige Videos, die neue Features veranschaulichen, die das Team produziert. Teilen Sie Links zu solchen Videos in Sprintkommunikation oder Teamkanälen.
  • Präsentationsbesprechungen: Um andere Teams zu informieren und Feedback zur Entwicklung der Software einzuholen, präsentieren die Teams ihre abgeschlossene Arbeit. Führen Sie diese Treffen während des gesamten Projektlebenszyklus in regelmäßigen Abständen durch, und öffnen Sie sie für alle Interessierten.
  • Dashboards für Qualitätsmetriken: Um Einblicke in die Produktqualität zu unterstützen und die Aufrechterhaltung der Fehlerdisziplin zu fördern, geben Sie regelmäßig Qualitätsmetriken für die Organisation frei. Diese Metriken können aktive Fehler pro Featureteam, Fehlertrends, Testabdeckung und Fehler escaperaten umfassen.
  • Koordinationsbesprechungen und Zeremonien: Halten Sie Besprechungen ab, die Teams in regelmäßigen Abständen oder so oft wie nötig koordinieren, um sich überlappende Ziele, Abhängigkeiten und Risiken zu adressieren. Erwägen Sie die Implementierung von Scrum-of-Scrums- oder Program-Increment-(PI)-Planungssitzungen.

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.

  • Fortlaufende Feedbackschleifen: Integrieren Sie Kundenfeedbackmechanismen. Diese Schleifen können viele Formen annehmen:
    • Kunden-VoIP-Plattformen: Sorgen Sie dafür, dass Kunden Feedback geben, Ideen hinzufügen und über dedizierte Portale, Communityforen oder integrierte Feedbacksysteme für die nächste Generation abstimmen können.
    • Produktinternes Feedback: Implementieren Sie produktinterne Feedbackschaltflächen und Telemetrie, um Erkenntnisse über die Produkterfahrung und bestimmte Features zu sammeln.
    • Kundendemos und Benutzertests: Planen Sie regelmäßige Demos, die Feedback von Ihren Kunden anfordern, und führen Sie Benutzerfreundlichkeitstests durch, um Produkte der nächsten Generation zu gestalten und Sie auf dem Laufenden zu halten, um Anwendungen zu erstellen, die Ihre Kunden nutzen möchten.
  • Early Adopter- und Beta-Programme: Entwickeln Sie Programme mit der Idee, dass alle Teams irgendwann teilnehmen möchten. Early Adopters erhalten Zugriff auf frühe Versionen von Arbeitssoftware und geben wertvolles Feedback. Häufig funktionieren diese Programme, indem ausgewählte Featurekennzeichnungen für eine Early Adopter-Liste aktiviert werden.
  • Datengesteuerte Entscheidungen: Finden Sie Möglichkeiten, Ihr Produkt zu instrumentieren, um nützliche Daten zu erhalten und verschiedene Hypothesen zu testen. Fördern Sie eine experimentfreundliche Kultur, die lern- und nachweisbasierte Entscheidungsfindung feiert.

Verbessern der Projekttransparenz

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

  • Teamstruktur: Unabhängig davon, wie groß Ihre Organisation wird, ist die Strukturierung Ihrer Organisation um kleine Teams von 6 bis 9 Personen ein effektiver Weg zur Skalierung. Schaffen Sie vertikale, autonome Featureteams, die unter Portfolioverwaltungsbereichen gruppiert sind.
  • Projektstrukturplan: Das Aufteilen großer Ziele, Features oder Anforderungen in kleinere bleibt ein Grundbestandteil 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 und Dashboards: Verwenden Sie Ihre Online-Tracking-Tools, um Arbeit zu aggregieren und Wissen in teamsübergreifend zu gewinnen. Erstellen Sie Echtzeitdashboards, um Fortschritts-, Trends und wichtige Leistungsindikatoren mithilfe von Azure DevOps Analytics-Diensten anzuzeigen.
  • Erfahrungs- und Entwurfsüberprüfungen: Halten Sie diese Besprechungen ab, bevor die Entwicklung mit einem Feature beginnt, um die Führung in Szenarien und Prioritäten zu schulen, Feedback zu sammeln, Erwartungen festzulegen und teamübergreifende Probleme mit dem Feature anzuzeigen.

Fördern einer produktiven Belegschaft

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

  • Eingebettete Führung und psychologische Sicherheit: Ermöglichen Sie Teams und Führungskräften innerhalb der Organisation, sich so weit wie möglich selbst zu organisieren und selbst zu verwalten. Die Teamautonomie erhöht die Flexibilität der Organisation und die Effektivität des Teams. Stellen Sie sicher, dass Teams das unternehmenseigene Sponsoring benötigen, um erfolgreich zu sein und Umgebungen zu schaffen, in denen Teammitglieder sicher sind, Ideen und Bedenken auszudrücken.
  • Tägliche Stand-ups: Scrum-Besprechungen helfen Teams dabei, sich darauf zu konzentrieren, was sie täglich tun müssen, um ihre Sprintverpflichtungen optimal zu erfüllen. Wenn Organisationen wachsen, sollten sie erwägen, diese Besprechungen zu staffeln, damit bei Bedarf teamübergreifende Teilnahme stattfinden kann.
  • Scrum von Scrums: Vertreter verschiedener agiler Teams treffen sich regelmäßig, um abgeschlossene Arbeiten, die nächsten Schritte sowie auftretende Probleme oder Blockaden in ihren Teams zu berichten.
  • Teamkommunikation und Wissensaustausch: Bereitstellen und Ermutigen von Teams, ihre Praktiken und Anleitungen über Unternehmensnetzwerke zu teilen. Allgemeine Tools umfassen Teamwikis, Microsoft Teams, Confluence oder Azure DevOps-Wikis.
  • Zusammenarbeit und Codequalität: Fördern Sie informelle Team-zu-Team-Kommunikation und Zusammenarbeit. Institutionalisieren Sie Praktiken wie Codeüberprüfungen, Designüberprüfungen, Paarprogrammierung und Mob-Programmierung. Diese Praktiken erhöhen nicht nur die Teamzusammenarbeit, sondern helfen dabei, individuelle und allgemeine Unternehmenskompetenz zu entwickeln.

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:

  • Retrospektive: Stellen Sie Fragen wie: "Was hat gut geklappt?", "Was sollten wir anders machen?", und "Was sollten wir nicht tun?", um Teams dabei zu helfen, sich darüber zu informieren, wie sie ihre Prozesse und Praktiken verbessern können. Retrospektiven helfen Teams dabei, zu verdeutlichen, was gut funktioniert und welche Verbesserung erforderlich ist. Sie können Retrospektive jederzeit und überall durchführen. Die Institutionalisierung bestimmter Retrospektiven in regelmäßigen Abständen trägt jedoch dazu bei, kontinuierliche Verbesserungspraktiken zu etablieren. Beispiel:

    • Sprint-Retrospektive helfen Teams dabei, Bereiche zu identifizieren, die regelmäßig verbessert werden sollen.

    • Release-Retrospektiven helfen Organisationen, Bereiche zu identifizieren, um die Kommunikation und interne Praktiken zu verbessern und Verbesserungen für die nächste Freigabe zu fördern.

    • Betriebsüberprüfungen: In der Regel monatlich gehalten und enthalten Vertreter aus einem gesamten Wertstrom. 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.

  • Verbesserungs-Tracking-Board: Gute Ideen zur Verbesserung von Prozessen können jederzeit von jedem entstehen. Das Erfassen dieser Ideen, um unmittelbar darüber zu diskutieren und zu entscheiden, wie man schnell darauf reagieren kann, unterstützt die Bemühungen zur Prozessverbesserung.

    Ein Whiteboard bietet ein einfaches und visuelles Mittel zum Erfassen von Ideen. Darüber hinaus können Sie ein Verbesserungsverfolgungsteam erstellen und Ideen erfassen, die Sie auf einem elektronischen Board nachverfolgen.

  • Teilen und Lernen institutionalisieren: Das Teilen bewährter Methoden und die Kommunikation von Ideen hilft allen Teams innerhalb einer Organisation zu wachsen und zu verbessern. Die Entwicklung einer Lernkultur unterstützt diese und andere kontinuierliche Verbesserungsmaßnahmen. Berücksichtigen Sie diese Ideen:

    • Interne Wikis und Wissensdatenbanken

    • Praxisgemeinschaften und Gilden

    • Hackathon Wochen oder Innovationszeit

    • Interne DevOps- und Agile-Coachingteams zur Unterstützung von Teams, die diese Praktiken einführen

    • Regelmäßige Mittags- und Lernsitzungen

    • Interne Konferenzen und Tech-Gespräche

      Das Kulturspiel bietet eine gute Ressource für Agile-Manager, um Teams bei der Einführung von Agile-Methoden und dem Teilen bewährter Methoden zu unterstützen.

  • Praxisgemeinschaften: Unterstützung interner gängiger Disziplinen (z. B. Site-Zuverlässigkeitsingenieure, Softwarearchitekten, UX-Designer, Data Scientists und Sicherheitsspezialisten)

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

Da die Menge an Software, Features und Komplexität zunimmt, müssen Sie Praktiken einführen, die Ihnen dabei helfen, Verbrauchslösungen zu produzieren.

  • Featurekennzeichnungen und progressive Zustellung: Verwenden Sie Featurekennzeichnungen, um den Zugriff auf verschiedene Features sicher zu aktivieren oder zu deaktivieren. Unterstützen Sie das Aktivieren von Features für Early Adopters, um Arbeitsfeedback zu erhalten. Setzen Sie progressive Bereitstellungsmuster wie Canary-Versionen und Blue-Green-Bereitstellungen um.
  • Veröffentlichungszüge und kontinuierliche Lieferung: Stellen Sie eine andere Art von Frequenz bereit, um eine oder mehrere Features zu liefern. Featureteams verstehen den vorab geplanten Zeitplan des Pushouts neuer Features und planen entsprechend. Veröffentlichungszüge können dem gleichen Sprintrhythmus entsprechen, der für die Organisation eingerichtet wurde, oder in einem anderen Rhythmus erfolgen. Unter Scaled Agile Framework erfahren Sie, wie Sie Sprints einrichten und Züge freigeben.
  • Kontinuierliche Integration und kontinuierliche Bereitstellung (CI/CD): Übernehmen Sie automatisierte Prozesse, die manuelle Arbeit beseitigen und den Softwarefluss durch Test-, Build- und Bereitstellungszyklen automatisieren. Implementieren Sie umfassende Teststrategien, einschließlich Komponententests, Integrationstests und automatisierte Akzeptanztests.
  • Innere Quelle und offene Entwicklung: Bringen Sie den Wert und die Ethos, die in der Open Source Software-Community entwickelt wurden, in Ihre internen Entwicklungsteams. Fördern Sie die gemeinsame Nutzung von Code, Dokumentation und teamübergreifende Methoden und Praktiken der gemeinsamen Entwicklung.
  • Cloudnative Methoden: Nutzen Sie Containerisierung, Microservices-Architekturen und cloudeigene Bereitstellungsmuster, um Skalierbarkeit und Wartung zu verbessern.

Moderne Praktiken und Überlegungen

Berücksichtigen Sie diese anderen modernen Ansätze, da sich agile Praktiken weiterentwickelt haben:

  • DevSecOps-Integration: Integrieren Sie Sicherheitspraktiken während des gesamten Entwicklungslebenszyklus, anstatt die Sicherheit als separates Anliegen zu behandeln.
  • Site Reliability Engineering (SRE): Übernehmen Sie SRE-Methoden, um die Zuverlässigkeit des Systems zu verbessern und den Betriebsaufwand zu reduzieren.
  • Wertstromzuordnung: Zuordnen und Optimieren des Wertflusses von Idee zu Kundenzustellung.
  • OKRs (Ziele und Wichtige Ergebnisse): Verwenden Sie OKRs, um Teams an messbaren Ergebnissen anstatt an Ausgaben auszurichten.
  • Design-Denken: Integrieren von menschlichen zentrierten Designansätzen, um die Kundenbedürfnisse besser zu verstehen.

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 sind, desto geringer ist die Wahrscheinlichkeit, dass diese Schätzungen einen Wert liefern. Wenn Projekte wachsen, können Risiken und unvorhergesehene Probleme und Hindernisse entstehen, wodurch viele Schätzungen ungültig werden.
  • Geschwindigkeit als teamübergreifende Metrik: Während die Teamgeschwindigkeit eine nützliche Metrik bereitstellen kann, um einblicke zu können, wie viel Arbeit jedes Teams während eines Sprintzyklus abschließen kann, können Sie keine Teamgeschwindigkeiten hinzufügen, um aussagekräftige oder nützliche Metriken zu erzielen. Außerdem ist es problematisch, die von vielen Teams gewonnene Geschwindigkeit zu verwenden, um zuverlässig Langzeitprognosen zu erstellen. Teams können variieren, wie sie ihre Arbeit schätzen, und diese Variationen steigen im Laufe der Zeit.
  • Vorgeschriebene Top-Down-Lösungen: Eine Größe passt nicht allen, und eine Lösung passt in der Regel nicht für alle Teams. Die Unterstützung der Teamautonomie bedeutet, dass Teams ihre eigenen Lösungen finden und gleichzeitig die erforderlichen Frameworks und Support bereitstellen können.
  • Cargo Kult Agile: Einfach agile Zeremonien zu übernehmen, ohne ihren Zweck zu verstehen oder sie an Ihren Kontext anzupassen, führt oft zu unwirksamen Implementierungen.