Der Kontext der Frage ist ein Unternehmen, das ein Softwareprodukt erstellt, das aus mehreren funktionalen Komponenten besteht (man könnte sie auch Unterprodukte nennen) und das Produkt an eine eher kleine Anzahl von Kunden verkauft (~10 Kernkunden, <100 insgesamt). Diese Kunden zahlen eine Lizenzgebühr für neue Inhalte und eine jährliche Gebühr für die Wartung. Es gibt rund 20 Entwickler, die seit mehreren Jahren mit einem agilen Prozess arbeiten. Wir erwägen den Wechsel von Projektteams zu festen Teams. Wir diskutieren zwei Hauptprinzipien, wie die Teams zusammengestellt werden: (1) Jedes Team ist für eine Reihe funktionaler Komponenten verantwortlich, oder (2) jedes Team ist für eine Gruppe von Kunden verantwortlich.
Haben Sie positive oder negative Erfahrungen mit beiden Optionen in einem ähnlichen Kontext? Welche der Optionen ist besser für den gegebenen Kontext?
Experiment.
Keine der hier präsentierten Antworten passt zu Ihrem spezifischen Produkt, Team oder Kunden. Agile fördert die kontinuierliche Verbesserung, also machen Sie es.
In Anbetracht dessen können wir einige wichtige Punkte überprüfen, die beim Experimentieren zu berücksichtigen sind:
Warum ändern? Klären Sie die Probleme, die das Team durch Anwenden dieser Änderungen angehen soll. Veränderung um der Veränderung willen „um agiler zu werden“ ist kein wirklicher Zweck. Ihr eigentliches Ziel ist es, häufiger und mit Vorhersagbarkeit Mehrwert zu liefern. Agile ist ein Werkzeug, das Ihnen dabei helfen kann.
Teams sollten in der Lage sein, ein vollständiges Produkt zu liefern . Wenn Sie Teams nach funktionalen Komponenten organisieren, verfügen Sie über mehr Fachwissen zu dieser spezifischen Komponente, aber am Ende haben Sie möglicherweise ein großartiges Team in der Benutzeroberfläche, das viele Änderungen bereitstellt, die nicht aktiviert werden können, weil das Back-End-Team nicht so erfahren ist.
Verstehen Sie Ihren aktuellen Wissenshintergrund . Wenn Sie eine einzelne Person haben, die die Benutzeroberfläche durchführt, und dies der Schlüssel für alle Lieferungen ist, wird es schließlich zu einem Engpass führen, wenn verschiedene Teams von dieser einzelnen Person abhängen.
Der Wissenshintergrund ist eine der komplexesten Veränderungen für voll funktionsfähige agile Teams. Wenn Ihr Team auf das Wissen bestimmter Personen angewiesen ist, würde ich Folgendes vorschlagen, bevor Sie die Teamstruktur ändern:
Denken Sie daran, dass Sie nicht in allen Bereichen Experte sein müssen (ich halte einen „Full-Stack-Entwickler“ in den meisten Fällen immer noch für einen Trugschluss). Stattdessen sollte man über ein T-förmiges Skillset verfügen , das es jedem Subteam ermöglicht, mit minimaler Abhängigkeit von anderen Teams zu liefern.
Diese Frage ist schwer zu beantworten, da sie von Ihrem Unternehmen abhängt. Die allgemeine Richtlinie lautet, das Team in Richtung Wertschöpfung zu optimieren. Normalerweise wird eine solche Frage gestellt: Sollen wir Teams um Systemkomponenten und Funktionsbereiche herum organisieren? Die Antwort auf diese Frage ist einfacher, da bei Systemkomponenten kein Team den Benutzern allein eine wertvolle Funktion liefern kann. In Ihrem Fall klingt es jedoch so, als könnten beide potenziell ein vollwertiges Feature für sich allein bereitstellen, sodass sich die Frage stellen könnte, was besser oder öfter ein wertvolles Feature für sich allein bereitstellen kann?
Ein weiteres Modell, das bei einer so kleinen Anzahl von Entwicklern in Betracht gezogen werden sollte, sind vollständig austauschbare Teams. Wenn alle Teams alle Arbeiten erledigen können, kommen Sie immer am schnellsten zu Ihren wichtigsten Funktionen.
Es scheint mir, dass es klüger ist, es um Softwarekomponenten herum zu tun, weil es so aussieht, als könnten die Teams Entscheidungen besser kontrollieren, da sie den Input von mehreren Clients in ein einziges Feature erhalten.
Wenn Sie es umgekehrt machen: Wenn mehrere Teams an derselben Komponente mit unterschiedlichen Kundeneingaben arbeiten, besteht die Möglichkeit, dass Sie sich gegenseitig auf die Füße treten.
Sie müssen Folgendes berücksichtigen:
Venture2099
Tobi B.
Tobi B.
ottodidakt