Ich wurde zum Scrum Master eines neu gegründeten Teams, das für die Erstellung einer Software UND die Wartung anderer bereitgestellter Anwendungen verantwortlich ist. Grundsätzlich hat jedes Teammitglied Entwicklungs- und Betriebsaufgaben.
Ich habe in den letzten Wochen beobachtet, wie sie funktionieren, und festgestellt, dass das Team Schwierigkeiten hat, diese Aufgaben zu koordinieren. Wenn sich ein Entwickler auf das Codieren konzentriert, wird er unterbrochen, um ein in der Produktion auftretendes Problem zu beheben, und es fällt ihm schwer, sich wieder auf die vorherige Aufgabe zu konzentrieren.
Ich habe versucht,% der Entwicklerzeit für die operative Arbeit bereitzustellen, aber anscheinend ist das Problem dadurch nicht behoben. Ich bin daran interessiert, von Scrum-Meistern zu hören, die zuvor auf diese Situation gestoßen sind. Wie haben Sie das geschafft und was sind Ihre Empfehlungen?
quelle
Antworten:
Dieses Problem ist so alt wie Scrum. Es gibt eine Lösung, aber Sie werden es nicht mögen.
Wenn Sie Ihre Entwickler in mehr als ein Scrum einbinden, zwei separate Backlogs haben oder nur einen Prozentsatz ihrer Zeit dem Sprint zuweisen, wirkt sich dies gegen das aus, was Scrum erreichen möchte, dh einen konsistenten Fluss abgeschlossener Aufgaben.
Wenn Sie diese Art von Dingen ausprobieren, kehren Sie im Grunde zu den Entwicklungsmethoden "Chaos" oder "JFDI" mit all ihren damit verbundenen Problemen zurück, z
Natürlich lautet die übliche Antwort auf diesen Rat: "Aber das kann ich nicht! Das Unternehmen braucht diese Produktionsfehler, um sie so schnell wie möglich zu beheben!"
Das stimmt aber nicht wirklich.
Wenn Sie wirklich so viele tatsächliche Fehler haben, die das Geschäft in diesem Ausmaß beeinträchtigen, müssen Sie professionell werden und Ihre Tests verbessern. Arbeiten Sie einfach an Fehlern und automatisierten Tests, bis Sie alle behoben haben. Stellen Sie ein QA-Team ein und testen Sie alle Neuerscheinungen.
Was jedoch wahrscheinlicher ist, ist einer der folgenden:
Die Fehler sind Betriebsprobleme, unzureichender Speicherplatz, kein DR, keine Backups, kein Failover usw. Bitten Sie ein OPS-Team.
Die Bugs sind Benutzer, die nicht verstehen, wie das System funktionieren soll. "Das ist passiert! Ist es ein Bug?". Holen Sie sich einen Helpdesk und schulen Sie Ihre Benutzer, schreiben Sie Dokumentation.
Angst vor Rollback. Sie haben eine neue Funktion gestartet und sie hat etwas kaputtgemacht. Versuchen Sie nicht, eine Lösung zu finden. Machen Sie einen Rollback auf die vorherige Version und setzen Sie die Fehler in den Rückstand.
quelle
Ich versuche hier nur über den Tellerrand hinaus zu denken.
Da es möglicherweise nicht möglich ist, den Produktbesitzer dazu zu bringen, die Dinge auf Ihre Weise zu sehen. Es kann immer noch kritische Fehler geben, die nicht lange auf sich warten lassen. Treffen Sie sich mit Kunden, bei denen Entwicklerunterstützung benötigt wird, usw. Sie müssen einen Entwickler für eine Weile aus dem Sprint nehmen.
Warum nicht versuchen, dies zu antizipieren und es zu Ihrem Vorteil zu nutzen?
Sie benötigen ein Team von 5+, um vielleicht realistisch zu sein.
Aber warum nicht bei jedem Sprint einen Entwickler ausschalten (zwischen den Entwicklern wechseln, jeder ist an der Reihe)?
Da es höchstwahrscheinlich nicht genügend Fehler gibt, um einen vollständigen Entwickler für Korrekturen zu verwenden, gibt es andere Probleme oder Aufgaben, die ausgeführt werden können.
Die Geschwindigkeit des Teams könnte steigen, der Stress könnte sinken, Konflikte mit dem Management könnten sinken, Sie haben tatsächlich Zeit, Ihr Wissen zu verbessern.
quelle
Eine effektive Lösung für das Management der Entwickleranstrengungen bei wirklich wichtigen Produktionsproblemen, die ich verwendet habe, ist der "Batman-Ansatz".
Der teure Aspekt der Produktionsunterstützungsverantwortung bei der Entwicklung neuer Funktionen ist das Wechseln des Kontexts. Sie sollten daher versuchen, dies zu begrenzen.
Erstellen Sie mit dem Buy-In des Teams eine Liste der Teammitglieder und durchlaufen Sie diese, sodass jeden Tag eine neue Person beim Stand-up-Meeting zum "Batman" erklärt wird und an diesem Tag auf wichtige Produktionsprobleme reagiert. Der Rest des Teams kann sich auf die Entwicklung konzentrieren, ohne den Kontext wechseln zu müssen, und jeder hat einen angemessenen Anteil am Schmerz der Unterstützung. Mit einem 5-köpfigen Team ist dies ein Tag pro Woche, an dem ein Entwickler unterbrochen werden kann, und vier Tage ununterbrochene, vorhersehbare Entwicklungszeit.
Dies hat den Vorteil, dass das Wissen und die Erfahrung im Team geteilt werden. Sie haben also nicht eine Person, die für die Behebung bestimmter Probleme verantwortlich ist und zu einer einzigen Fehlerquelle und einer gerechten Aufteilung der Support-Probleme wird.
quelle