Software Product Mastering / Produkt & Projekt / Methoden
Deliberating Structures & Practices¶
Formale/informelle Strukturen zur Entscheidungsfindung.
Merkmale von Deliberating Structures: Formalisierte Abläufe, Beteiligung aller Parteien, Transparenz, zielorientierte Diskussionen.
Beispiele im agilen Umfeld:
Daily Stand-up: Tägliches Meeting zur Statusüberprüfung und Problemlösung. →
Sprint Retrospective: Reflexion und Verbesserung des Arbeitsprozesses.
Sprint Planning: Planung der nächsten Aufgaben im Sprint.
Backlog Refinement: Priorisierung und Klärung von Anforderungen.
Story Mapping Workshops: Visualisierung der User Journey und Priorisierung von Features.
Communities of Practice: Fachgruppen zur Wissens- und Problemlösung.
PI Planning (SAFe): Gemeinsame Planung mehrerer Teams.
Lean Coffee: Themenbasierte Diskussion ohne feste Agenda.
Estimation Meetings: Aufwandsschätzungen durch Planning Poker oder T-Shirt Sizing.
Decision-making Frameworks (z. B. Fist of Five): Schnelle Entscheidungsfindung durch Abstimmungsmechanismen.
Nochmal zum Nachlesen...
Beschreibung¶
Deliberating Structures, auch als „beratende Strukturen“ oder „strukturierte Entscheidungsfindung“ bezeichnet, beziehen sich auf formelle oder informelle Gruppen- oder Organisationsstrukturen, die dazu dienen, Diskussionen und Entscheidungsprozesse effizienter zu gestalten. Diese Strukturen bieten Rahmenbedingungen, um eine geregelte, offene und durchdachte Debatte zu ermöglichen, die zu konsensbasierten Entscheidungen führt.
Typische Merkmale von Deliberating Structures sind:
Formalisierte Abläufe: Es gibt klare Regeln oder Prozeduren, wie Diskussionen ablaufen, wer spricht, und wie Entscheidungen getroffen werden.
Beteiligung aller Parteien: Deliberierende Strukturen ermutigen die Teilnahme aller relevanten Akteure oder Interessengruppen, um sicherzustellen, dass alle Perspektiven berücksichtigt werden.
Transparenz und Rechenschaftspflicht: Entscheidungen werden auf eine Art und Weise getroffen, die nachvollziehbar und für die Beteiligten verständlich ist, was die Rechenschaftspflicht stärkt.
Zielorientierte Diskussionen: Der Fokus liegt darauf, fundierte, durchdachte und häufig konsensbasierte Entscheidungen zu treffen, die das beste Ergebnis für die gesamte Gruppe oder Organisation darstellen.
Diese Strukturen werden oft in verschiedenen Kontexten eingesetzt, z.B. in der Politik, in Unternehmen oder in gemeinnützigen Organisationen, um komplexe Entscheidungsfindungsprozesse zu steuern. Ein Beispiel wäre ein Rat oder eine Kommission, die über wichtige Fragen debattiert und Lösungen auf der Basis von Diskussion und Konsens entwickelt.
Deliberating structures im agilen Umfeld¶
Im agilen Umfeld gibt es verschiedene deliberating structures, die speziell dazu dienen, Teams bei der Entscheidungsfindung, Problemlösung und kontinuierlichen Verbesserung zu unterstützen. Hier sind einige Beispiele:
1. Daily Stand-up (Daily Scrum)¶
- Zweck: Ein kurzes tägliches Treffen, bei dem jedes Teammitglied berichtet, was es am vorherigen Tag getan hat, was es heute tun wird und ob es auf Hindernisse gestoßen ist.
- Deliberation: Diese Struktur hilft dem Team, tägliche Entscheidungen darüber zu treffen, wie die Arbeit voranschreitet, Hindernisse zu identifizieren und gegebenenfalls gemeinsam Lösungen zu finden.
2. Sprint Retrospective¶
- Zweck: Am Ende jedes Sprints treffen sich die Teammitglieder, um den letzten Sprint zu reflektieren, herauszufinden, was gut funktioniert hat, was verbessert werden kann und konkrete Verbesserungsmaßnahmen zu erarbeiten.
- Deliberation: Diese Struktur fördert eine offene Diskussion darüber, wie der Prozess optimiert werden kann. Das Team debattiert die besten Verbesserungsmaßnahmen und trifft gemeinsam Entscheidungen für den nächsten Sprint.
3. Sprint Planning¶
- Zweck: Dieses Meeting findet zu Beginn jedes Sprints statt, um zu planen, welche Arbeit das Team im kommenden Sprint leisten kann.
- Deliberation: Hier werden die Anforderungen und User Stories durch das gesamte Team diskutiert, um sicherzustellen, dass sie verstanden und richtig priorisiert werden. Entscheidungen darüber, wie viel Arbeit in einem Sprint erledigt werden kann, werden auf der Grundlage dieser Diskussionen getroffen.
4. Backlog Refinement (Backlog Grooming)¶
- Zweck: In regelmäßigen Abständen geht das Team durch das Product Backlog, um sicherzustellen, dass es priorisiert, verfeinert und verständlich ist.
- Deliberation: Dies ist eine Gelegenheit für das Team, die Anforderungen und User Stories detailliert zu besprechen und gegebenenfalls Anpassungen vorzunehmen. Entscheidungen werden über die Priorität und den Umfang zukünftiger Arbeiten getroffen.
5. Story Mapping Workshops¶
- Zweck: Ein Workshop, bei dem das Team die User Journey durch eine Anwendung visualisiert und die entsprechenden Features und Stories in eine sinnvolle Reihenfolge bringt.
- Deliberation: In dieser Struktur wird das Team dazu angeregt, gemeinsam darüber nachzudenken, wie die Benutzererfahrung priorisiert und die wichtigsten Funktionalitäten entwickelt werden sollen. Dies hilft, die Richtung des Produkts auf der Grundlage der Debatten zu bestimmen.
6. Communities of Practice (CoP)¶
- Zweck: Dies sind freiwillige, fachlich orientierte Gruppen, die sich regelmäßig treffen, um Wissen zu teilen, Best Practices zu diskutieren und gemeinsame Probleme zu lösen.
- Deliberation: Eine Community of Practice bietet einen Raum, in dem Experten in einem bestimmten Bereich zusammenkommen, um Themen zu besprechen und gemeinsam fundierte Entscheidungen über neue Techniken, Tools oder Prozesse zu treffen.
7. Product Increment (PI) Planning (bei SAFe - Scaled Agile Framework)¶
- Zweck: Ein großes Planungsmeeting, bei dem mehrere Teams, die an demselben Produkt arbeiten, gemeinsam die kommenden Arbeitszyklen planen.
- Deliberation: Diese deliberative Struktur stellt sicher, dass alle beteiligten Teams zusammenarbeiten, um die übergreifende Planung und Priorisierung durch Diskussion und Zusammenarbeit abzustimmen.
8. Lean Coffee¶
- Zweck: Eine Struktur, in der das Team ein Treffen organisiert, ohne eine vorgegebene Agenda, und währenddessen gemeinsam entscheidet, welche Themen priorisiert und besprochen werden.
- Deliberation: Die Gruppe diskutiert, welche Themen am dringendsten sind, stimmt gemeinsam ab, und dann findet eine zielgerichtete Diskussion statt, um fundierte Entscheidungen zu treffen.
9. Estimation Meetings (Planning Poker, T-Shirt Sizing)¶
- Zweck: Eine Methode, um die Komplexität und den Aufwand für User Stories zu schätzen.
- Deliberation: Das Team diskutiert die Anforderungen und nutzt strukturierte Abstimmungsmethoden, wie Planning Poker, um Entscheidungen über die Größe und den Aufwand einer Aufgabe zu treffen.
10. Decision-making Frameworks (z. B. Fist of Five)¶
- Zweck: Ein Tool, um schnell Entscheidungen zu treffen, bei dem Teammitglieder durch Handzeichen (1 bis 5 Finger) signalisieren, wie stark sie mit einer Entscheidung übereinstimmen.
- Deliberation: Diese Struktur hilft dem Team, schnell Feedback zu Entscheidungen zu sammeln und eine Debatte zu führen, falls keine ausreichende Einigkeit besteht.
Diese deliberating structures tragen dazu bei, dass im agilen Umfeld Entscheidungen durch den Input aller relevanten Teammitglieder getroffen werden, wodurch die Transparenz und Qualität der Entscheidungsfindung gefördert wird.
Deliberate practices und Phasen¶
Deliberating structures schaffen eine unterstützende Umgebung für Entscheidungen und Zusammenarbeit, während deliberate practices den Fokus auf die gezielte und kontinuierliche Verbesserung individueller Fähigkeiten legen.
Nochmal zum Nachlesen...
Der Unterschied zwischen "deliberating structures" und "deliberate practices" liegt in ihrem Ansatz und ihrer Anwendung:
1. Deliberating Structures¶
- Definition: "Deliberating structures" bezieht sich auf bewusst entworfene Strukturen oder Rahmenbedingungen, die den Entscheidungsfindungsprozess unterstützen. Diese Strukturen zielen darauf ab, durch klare Rahmenbedingungen, Prozesse und Regeln, die Kommunikation und Zusammenarbeit zu lenken und zu verbessern.
- Ziel: Diese Strukturen fördern den Austausch von Ideen, ein strukturiertes Vorgehen und die Erarbeitung durchdachter Lösungen innerhalb einer Gruppe oder Organisation.
- Anwendungsbeispiel: Ein Unternehmen könnte eine spezielle Meetingstruktur einführen, bei der klare Rollen verteilt und bestimmte Methoden (z.B. „Liberating Structures“) verwendet werden, um Diskussionen zu steuern und Konsens zu erreichen. Diese Strukturen sind darauf ausgelegt, individuelle Beiträge zu bündeln und den Entscheidungsprozess zu fördern.
2. Deliberate Practices¶
- Definition: "Deliberate practices" bezieht sich auf gezielte und bewusste Übungspraktiken, die kontinuierlich darauf abzielen, spezifische Fähigkeiten zu entwickeln oder zu verbessern. Sie zeichnen sich durch Wiederholung, gezieltes Feedback und kontinuierliche Anpassungen aus, um Expertise oder Meisterschaft in einem bestimmten Bereich zu erreichen.
- Ziel: Der Fokus liegt auf der individuellen Verbesserung durch gezielte, herausfordernde Aufgaben, die gezielt Schwächen adressieren. Diese Praktiken sind eng mit persönlicher Entwicklung und Lernen verbunden.
- Anwendungsbeispiel: Ein Musiker, der ein bestimmtes Stück immer wieder übt und sich dabei auf schwierige Passagen konzentriert, um sein Können zu verfeinern, oder ein Programmierer, der gezielt verschiedene Algorithmen übt, um seine Coding-Fähigkeiten zu verbessern.
1. Plan¶
- Backlog Refinement: Anforderungen verfeinern, Priorisieren, Schätzungen üben.
- Sprint Planning: Aufgaben auswählen, Sprintziele definieren, MVP bestimmen.
2. Code¶
- Daily Stand-ups: Fortschritt und Blocker besprechen, synchronisieren.
- Pair Programming & Code Reviews: Wissen teilen, Qualität sichern, Feedback üben.
3. Build¶
- Continuous Integration: Automatische Builds und Tests, Engpässe erkennen.
- Practice: CI-Pipeline-Optimierung und Rollback-Übungen.
4. Test¶
- Sprint Reviews: Tests zeigen, dass Anforderungen erfüllt sind.
- Deliberate Practice: TDD und Automatisierung zur Qualitätssteigerung.
5. Package¶
- Sprint Retrospective: Zusammenarbeit und Paketierungsprozess reflektieren.
- Practice: Test-Rollouts und Rollback-Übungen.
6. Deploy¶
- Release Planning: Deployment-Strategien besprechen (z. B. Blau-Grün).
- Practice: Chaos Engineering und Dark Launches für resilientes Deployment.
7. Operate¶
- Cross Team Daily: Plattformgesundheit und Incidents besprechen.
- Practice: Incident Management-Übungen, Major Incident-Simulationen.
8. Monitor¶
- Retrospective Meetings: Monitoring-Erkenntnisse analysieren und optimieren.
- Practice: Monitoring-Schulungen und Alarm-Management trainieren.
Kurzfassung:¶
Die Schritte des Entwicklungszyklus werden durch agile Meetings synchronisiert und durch deliberate practices kontinuierlich verbessert.
Nochmal zum Nachlesen...
Hier ist eine ausführlichere Erklärung, wie die Phasen „plan, code, build, test, package, deploy, operate, monitor“ mit agilen Meetings und deliberate practices integriert werden können:
1. Plan (Planen)¶
Backlog Refinement (Backlog-Pflege):
- In regelmäßigen Abständen trifft sich das Team, um den Produkt-Backlog zu prüfen und zu verfeinern. Anforderungen werden analysiert, priorisiert und in kleinere, umsetzbare Aufgaben aufgeteilt. Dies ist ein zentraler Schritt, um sicherzustellen, dass das Team sich auf wertvolle und umsetzbare Features konzentriert.
- Deliberate Practice: Teams können Übungen zum Schätzen und zur Priorisierung durchführen. Beispielsweise kann Planning Poker verwendet werden, um Story Points zu schätzen und so ein gemeinsames Verständnis über den Aufwand zu entwickeln.
Sprint Planning:
- Im Sprint Planning legt das Team fest, welche User Stories in den nächsten Sprint aufgenommen werden sollen. Diese Planung ist iterativ und kurzzyklisch, sodass das Team flexibel bleibt und sich an geänderte Anforderungen anpassen kann.
- Deliberate Practice: Üben von Sprint Plannings, z. B. durch Rollenspiele, hilft dem Team, effizient zu planen und Prioritäten zu setzen, indem es das "MVP" (Minimum Viable Product) für jeden Sprint identifiziert.
2. Code (Programmieren)¶
Daily Stand-ups:
- Das tägliche Stand-up bietet dem Team eine Gelegenheit, den aktuellen Fortschritt im Codieren zu besprechen, Hindernisse zu teilen und Unterstützung zu erhalten. Der Fokus liegt darauf, das Team synchronisiert und agil zu halten, damit alle wissen, woran die anderen arbeiten und welche Blocker vorhanden sind.
- Deliberate Practice: Ein kurzes, gezieltes Üben von Kommunikationsfähigkeiten und präzisen Status-Updates kann helfen, den Nutzen des Stand-ups zu maximieren und das Meeting effizient zu halten.
Pair Programming und Code Reviews:
- Pair Programming fördert den Wissenstransfer und die Qualitätssicherung. Zwei Entwickler arbeiten an einer Aufgabe und teilen dabei kontinuierlich Wissen und Ideen. Code Reviews dienen dazu, Fehler zu identifizieren und den Code zu verbessern, bevor er integriert wird.
- Deliberate Practice: Regelmäßige Code Reviews und gezielte Übungen in Pair Programming helfen, Standards zu etablieren und die Codequalität zu verbessern. Auch Rollenspiele, bei denen Teammitglieder Feedback geben und nehmen, fördern eine konstruktive Feedback-Kultur.
3. Build (Bauen)¶
- Continuous Integration (CI):
- CI sorgt dafür, dass der Code bei jeder Änderung automatisiert gebaut und getestet wird, sodass Fehler frühzeitig erkannt werden. Die CI-Pipeline ist eine wichtige Praxis, um Entwicklung und Qualitätssicherung eng zu verknüpfen.
- Deliberate Practice: Üben des CI-Pipeline-Setups und der Optimierung dieser Pipeline (z. B. durch pair programming oder das Durchführen von Workshops) hilft, die Effizienz zu steigern. Teams können gezielt Rollbacks üben, um Sicherheit in der Prozesssteuerung zu gewinnen.
4. Test (Testen)¶
Sprint Reviews:
- Tests sind essenziell, um sicherzustellen, dass die entwickelten Features den Anforderungen entsprechen. In Sprint Reviews werden diese Tests (vor allem Akzeptanztests) genutzt, um zu zeigen, dass die Arbeit des Sprints den Erwartungen entspricht.
- Deliberate Practice: Test-Driven Development (TDD) und Übungen zur Automatisierung von Tests sind gezielte deliberate practices, um sicherzustellen, dass der Code von Anfang an auf Qualität ausgerichtet ist und langfristig gewartet werden kann.
Explorative Tests:
- Zusätzlich zu automatisierten Tests können Teams explorative Tests verwenden, bei denen sich die Entwickler auf ungeplante und zufällige Nutzungsszenarien konzentrieren, um unvorhergesehene Schwachstellen zu entdecken.
- Deliberate Practice: Hier kann das Team durch gezielte explorative Testing-Sessions und Pairing neue Testansätze entwickeln und „out-of-the-box“-Denkweisen fördern.
5. Package (Paketieren)¶
- Sprint Retrospective:
- Beim Paketieren von Features kann die Retrospektive genutzt werden, um Feedback zu sammeln, vor allem hinsichtlich der Zusammenarbeit zwischen Entwicklung und Operations. Die Retrospektive bietet Raum, um über den Ablauf und mögliche Verbesserungen des Paketierungsprozesses zu sprechen.
- Deliberate Practice: Hier können Teams Übungen im Paketieren und in der Zusammenarbeit mit anderen Abteilungen durchführen. Dazu gehören gezielte Rollback-Übungen oder Test-Rollouts, um Fehlerfälle zu identifizieren und den Prozess zu verbessern.
6. Deploy (Bereitstellen)¶
- Release Planning:
- In agilen Projekten sind kleine, kontinuierliche Releases üblich. Release Planning Meetings legen fest, wann und wie neue Versionen an die Nutzer ausgeliefert werden. Hier können Teams ihre Deployment-Strategien besprechen und verbessern, z. B. durch Blau-Grün- oder Canary-Deployments.
- Deliberate Practice: Übungen wie "Chaos Engineering" (gezielte Einbringung von Fehlern) und „Dark Launches“ (Teilveröffentlichungen für Tests) helfen dem Team, den Deployment-Prozess zu testen und sicherzustellen, dass er stabil und fehlerresistent ist.
7. Operate (Betreiben)¶
- Cross Team Daily (wie z. B. von dir erwähnt):
- Ein tägliches, teamübergreifendes Meeting, in dem die Plattformgesundheit und Vorfälle besprochen werden, hilft dabei, die Stabilität der Anwendung aufrechtzuerhalten und gemeinsam an Problemen zu arbeiten. Dieses Meeting stellt sicher, dass keine kritischen Blocker übersehen werden und dass alle Teams ihre Betriebsaufgaben im Blick haben.
- Deliberate Practice: Übungen im Incident Management helfen dem Team, in Stresssituationen (z. B. bei Incidents) schneller und sicherer zu reagieren und die Serviceverfügbarkeit zu verbessern. Auch Simulationen von Major Incidents können helfen, den Umgang mit echten Zwischenfällen zu üben.
8. Monitor (Überwachen)¶
- Retrospective Meetings:
- Monitoring ermöglicht es, die Stabilität und Leistung der Anwendung zu überwachen und Schwachstellen frühzeitig zu erkennen. Diese Erkenntnisse können in der Retrospektive diskutiert werden, um zukünftige Verbesserungen einzuplanen.
- Deliberate Practice: Teams können sich gezielt in Monitoring-Techniken und der Interpretation von Dashboards und Logs schulen, um kritische Metriken zu überwachen und Alarmeinstellungen anzupassen. Durch das Üben von Szenarien kann das Team lernen, schnell und gezielt auf bestimmte Vorfälle zu reagieren.
Zusammenfassung¶
Die Integration dieser Schritte in agile Meetings und deliberate practices hilft dem Team, agile Prinzipien wie kontinuierliches Feedback, iteratives Arbeiten und kontinuierliche Verbesserung umzusetzen. Jedes Meeting, jeder Zyklus und jede deliberate practice dient dazu, die Fähigkeiten des Teams zu verfeinern und sicherzustellen, dass die entwickelten Produkte stabil, hochwertig und auf die Bedürfnisse der Nutzer ausgerichtet sind.