In der Praxis stoßen wir häufig auf die Tatsache, dass der Projektmanager den Entwicklungsprozess beschleunigen möchte - er ist nicht zufrieden mit der Geschwindigkeit der Bereitstellung neuer Funktionen. In der Regel benötigen solche Kunden komplexe Produkte wie ein Krankenhausmanagementsystem, ein Börsenhandelssystem, Bankensysteme und Bankdienstleistungen.
In solchen Fällen können Sie ein neues Team von Spezialisten verbinden, Prozesse in einem vorhandenen einrichten oder beide kombinieren. Berücksichtigen Sie die Vor- und Nachteile jedes Ansatzes. Machen Sie sofort einen Vorbehalt, dass der Artikel die Entwicklung großer und komplexer Projekte beschreibt (mehr als 10.000 Stunden).
Warum können Sie nicht sofort neue Spezialisten verbinden
Oft ist die einfachste und naheliegendste Möglichkeit, die Entwicklungsgeschwindigkeit zu erhöhen, die Verbindung neuer Spezialisten oder eines Teams. Dem Projektmanager scheint dies die Geschwindigkeit der Bereitstellung von Geschäftswert für Endbenutzer zu beschleunigen. In der Praxis ist dies nicht immer der Fall, insbesondere wenn die Prozesse im Projekt verarbeitet werden müssen. Wir geben ein Beispiel aus unserer Praxis.
Es war notwendig, zwei Teams mit einem bestehenden Entwicklungsprojekt zu verbinden. Das Projekt wurde seit mehr als 4 Jahren entwickelt und enthält eine große Anzahl von Subsystemen (mehr als 20) mit ihren gemeinsamen Mechanismen und Diensten. Eine vollständige Regression erforderte die Teilnahme von 5-7 QS-Ingenieuren und etwa 4-6 Arbeitstagen. Beim Eintritt in das Projekt und beim Verlassen der Teams auf dem erforderlichen Niveau der Problemlösung stießen sie auf folgende Schwierigkeiten:
- Ein Teil des Quellcodes des Systems stand unter der Kontrolle des SVN-Versionskontrollsystems, der andere Git. SVN war bisher sehr beliebt, ist jedoch für große Teamprojekte und häufige gleichzeitige Änderungen nicht geeignet. Daher wurde vor dem Wechsel zu git ein Teil der Zeit für Zusammenführungen, Bearbeitungskonflikte und andere Vorgänge im Zusammenhang mit der Verzweigung in svn aufgewendet.
- Es gab eine veraltete Anweisung zum Bereitstellen der Umgebung, sodass die Teams alle möglichen Fallstricke dieses Systems sammelten und die ersten Aufgaben erst nach 3-4 Tagen starten konnten.
- Wichtige Analysten und technische Experten waren mit der Vorbereitung der Veröffentlichung beschäftigt, sodass es unmöglich war, schnell klarstellende Informationen zu neuen Aufgaben zu erhalten. Die Aufgabeneinstellung war sehr gut. Dies verlangsamte die Ausführung von Aufgaben erheblich.
- Der Arbeitsablauf der Aufgaben war schwierig. Zunächst „stolperten“ die Teams darüber, wie sie mit der Aufgabe während ihres gesamten Lebenszyklus umgehen sollten.
- Zunächst wollte der Kunde nur mit den Bemühungen seiner QS-Ingenieure auskommen, konnte jedoch aufgrund der hohen Belastung die neuen Funktionen der verbundenen Entwicklungsteams nicht vollständig und unverzüglich überprüfen. Deshalb musste ich mit Überstunden arbeiten.
- Die Überprüfung des Codes wurde gemäß den vom Projekt festgelegten Grundsätzen und Kriterien durchgeführt. Die Kriterien wurden nicht dokumentiert. Daher wurde zusätzliche Zeit für die Korrektur der Kommentare aufgewendet.
Das Ergebnis der obigen Nuancen sind:
- zusätzliche Zeitkosten, die für die Lösung von Geschäftsproblemen aufgewendet werden könnten
- langsame Entwicklung des gesamten Systems
- oder Überstunden.
Überlegen Sie, wie Sie diese Situation vermeiden können.
Prozessanalyse
Bevor Sie neue Spezialisten zusammenbringen, sollten Sie herausfinden, wie die Arbeit des Teams organisiert ist. Es ist notwendig, die Engpässe zu finden und zu beseitigen. In der Regel befasst sich PM mit diesem Problem, da er für das Projekt verantwortlich ist und weniger Energie für die Verfolgung von Prozessen aufwenden möchte.
Die Beseitigung von Engpässen bringt das Projekt voran. Beispielsweise wird die Zeit für die Eingabe eines neuen Spezialisten oder eines neuen Spezialistenteams reduziert, die Beteiligung des Teams am Projekt erhöht und die Kosten für eine Stunde aufgrund der korrekten Ausführung der Aufgaben beim ersten Mal reduziert. Wenn alle Engpässe beseitigt sind, erhält der Projektmanager eine so schnelle Erhöhung der Entwicklungsgeschwindigkeit, wie es die derzeitige Praxis und der Projektkontext zulassen. Im Allgemeinen ist es gut für alle.
Die Analyse von Engpässen ist von zwei Seiten möglich: vom Top-Management / Experten und vom Team. Wir werden jede Option separat analysieren.
Externe Experten. Bei diesem Ansatz wird der Arbeitsprozess entweder von einem externen Team externer Experten oder vom Projektmanager zusammen mit dem Teamleiter analysiert. Bei letzteren ist es nicht die Tatsache, dass es sich herausstellen wird - es ist wichtig, dass sie alle Nuancen des Projekts verwerfen können, sonst ist die Analyse bedeutungslos.
Eine wichtige Voraussetzung ist die Unterstützung des Projektmanagements und die Bereitschaft zur Veränderung.
Dementsprechend taucht der Experte in das Projekt ein und analysiert detailliert die Dokumentation, den Quellcode, die Datenbankstruktur und den Produktionsprozess (von der Analyse bis zur Veröffentlichung). Die schrittweise Arbeit sieht folgendermaßen aus:
- Die gesamte Arbeitskette des Projekts wird von Anfang bis Ende betrachtet. Die Zeit jedes Prozesses wird gemessen.
- Ein Gantt-Diagramm wird erstellt. Der Experte untersucht, welche Prozesse nacheinander parallel ablaufen.
- Ein Experte überlegt, wie jeder Prozess produktiver und kostengünstiger gestaltet werden kann. In der Regel versteht ein Experte intuitiv, an welchen Stellen die größten Schwierigkeiten auftreten, und beginnt, sie für eine mögliche Modernisierung aufzuspüren.

