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:
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.
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.
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.
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.
jmort253
Rob Vogel
Kosta Kontos
Randy E