Entwicklungsprozess in einem stark abhängigen Umfeld

Ich ging gerade eine Frage zu PMSE durch, als mir diese Frage in den Sinn kam. Ich habe als Projektmanager für ein Softwareunternehmen gearbeitet.

Den Großteil unserer Arbeit bekommen wir von einer Agentur. Die Agentur wiederum erhält diese Arbeit von einer anderen Agentur, die sie möglicherweise von einer anderen Agentur oder dem direkten Kunden erhält. Am Ende dieser Kette steht (natürlich) immer ein direkter Auftraggeber. Im Folgenden sind die beiden Modi aufgeführt, in denen wir Arbeit erhalten:

Wir > Agentur Nr. 1 > Agentur Nr. 2 > Kunde

Wir > Agentur Nr. 1 > Agentur Nr. 2 > Agentur Nr. 3 > Kunde

Wir hatten zunächst begonnen, Agile für die Entwicklung zu verwenden, aber wir haben bald festgestellt, dass es für uns nicht funktioniert. Denn jeder Sprint, bei dem wir Klärungsbedarf haben oder gesperrte Punkte zu erledigen haben, durchläuft den Weg von uns bis zum Endkunden.

In einer solchen Situation rücken die Aktionspunkte in Abhängigkeit von den Prioritäten der beteiligten Agenturen oder der Kunden in der Kette nach oben. Oft erhalten wir Updates nicht in einem einzigen Sprint, es breitet sich auf 2-3 Sprints aus, um Updates zu erhalten.

Wenn wir Arbeitsaufgaben erhalten, analysieren und schätzen wir sie und senden sie zur Genehmigung, was je nach Verfügbarkeit des jeweiligen Projekt- / Account-Managers der Agentur auch Wochen oder Tage dauern kann. Dasselbe gilt für die Genehmigung abgeschlossener Aufgaben, was relativ schneller geht.

Wir wissen, dass wir Wasserfall-ähnlichen Modellen nicht vollständig folgen können, wie sie sind. Wir haben darüber nachgedacht, eine Mischung aus Wasserfall-, Agile- und V-Modell zu formulieren und zu befolgen, um unser Leben einfacher zu machen.

Welchen allgemeinen Entwicklungsprozess sollen wir angesichts der Abhängigkeit, die wir von verschiedenen Interessengruppen haben, anwenden?