Die Vorteile dieses Ansatzes:
- Die Arbeit wird von einer Person analysiert, die nicht an dem Projekt beteiligt ist. Er hat einen direkten Überblick über die Prozesse und kann daher Probleme finden, die für Teammitglieder nicht sichtbar sind.
- Ein Experte als Autorität kann ein Team davon überzeugen, Änderungen in Prozessen zu akzeptieren. Teams, die schon lange an einem Projekt arbeiten, suchen keine Innovation. Für sie ist dies eine Menge Stress, da sie wieder neu lernen müssen. Darüber hinaus wirkt sich eine solche Reaktion auch auf Änderungen aus, die dazu beitragen, effizienter zu arbeiten.
- Schnelle Implementierung von Lösungen - von 2-15 Tagen. Es hängt alles vom globalen Wandel und der Bürokratie innerhalb der Organisation ab.
- Das Projektteam nutzt die Erfahrung von Experten von Drittanbietern. Dies wird in Zukunft dazu beitragen, Prozesse unabhängig zu konfigurieren.
Nachteile:
- Experten müssen viel Zeit aufwenden, um die Feinheiten zu verstehen. Das Team kann die Geschichte des Projekts an einem Tag studieren, während der Experte mindestens anderthalb Wochen benötigt.
Was ist dagegen zu tun? Legen Sie die Ziele der Analyse zusammen mit dem Projektmanager / Teamleiter fest. Geben Sie dem Experten alle „Einführungsprojekte“, verbergen Sie die Details nicht.
Wenn der Kunde so loyal ist, dass er bereit ist, das Projekt iterativ zu analysieren, müssen Sie die Gelegenheit nutzen und solchen Bedingungen zustimmen. Anschließend ist es möglich, die Analyserichtung nach jeder Iteration anzupassen und sich nur auf die gewünschte zu konzentrieren. - Einige Teammitglieder stimmen der Entscheidung möglicherweise nicht zu. Anschließend können sie das Projekt sabotieren, die Vereinbarung schlecht umsetzen, was sich auf die allgemeine Stimmung des Teams auswirkt.
Was Sie dagegen tun sollten : Besprechen Sie jede Entscheidung mit dem Team und stellen Sie sie nicht kurz davor.
Ideale Option: Der Experte analysiert die Prozesse unabhängig und bespricht sie anschließend mit Schlüsselpersonen des Projekts. Wenn es Widersprüche gibt, diskutieren sie diese. Dies wird eine Menge Leute ansammeln, die Veränderungen treu bleiben und andere Teammitglieder betreffen. Es wird möglich sein, die leidenschaftlichsten Skeptiker zu überzeugen.
Aus dem Team . Dieser Ansatz kann als Retrospektive bezeichnet werden, die ein wesentlicher Bestandteil von Scrum ist. Der Prozess sieht folgendermaßen aus:
- Das gesamte Projektteam geht
- Einer der Teilnehmer übernimmt die Rolle des Moderators (Scrum-Master). Er sorgt dafür, dass das Gespräch konstruktiv verläuft.
- Das Team diskutiert ihre Arbeitsansätze. Alle Aspekte werden berücksichtigt: Prozesse, Kodierung, Zielsetzung usw. Dann werden die Vor- und Nachteile hervorgehoben.
- Bei einer allgemeinen Abstimmung einigen sie sich auf Änderungen: Die Pluspunkte müssen behoben, die Minuspunkte entfernt werden.
- Nach 3-4 Wochen wiederholt sich der Vorgang. Das Team schaut sich die Ergebnisse an und wenn alle mit allem zufrieden sind, geht die Arbeit weiter.

