Unterschiedliche Verantwortlichkeiten zwischen leitendem Entwickler und Projektmanager für die Arbeitslast des Supports

Vollständige Offenlegung: Ich arbeite als leitender Entwickler für ein Team von etwa 6 Entwicklern, nicht als Projektmanager. Aber dies schien ein guter Ort zu sein, um zu fragen.

Hintergrund : In letzter Zeit bearbeitet das Team mehr Support-Anfragen von Kunden als größere Entwicklungen. Dies macht es schwierig, mit der Scrum-Methodik zu arbeiten (wie wir es normalerweise tun würden), da wir nicht mehrere Wochen auf einmal im Voraus planen können, da wir möglicherweise kritische Supportanfragen erhalten. Aus diesem Grund möchten wir Kanban einführen, um die Arbeitsbelastung des Teams zu bewältigen.

Meine Frage : Wenn Sie (mit oder ohne Kanban) an einer eher supportorientierten Arbeitsbelastung arbeiten, welche Unterschiede gibt es in den Verantwortlichkeiten zwischen dem Projektmanager und dem leitenden Entwickler?

Konkrete Beispiele sind:

  • Wer ist für die Verwaltung von Supportanfragen der Kunden verantwortlich? Wer sollte auf neue Anfragen/Tickets achten und wer sollte sie triagieren, sobald sie eingehen?
  • Wer ist für die Verwaltung der Arbeitsbelastung des Teams und die Überwachung des Fortschritts einzelner Entwickler verantwortlich?
  • Wer ist für die Festlegung der Veröffentlichungszeitpläne verantwortlich und welche Ausgaben/Tickets stellen die nächste Veröffentlichung dar?
  • Wer ist für die Priorisierung der Supportanfragen zwischen mehreren Kunden verantwortlich?

PS Ich weiß, dass Rollen und Verantwortlichkeiten zwischen verschiedenen Unternehmen sehr unterschiedlich sind, aber in meinem Unternehmen scheinen die Rollen in einigen Bereichen etwas verschwommen zu sein, daher würde mich sehr interessieren, wie andere Leute diese Rollen definieren.

Hallo Rob, ich denke, deine Frage passt sehr gut zu unserer Seite. Vielen Dank, dass Sie sich so viel Mühe gegeben haben, den Hintergrund und die eigentlichen Fragen klar zu skizzieren. +1
Danke jmort. Und danke an Deer Hunter für das Aussortieren meiner Grammatik!
Das ist eine großartige Frage, etwas, über das ich kürzlich selbst nachgedacht habe. Ich freue mich auf die Antworten. Danke Rob.
Das Unternehmen, für das ich arbeite, hat die Support-Verbindung mit dem PM über eine Untersuchung. Der PM überprüft es und entscheidet, ob er die Frage basierend auf der Dokumentation beantworten kann, oder ob er je nach Schweregrad des Problems eine unterschiedliche Menge an Ressourcen zuweist. Diese Ressourcen priorisieren dann die Supportanfrage und die neuen Funktionen/Verbesserungen, an denen sie arbeiten, basierend auf der Prioritätsstufe. Die Entwickler hören nie auf, an rückständigen Problemen und neuen Sachen zu arbeiten, aber sie stehen bei Bedarf alle für Unterstützung zur Verfügung. Die Entwickler überprüfen dann alles und geben die Antwort basierend auf einem SLA oder Logabug.

Antworten (4)

IMO, alle vier Aktivitäten, die Sie zitieren, sollten von einem Projektmanager und/oder Produktmanager gehandhabt werden. Wenn Sie diese Tätigkeiten derzeit ausüben, dann agieren Sie als Projekt-/Produktmanager und leitender Entwickler. (Zeit, um eine Gehaltserhöhung zu bitten.)

Ich würde die Dinge etwas anders strukturieren, anstatt dem Prozess nur Kanban hinzuzufügen (und dies geht nicht auf die Tatsache ein, dass Sie wahrscheinlich eine echte PM / PM benötigen). Wenn Sie nur Kanban hinzufügen, wird es wahrscheinlich immer noch schwierig sein, neue Entwicklungen durchzuführen, da die Entwicklungszyklen durch die Flut von Supportanfragen zerhackt werden. Sie müssen das Hacken vermeiden.

Ich würde die Dinge strukturieren, indem ich pro Sprint mindestens 2 der Entwickler der Neuentwicklung zuweise. Die Entwickler können von Sprint zu Sprint rotieren, aber Sie müssen einige Leute haben, die sich der neuen Entwicklung widmen und im Allgemeinen nicht für Developus Interuptus verfügbar sind. Die engagierten Leute sollten nicht von der Neuentwicklung abgezogen werden, es sei denn, die Supportarbeit kann absolut positiv nicht von anderen Entwicklern erledigt werden.

Wenn den Support-Entwicklern während eines Sprints die Unterstützungsarbeit ausgeht, können sie entweder den Feature-Entwicklern helfen, die für den Sprint ausgewählten Features fertigzustellen, oder sie können vielleicht etwas aus dem Rückstand ziehen, um daran zu arbeiten (es wird schwierig um dies auf diese Weise beim reinen Gedränge zu halten).