In jeder Methodik verursacht die Kommunikationslücke Probleme, Fehlinterpretationen, Fehler usw. Die einzige Möglichkeit, dies zu überwinden, besteht darin, Brücken zum echten Kunden zu bauen. Typischerweise wollen die oben genannten Agenturen dies nicht, da der Kunde sie in Zukunft möglicherweise einfach ausschließt. TL; DR, du bist ein Bottom-Feeder und das ist kein großartiger Ort, um zu sein :(
Erwähnenswert ist auch, dass ich dies in anderen Maschinenbaubranchen gesehen habe, und dies verursacht auch Probleme. Dies kann vom Kunden gelöst werden, indem er sicherstellt, dass er es in seinem Vertrag hat, um sicherzustellen, dass er tatsächlich mit der Person sprechen kann, die die Arbeit erledigt.

Antworten (4)

Ich sehe das anders als die anderen Antworten hier. Das Problem hier ist ganz klar das Projektmanagement.

Die grundlegenden Einschränkungen scheinen zu sein:

  1. Lange Vorlaufzeiten für die Arbeitsdefinition
  2. Lange Vorlaufzeiten für Arbeitsklärung
  3. Lange Vorlaufzeiten für die Budgetfreigabe
  4. Lange Vorlaufzeiten für die Werksabnahme
  5. Lange Bearbeitungszeit für Fehlerberichte.

Jetzt wird Scrum nicht funktionieren, da Scrum sehr auf schnelle Bearbeitungszeiten für die Arbeitsannahme / Arbeitsklärung angewiesen ist. Kanban wird nicht funktionieren, da die blockierenden Aufgaben alle für die Kundenkommunikation blockiert werden, sodass das Entwicklungsteam nicht mehr Ressourcen darauf verwenden kann, um die Aufgabe voranzutreiben.

Was kann man also tun?

Erstens, die Lieferkette verbessern. Arbeiten Sie mit Ihren Kunden zusammen, um Vertrauen aufzubauen, um eine direktere Kommunikation zwischen Kunde und Entwicklungsteam zu ermöglichen, wenn es um Aufgabendefinition und Geschäftsregeln geht. Diese Gespräche sollten sich darauf beschränken, dass die Entwickler den Endkunden um technische Informationen und technische Entscheidungen bitten und die Antworten zurückgeben. Jeglicher Informationsfluss zum Kunden sollte über die Lieferkette abgewickelt werden (z. B. Verzögerungen, Kosten, Kundenanfragen für die Lieferung eines Perpetuum Mobile oder eine andere unmögliche Aufgabe).

Erstellen Sie eine größere Bibliothek mit sofort einsatzbereiten oder umsetzbaren Aufgaben. Aufgaben, bei denen die Arbeit definiert ist, von den Entwicklern klar verstanden wird und der Kunde froh ist, dass diese Arbeit fortgesetzt wird.

Planen Sie regelmäßige Besprechungen mit dem Endkunden ein, um den aktuellen Stand der Arbeit zu überprüfen. Auch wenn zum Zeitpunkt der Besprechung möglicherweise nicht bekannt ist, welche Arbeiten vorführbar sein werden, führt dies zu einem regelmäßigen Puls von Endkunden-Feedback an die Entwickler, um ihre Ausrichtung an den wahrgenommenen Bedürfnissen ihrer Kunden auszurichten.

Akzeptieren Sie schließlich, dass die Arbeit manchmal aufgrund von Verzögerungen bei der Kundenkommunikation blockiert wird. Sie können das intern handhaben, indem Sie Arbeit für andere Kunden planen, die geplant werden kann, indem Sie raten, was der Kunde verlangen wird, während Sie auf die Antwort warten - akzeptieren Sie, dass Sie Arbeit wegwerfen könnten, oder stellen Sie dafür Personal auf Vertragsbasis ein dass Sie sie nur bezahlen, wenn Sie Arbeit zur Verfügung haben (ohh Moment, das haben Ihre Kunden getan ...)

TL;DR

Sie sind nicht von mehreren Stakeholdern abhängig; Sie haben einen Prozessfehler an der Schnittstelle zwischen Ihnen und Agentur Nr. 1. Das Suchen nach alternativen Methoden wird das Prozessproblem nicht lösen, aber es direkt angehen könnte es.

Definieren Sie Ihre Stakeholder neu

Ihrer Beschreibung nach haben Sie keinen direkten Kontakt zum Endverbraucher. Während sie in gewissem abstrakten Sinne Interessengruppen sein können, haben Sie Ihrer Beschreibung nach genau eine Kundenschnittstelle: Agentur Nr. 1.

Die Tatsache, dass diese Behörde möglicherweise eigene Interessengruppen hat (und so weiter) sollte für die Definition Ihrer Kommunikationsschnittstelle mit Behörde Nr. 1 irrelevant sein. Wenn Sie nicht direkt mit Agentur Nr. 2, Agentur Nr. 3 oder dem Endbenutzer kommunizieren dürfen, sollten diese als Beteiligte aus Ihrem internen Prozess ausgeschlossen werden.

Bewerten Sie Ihren Prozess neu

Sie haben mehrere Möglichkeiten, mit übermäßigen Verzögerungen bei der Kommunikation umzugehen. Einige Beispiele sind:

  1. Definieren Sie rechtzeitige Mitteilungen in Ihrem Vertragsprozess.
  2. Passen Sie Ihre Sprintlänge für jedes Projekt an, teilweise basierend auf der Zykluszeit für die Kommunikation.
  3. Artikulieren Sie die Notwendigkeit einer engeren Zusammenarbeit mit Ihrem Gegenüber bei Agentur Nr. 1.
  4. Stellen Sie sicher, dass Kommunikationsverzögerungen sichtbare Kosten für das Projekt darstellen.
  5. Stellen Sie sicher, dass Kommunikationsverzögerungen sichtbare Kosten für Agentur Nr. 1 darstellen, da sie das Unternehmen ist, das Ihr Unternehmen bezahlt.

Sie können ein grundlegendes Prozessproblem nicht überspielen, indem Sie die Methoden wechseln. Es gibt keine Wunderwaffe; Sie müssen dieses Problem direkt angehen. Das von Ihnen gewählte Projektmanagement-Framework ist für die Lösung des vorliegenden Problems nicht wirklich relevant.

Ich neige dazu zu glauben, dass Ihr Team mehr als eine Prozessänderung eine Beziehungsänderung braucht.

Ich denke, ihr müsst "näher" an den späteren Kunden heranrücken.

Wie wäre es, einen Fall stromaufwärts aufzubauen?

  1. Eskalation – Heben Sie die Auswirkungen hervor, die der aktuelle Prozess hat, dh Verzögerungen bei der Lieferung, Klärung, schleppende Kommunikation

  2. Kürzere Feedbackschleifen - Ideen zur Beschleunigung der Kommunikationskanäle mit dem Kunden entwickeln (z. B. tägliche/wöchentliche virtuelle Stand-Ups/Telefonkonferenzen direkt mit dem Kunden/Entscheidungsträgern?) .

  3. Zurückdrängen – Befürworten, keine Geschichten aufzugreifen/sich zu verpflichten, wo es zu viele Unbekannte gibt. Dies wird den Schmerz, den ihr erlebt, weiter hervorheben

Ich bin mir nicht sicher, was die politische Kultur in Ihrer Beziehung zu diesen Agenturen ist, also müssten Sie darauf achten, dies diplomatisch auszugleichen, damit die Agenturen nicht bedroht werden oder sich geächtet fühlen. Daher muss die Botschaft verstärkt werden, dass es ausschließlich darum geht, die Kommunikation zu verbessern und eine schnellere Entscheidungsfindung zu ermöglichen.

Haben Sie schon einmal über Kanban nachgedacht ?

Dies ist ein schlanker Pull-Prozess, der gut zu Ihrer Situation passt.

Hier ist, was Sie tun können und wie Sie von Kanban profitieren können:

  • Ordnen Sie den Wertstrom zu und machen Sie den Stakeholdern (Agenturen) deutlich, wie Sie mit ihnen zusammenarbeiten
  • Führen Sie Work-In-Progress-Limit ein und zeigen Sie, wo Engpässe liegen – Agenturen werden sehen, wie viel es sie kostet, Sie sperren zu lassen
  • Verfolgen Sie die Zykluszeit und die Vorlaufzeit , um zu zeigen, wie viel Zeit Sie für Artikel aufwenden und wie lange Sie auf etwas warten (z. B. Anforderungen)
  • Laden Sie Stakeholder (Agenturvertreter) zur Kanban Operations Review ein, wo Sie Ihr gesamtes Pull-System besprechen und die in den obigen Punkten bereitgestellten Daten verwenden, um das System zu optimieren.

Bei Kanban geht es um Optimierung, aber noch wichtiger um eine bessere Vorhersagbarkeit. Nach einiger Zeit erhalten Sie bessere Daten zur durchschnittlichen Zeit, um ein Element abzuschließen. Bewaffnet mit diesen könnten Sie versuchen, Ihre Stakeholder -> Agenturen, mit denen Sie zusammenarbeiten, zu beeinflussen.

Hier ist ein guter Kanban-Link für den Anfang: http://www.leankanbanuniversity.com/introducing-kanban

@DaveHillier Es könnte ihm helfen, seinen Wertstrom abzubilden und vielleicht aufzudecken und Transparenz darüber zu schaffen, wo Schmerzpunkte liegen, z. B. die Einladung von Agenturvertretern zu einer der Betriebsprüfungen. Sicher, das Beste ist, Mittelsmänner loszuwerden und einfach vor Kunden zu treten, aber was er beschreibt, ist für viele Unternehmen Realität. Eine weitere Sache ist, dass Kanban nicht versucht, die gesamte Situation, in der Sie sich befinden, umzugestalten (wie es Scrum tut), sondern versucht, Ihnen zu ermöglichen, innerhalb Ihrer Grenzen effizienter zu arbeiten.
@DaveHillier Macht Sinn. Wird morgen bearbeitet. Danke für die Eingabe.
@DaveHillier fertig.