Wichtige Begriffe:
- Managementunterstützung für Änderungen und Innovationen.
- Teamzusammenhalt und Fokus auf Verbesserung.
Wenn die Unternehmenskultur keine Initiative oder Innovation fördert, ist eine Retrospektive nicht der beste Weg, um Prozesse neu zu gestalten. Die Teammitglieder werden ihren „Sumpf“ nicht überschreiten.
Vorteile des Ansatzes:
- Einbeziehung jedes Teilnehmers in die Diskussion des Projekts.
- Die Fähigkeit, alle positiven Aspekte des Projekts zu identifizieren und gegebenenfalls zu einem bestimmten Modell zu formen (Best Practice).
- Teammitglieder tauschen Erfahrungen miteinander aus.
- Allmähliche Lösung von Problemen, beginnend mit denen, die das Team und das Projekt am meisten verlangsamen, und endend mit kleinen Verbesserungen.
Nachteile:
- Es besteht die Gefahr, dass nur geringfügige Probleme gelöst werden und alle wichtigen Probleme unberührt bleiben.
Was dagegen zu tun ist : PM, Teamleiter und Moderator sollten ihre Meinung zum Team durch Autorität beeinflussen. Ihre Aufgabe ist es, in der Diskussionsphase auf wichtige Probleme aufmerksam zu machen. - Bei größeren Änderungen, die viel Arbeit erfordern, ist zusätzliche Zeit für die Koordination mit dem Management erforderlich. Es ist jedoch keine Tatsache, dass das Management den Innovationen zustimmt.
Was Sie dagegen tun sollten : Ihre Sichtweise vor der Führung zu verteidigen, ist die einzige Lösung. - Wenn das Team nicht ständig geschult wird (Konferenzen, Erfahrungsaustausch, Schulungen), sind die getroffenen Entscheidungen höchstwahrscheinlich veraltet und nicht so effektiv.
Was damit zu tun ist : Ständig Erfahrungen austauschen. Nehmen Sie an relevanten Konferenzen, Besprechungen und internen Schulungen teil. Wenn es sich um ein großes Unternehmen handelt, sind Demo-Tage eine gute Option. Bei solchen Veranstaltungen zeigen die Teams, welche Ergebnisse sie in ihrer Arbeit erzielt haben.
In den meisten Fällen können Sie die oben beschriebenen Prozesse anpassen und verbessern. Auch wenn zunächst klar ist, dass es wirklich möglich ist, das Projekt nur durch die Gewinnung neuer Spezialisten / Teams pünktlich abzuschließen, empfehlen wir Ihnen dringend, die oben genannten Schritte auszuführen.
Wenn der Projektmanager nach Beseitigung der Engpässe der Ansicht ist, dass die Kapazität nicht das gewünschte Niveau erreicht hat, können Sie neue Teams verbinden.
Infrastruktur für neue Teams vorbereiten
In dieser Phase lohnt es sich, vorbereitende Arbeiten durchzuführen, die die Dauer und die Kosten der Entwicklung reduzieren und dazu beitragen, die Nervenzellen der Entwickler zu retten. Lassen Sie uns überlegen, welche Bedingungen vorliegen sollten:
- Die Aufgaben für das neue Team sollten detailliert sein. Sie können jeden von ihnen starten, ohne zu warten - es besteht keine Abhängigkeit von aktuellen oder zukünftigen Aufgaben. Die Verantwortungsbereiche jedes Teams sind umrissen.
Ist dies nicht der Fall , bleibt der größte Teil des neuen Teams untätig oder erledigt sekundäre Aufgaben, die den Produktwert am wenigsten beeinflussen. - Die Architektur des Projekts ist "korrekt", d. H. unterteilt in Module, Subsysteme, gemeinsame Komponenten.
Wenn dies nicht der Fall ist , schlägt die Verbindung eines neuen Befehls fehl. Entwickler arbeiten unter der Kontrolle des aktuellen Teamleiters, aber eine Person kann effektiv nicht mehr als 7-9 Personen verwalten. Timlid wird zerrissen und einige Teammitglieder warten untätig, bis sie Aufgaben erhalten.
Wenn es nicht möglich ist, isolierte Abschnitte des Projektcodes zu isolieren, Sie jedoch vorwärts gehen müssen, können Sie versuchen, diese Einschränkung zu umgehen. Es ist notwendig, das Projekt durch Refactoring in mehrere Teile zu unterteilen.
Eine weitere Möglichkeit - nach dem Eintauchen von zwei oder drei Personen in das Projekt dem neuen Team immer mehr große Geschäftsfunktionen zu geben. Daher werden die Teams das Projekt isoliert voneinander entwickeln und aufgrund des neuen Teamleiters (einer Person, die in die Feinheiten eingetaucht ist) die Belastung des Hauptteamleiters verringern. - Die Arbeitsprozesse im Projekt werden ausführlich beschrieben. Zum Beispiel gibt es eine Workflow-Aufgabe, die Aufgabe wird im Versionskontrollsystem ausgeführt (die Praxis zeigt, dass nicht jeder einen Standard-GitFlow hat), die Interaktion zwischen den Projektteilnehmern wird beschrieben.
Geschieht dies nicht , entsteht im Projekt Chaos. In diesem Fall befasst sich der Projektmanager nur mit dem „manuellen“ Notfallmanagement. - Gemeinsame Komponenten und Module verfügen über eine relevante, verständliche Dokumentation. Es gibt Unit- und Integrationstests der Hauptteile. Es gibt eine klare Beschreibung der Architektur des gesamten Projekts, allgemeine Mechanismen sowie Anweisungen zu deren Anwendung. Wenn das oben Genannte noch nicht vorhanden ist, müssen dem technischen Schuldenpool ähnliche Aufgaben hinzugefügt werden, um die Situation zu korrigieren.
Ist dies nicht der Fall , erhöht sich das Risiko einer Doppelarbeit. Schlechter oder duplizierter Quellcode wird geschrieben. Dies wird in Zukunft zu einer teureren Projektunterstützung führen. Das Verbinden eines neuen Teams impliziert in der Regel die mögliche Verbindung mehrerer weiterer Teams. Dementsprechend werden die Zeitkosten um ein Vielfaches der Anzahl der Teams skaliert. - Es gibt feste Regeln für das Schreiben von Code - Konventionscode, Skripte zum Aktualisieren der Datenbankstruktur - Migration, allgemeine Prinzipien der obligatorischen Codeüberprüfung. Trotz der starken Ähnlichkeit hat jedes Projekt seine eigenen Merkmale.
Ist dies nicht der Fall , erhöhen sich die Komplexität und die Kosten für die weitere Unterstützung des Projekts um ein Vielfaches.
Mit den oben genannten Bedingungen können Sie neue Teams am effektivsten verbinden. Die Zeit, die ein Team benötigt, um an einem Projekt teilzunehmen, wird deutlich reduziert. Gleiches gilt für die Arbeitskosten für die Unterstützung und Entwicklung des Projekts.
Wie wir ein zusätzliches Team mit dem Projekt verbunden haben
Wir hatten einen Fall, in dem das Projekt dringend den Entwicklungsprozess beschleunigen musste. Es blieben noch 2-3 Monate, bis die nächste Hauptversion in Betrieb genommen wurde. Das Projekt selbst war ein komplexes System, das von einem Team für 3-4 Jahre entwickelt wurde.
Zunächst haben wir uns in den Kontext des Projekts selbst gestürzt. Das Ergebnis ist das folgende Bild der Engpässe des Projekts:
- Es gibt keine einzigen genauen Informationen darüber, wie Funktionen implementiert werden sollten. Die Liste der Aufgaben, Fehler und Verbesserungen ist veraltet.
- Es gibt keine kontinuierliche Integration, und die Entwicklung erfolgt in zwei Zweigen.
- Der Produkttestprozess wird nicht getestet. Zum Beispiel können QS-Ingenieure Fehler finden, die bereits behoben wurden, was zu zusätzlichen Arbeitskosten führt.
- Die Basis der Testfälle steckte noch in den Kinderschuhen. Einzelne QS-Ingenieure begannen, Fälle für sich selbst zu schreiben. Aus diesem Grund konnte niemand eine bestimmte Einschätzung der Qualität des Produkts und der möglichen Risiken bei der Veröffentlichung einer neuen Version abgeben.
- Der Arbeitsprozess von der Produktion bis zur Genehmigung durch den Kunden ist nicht dokumentiert. Es war unmöglich, die genaue Zusammensetzung der Freisetzungsfunktionen sowie andere weniger wichtige Punkte vorherzusagen.