Aber dies stellt sicher, dass Sie immer konsistente Fortschritte beim Funktionsrückstand machen und gleichzeitig die erwartete Unterstützung aufrechterhalten.

Und was ist mit all den Support-Problemen? Sind das Qualitätsprobleme oder etwas anderes? Wenn es sich um Qualitätsprobleme handelt, dann klingt es so, als müssten Sie ernsthaft an den Qualitätskontrollprozessen arbeiten.

Großartige Antwort, Kent (und nicht nur, weil Sie sagten, ich solle um eine Gehaltserhöhung bitten!). Ihre Antwort enthält viele interessante Punkte, die für meine Situation sehr relevant sind. Danke, dass Sie auf die Einzelheiten meines Problems eingegangen sind.
Ich bin mir jedoch nicht ganz sicher, wie wir Ihren Vorschlag umsetzen würden, da es in unserer Situation etwas komplizierter ist. Das Team deckt tatsächlich etwa 6-7 Projekte ab (einige sind aktiver als andere, sodass die Ressourcenniveaus je nach Projekt variieren) und die Entwickler sind jeweils mit einer anderen Mischung von Projekten vertraut. Die Arbeit variiert von Daten- oder Konfigurationsänderungen bis hin zu Bugs und kleinen Feature-Entwicklungen.
Ah. Ich wusste nicht, dass Sie das Team auf so viele verschiedene Projekte verteilt haben. Das ändert meine Antwort. Vielleicht wäre Kanban in Ihrer Situation besser geeignet, wenn Entwickler sich hauptsächlich auf ihre Projekte konzentrieren und Sie jederzeit Supportanfragen für jedes der Projekte erhalten können. Das ist eine schwierige Situation, mit der man aus "Team"-Perspektive umgehen muss.

Meine Faustregel:

  • Der Hauptentwickler ist für das technische und architektonische Wohlergehen des Produkts verantwortlich

  • Der Teamleiter ist verantwortlich für den Teamzusammenhalt, Teamverbesserungen und das Wohlergehen der Entwickler

  • Der Projektmanager ist verantwortlich für die Koordination zwischen Projekten, die Kundenentwicklung und die termingerechte Lieferung des Projekts, indem er den am Prozess beteiligten Teams hilft/unterstützt

Wenn es eine Situation gibt, in der die Verantwortlichkeiten nicht 100% klar sind, dann müssen sich der leitende Entwickler, der Teamleiter und der Projektleiter unterhalten und gemeinsam eine Entscheidung treffen. Teamarbeitsbelastung ist ein gutes Beispiel: Es gibt eine Nachfrage vom Projektmanagement, und der leitende Entwickler und Teamleiter sollten auf diese Nachfrage reagieren und dem Projektmanagement mitteilen, ob das Team unter den aktuellen Umständen mehr leisten kann, ohne eine Überlastung oder Produktqualität zu riskieren.

Danke, dass du Zsolt geantwortet hast, das ist eine sehr nützliche Faustregel. Ich habe jedoch nach Einzelheiten gesucht, also haben Sie beispielsweise nicht erwähnt, wer für die Verwaltung der Teamarbeit oder die Verfolgung von Supportanfragen verantwortlich ist.
@RobBird du hast absolut recht, diese fehlen in meiner Antwort. Ich werde sie in Kürze hinzufügen.
@RobBird, fertig. Ich habe die Teamarbeitsbelastung in meiner Antwort verwendet. Apropos Supportanfragen : Es ist wieder ein Gespräch zwischen den dreien. Das Projektmanagement sollte anhand des Inputs des leitenden Entwicklers und des Teamleiters entscheiden, wann es sich um die Supportanfrage kümmern soll. Wenn das Team etwas locker ist, ist es eine einfache Sache, oder es kann vorkommen, dass das nächste Feature das Problem löst usw. Hier gibt es ein Muster. Das Projektmanagement trifft die Entscheidungen, der Rest sollte Informationen und Unterstützung geben, damit PM gute Entscheidungen trifft.

Ich würde die Supportanfragen als Probleme behandeln und nachverfolgen, wie Sie es bei Projekten tun würden. Kurz gesagt, der PM sollte alle Planungen verwalten und Prozesse und Systeme einrichten, die es den Entwicklern ermöglichen, ihre Arbeit mit minimaler Unterbrechung zu erledigen, und dem leitenden Entwickler ermöglichen, an Qualität, Codeüberprüfung usw. zu arbeiten. Der PM sollte die leitenden Entwickler suchen Beratung in allen Fragen der Planung und Terminierung. Und alle diesbezüglichen Entscheidungen sollten durch Diskussionen unterstützt werden - ich finde es nützlich, an einem Montagmorgen ein Teammeeting abzuhalten, um den Zeitplan der Woche zu überprüfen, und dann ein Treffen zwischen dem leitenden Entwickler und dem PM an einem Freitag, um die Woche zu überprüfen und zu aktualisieren folgenden Wochenplan.