Nach der Analyse haben wir einen Plan erstellt, um die oben genannten Punkte zu beseitigen. Natürlich war das Team nicht sofort mit den Änderungen einverstanden, aber mit der Unterstützung der Führung und der Entwicklung klarer Fristen konnten wir jedes Mitglied des Teams überzeugen.
Wir haben unsere Aktionen mit den Schlüsselpersonen des Projekts koordiniert: PM, Teamleiter, führender Analyst. Zusammen bilden diese drei Personen ein einziges Kundenmanagement-Team-Center. Sie fördern weiter Lösungen und überwachen deren Umsetzung in der Praxis. Ohne ein solches Managementteam ist es unmöglich, die Aktionen von mehr als drei Teams zu koordinieren.
Als Ergebnis wurden folgende Prozesse implementiert \ optimiert:
- Wir haben die Kommunikation zwischen allen Mitgliedern des Produktteams aufgebaut - Entwicklern, Analysten und Testspezialisten.
- Sie dokumentierten kritische und komplexe Funktionen für transparentere Tests, die Beseitigung von Fehlern, die Beilegung von Streitigkeiten und die anschließende Arbeitsplanung.
- Optimierte Entwicklungsprozesse. Vom WorkFlow- und GitFlow-Projekt übernommen. Sie halfen bei der Konfiguration der kontinuierlichen Integration und führten automatische Tests im automatischen Modus aus.
- Wir haben die Montagegeschwindigkeit der Prüfstände verdoppelt.
- Organisierte den Prozess der ordnungsgemäßen Prüfung. Regressionstest am Ende jeder Iteration implementiert.
- Einführung des Iterationsplanungsprozesses.
- Durchführung von Lasttests.
Basierend auf den Ergebnissen der ersten Iteration haben wir die Infrastruktur für die Verbindung eines neuen Teams vorbereitet. Parallel dazu haben sich zwei unserer Entwickler dem aktuellen Team angeschlossen, um in die Codebasis einzutauchen. Dann wurde einer von ihnen der Teamleiter des neuen Teams. Bei der zweiten Iteration erzielten die beiden Teams die folgenden Ergebnisse:
- Inbetriebnahme nach 3 Monaten.
- 70% der Fehler wurden behoben
- Vier wichtige Funktionen implementiert
- Optimiert und um das 8-fache der Geschwindigkeit beim Laden einiger Seiten erhöht
- Erhielt genaue Informationen über die Qualität des gesamten Produkts
- Erstellte RoadMap-Iterationen
Ich glaube, dass eine der wichtigsten Errungenschaften dieses Projekts die Freude des Kunden ist. Er stellte den Status des Projekts jederzeit transparent dar und die Verpflichtungen gegenüber dem Unternehmen wurden vollständig und pünktlich erfüllt.
Fazit
Es gibt zwei Möglichkeiten, um die Geschwindigkeit der Projektentwicklung zu erhöhen: Beseitigung von Engpässen und Erhöhung der Produktionskapazitäten. Im ersten Fall können Sie die Entwicklungsgeschwindigkeit um 30-40% steigern, im zweiten Fall um 70-80%. Zusätzliche Befehle führen nicht zu einer doppelten Steigerung der Produktivität, da mehr Zeit für die Interaktion zwischen mehreren Teams aufgewendet wird.
Wichtige Erfolgsfaktoren für die Erweiterung von Entwicklungsteams sind:
- Vorarbeiten
- etablierte Prozesse
- ein Leiter oder Mitglied eines Projektteams, das die Aktivitäten von Teams fördern und überwachen würde,
- Single Command Control Center.
Derzeit arbeiten drei Teams an dem zuvor beschriebenen Projekt (ein altes und zwei neue). Die Anzahl der ausgeführten Aufgaben hat sich um das
1,9-fache erhöht.