Ich habe Antworten auf jede Ihrer Fragen unten hinzugefügt:

• Wer ist für die Verwaltung von Supportanfragen der Kunden verantwortlich? Wer sollte auf neue Anfragen/Tickets achten und wer sollte sie triagieren, sobald sie eingehen?

Der Projektmanager sollte die erste Anlaufstelle für alle neuen Arbeiten sein, die in das Team kommen, und Entwickler sollten über ein System zum Protokollieren von Anfragen als Probleme verfügen, wenn der Kunde direkt an einzelne Entwickler geht. Die Entwickler sollten über Prozesse und ein PM verfügen, die es ihnen ermöglichen, sich auf ihre Arbeit zu konzentrieren und nicht auf die Planung neuer Arbeiten (außer der Priorisierung ihrer bestehenden Arbeitslast). Sicherlich sollte sich der PM mit dem Kunden in Verbindung setzen, um sicherzustellen, dass Supportanfragen über ihn/sie gestellt werden. Der PM sollte versuchen, die Anfragen zu sichten oder mit Ihnen als leitendem Entwickler sprechen, wenn weitere Informationen benötigt werden.

• Wer ist für die Verwaltung der Arbeitslast des Teams und die Überwachung des Fortschritts einzelner Entwickler verantwortlich?

Der Teamleiter sollte die Arbeitslast überwachen und alle Probleme dem leitenden Entwickler und PM melden. Darüber hinaus sollte ein kluger Projektmanager an der Spitze stehen, da sich alle Workload-Konflikte auf die Lieferung der Projekte/den Abschluss von Problemen auswirken. Der leitende Entwickler sollte sich der Arbeitsbelastung und des Fortschritts bewusst sein, aber die Verantwortung dafür, dass die Arbeit pünktlich erledigt wird, liegt beim PM.

• Wer ist für die Festlegung der Veröffentlichungszeitpläne verantwortlich und welche Ausgaben/Tickets bilden die nächste Veröffentlichung?

Der PM ist dafür verantwortlich, aber dies sollte in Zusammenarbeit mit dem leitenden Entwickler und Teamleiter erfolgen.

• Wer ist für die Priorisierung der Supportanfragen zwischen mehreren Kunden verantwortlich?

Der PM sollte dies wiederum tun, aber auch in Zusammenarbeit mit dem leitenden Entwickler und dem Teamleiter, um sicherzustellen, dass eine Priorisierung keine bestehende Arbeit negativ beeinflusst.

Sieht so aus, als ob Sie in die Softwarewartungsphase übergegangen sind und viel Multitasking betreiben, während Sie anscheinend zumindest ein bisschen unterbesetzt sind (daher @Kents Intuition in Bezug auf Gehaltserhöhungen). Kann nicht umhin zu denken, dass sich zwei Ihrer Fragen zur Triage und Prioritätensetzung a) überschneiden und b) die Kompetenzen der Teammitglieder überschneiden:

Wer ist für die Verwaltung von Supportanfragen der Kunden verantwortlich? Wer sollte auf neue Anfragen/Tickets achten und wer sollte sie triagieren, sobald sie eingehen?

Wer ist für die Priorisierung der Supportanfragen zwischen mehreren Kunden verantwortlich?

Da die Triage Kenntnisse über das Geschäft des Kunden (den Geld- und Reputationswert jeder Support-Anfrage) und eine spezifische Schätzung der Manntage pro Anfrage beinhaltet, müssen Ihr PM (oder das am stärksten nach außen orientierte Teammitglied) und Sie (oder der Entwickler, der im Allgemeinen dafür verantwortlich ist eines bestimmten Projekts) als leitender Entwickler müssen sich über die Zeitplanung und Ressourcenzuweisung einigen.

Wer ist für die Verwaltung der Arbeitsbelastung des Teams und die Überwachung des Fortschritts einzelner Entwickler verantwortlich?

Das sind zwei unterschiedliche Funktionen.

  • Workload-Management ist nur ein anderer Name für Ressourcenzuweisung/-planung (siehe oben); es sollte nach der anfänglichen Zuteilung so wenig Request-Umordnungen zwischen Entwicklern geben, um unproduktive Zeitverluste zu vermeiden.

  • Den Entwicklern in den Hintern zu treten, um Dinge rechtzeitig zu erledigen, ist eher die Rolle eines PM.

Zu den verbleibenden zwei Fragen:

Wer ist für die Festlegung der Veröffentlichungszeitpläne verantwortlich und welche Ausgaben/Tickets stellen die nächste Veröffentlichung dar?

es gibt nichts Nützliches, was ein Außenstehender wie ich sagen könnte. Verfügt Ihr Unternehmen nicht über eine Freigaberichtlinie? Wenn Sie und Ihr PM das Problem der Anforderungspriorisierung gelöst haben, folgt der Umfang der nächsten Version logischerweise aus den vom Unternehmen auferlegten Zeitbeschränkungen.