Ich arbeite in einem kleinen Team, das mit einem anderen kleinen Team an einem großen neuen Projekt arbeiten wird. Das andere Team arbeitet derzeit an einem Altsystem, an dem es seit Jahren arbeitet.
Der Manager hat entschieden, dass die Entwickler aus meinem Team alle paar Monate wechseln, um die Entwickler zu ersetzen, die am Altsystem arbeiten. Auf diese Weise hat das andere Team die Möglichkeit, an dem neuen Projekt zu arbeiten und das neue System besser zu verstehen.
Ich möchte die Vor- und Nachteile (falls vorhanden) der Rotation der Entwickler aus dem Projekt alle 2-3 Monate kennen.
Ich weiß, dass dies eine ähnliche Frage ist wie "Ist es eine gute oder schlechte Idee, den Hauptentwickler zu wechseln?". , aber diese Frage konzentriert sich auf einen Hauptentwickler. Bei dieser Frage geht es darum, das gesamte Team innerhalb und außerhalb des Projekts zu drehen (der technische Leiter für das neue Projekt kann gedreht werden oder nicht - ich weiß es noch nicht).
quelle
Antworten:
Ich bin überrascht, dass alle denken, das ist so eine gute Sache. Die Autoren von Peopleware (das IMO ist immer noch eines der wenigen Bücher über Software-Projektmanagement, die es wert sind, gelesen zu werden) stimmen überhaupt nicht überein. Fast der gesamte vierte Teil des Buches ist genau diesem Thema gewidmet.
Das Software- Team ist eine unglaublich wichtige Funktionseinheit. Teams müssen sich austoben, um wirklich produktiv zu werden. Es braucht Zeit ( viel Zeit), um sich gegenseitig Respekt zu verschaffen, die Gewohnheiten und Macken sowie Stärken und Schwächen des anderen zu lernen.
Aus persönlicher Erfahrung kann ich sagen, dass ich nach einem Jahr der Arbeit mit bestimmten Leuten gelernt habe, über bestimmte Dinge zu lachen, die mich früher aufgeregt haben. Meine Schätzungen als Teamleiter sind viel besser und es ist nicht allzu schwierig Verteilen Sie die Arbeit, um alle glücklich zu machen. Am Anfang war es nicht so.
Jetzt könnten Sie sagen: "Oh, aber wir trennen nicht das gesamte Team, sondern bewegen nur ein paar Leute." Bedenken Sie jedoch, (a) wie blind unproduktiv ihre Ersetzungen am Anfang sein werden und (b) wie oft Sie sich selbst oder andere Teams sagen werden, ohne überhaupt darüber nachzudenken, "Ich mochte X" oder "Das hätte gefallen" war einfacher, als Y noch da war " , die neuen Mitglieder auf subtile und unbewusste Weise zu beleidigen und innerhalb des bestehenden Teams Spaltungen zu schaffen, sogar Unzufriedenheit unter den" alten "Mitgliedern zu säen.
Die Leute machen das natürlich nicht mit Absicht , aber es passiert fast jedes Mal. Die Leute machen es ohne nachzudenken. Und wenn sie sich dazu zwingen, konzentrieren sie sich am Ende noch mehr auf das Thema und sind frustriert über die erzwungene Stille. Teams und sogar Subteams entwickeln Synergien, die verloren gehen, wenn Sie mit der Struktur herumdrehen. Die Peopleware- Autoren nennen es eine Form von "Teammord".
Das heißt, obwohl das Rotieren von Teammitgliedern eine schreckliche Praxis ist, ist das Rotieren von Teams selbst vollkommen in Ordnung. Gut geführte Software-Unternehmen sollten zwar ein gewisses Konzept von Product Ownership haben, aber es ist für ein Team bei weitem nicht so störend, das gesamte Team in ein anderes Projekt zu verschieben, solange das Team tatsächlich das alte Projekt abschließen oder es zumindest aufbringen kann Ein Level, mit dem sie zufrieden sind.
Wenn Sie Team- Pausen anstelle von Entwickler- Pausen einlegen, erhalten Sie dieselben Vorteile, die Sie von wechselnden Entwicklern erwarten würden (Dokumentation, "Fremdbestäubung" usw.), ohne die schlimmen Nebenwirkungen für jedes Team als Einheit. Für diejenigen, die das Management nicht wirklich verstehen, mag es weniger produktiv erscheinen, aber seien Sie versichert, dass der Produktivitätsverlust durch die Aufteilung des Teams den Produktivitätsverlust durch die Verlagerung des Teams in ein anderes Projekt in den Schatten stellt.
PS In Ihrer Fußnote erwähnen Sie, dass der technische Leiter möglicherweise die einzige Person ist, die nicht gedreht wird. Dies ist so gut wie garantiert, um beide Teams durcheinander zu bringen . Der technische Leiter ist ein Anführer, kein Manager, er oder sie muss den Respekt des Teams verdienen und wird nicht einfach von höheren Führungsebenen autorisiert. Ein ganzes Team unter die Leitung eines neuen Lead zu bringen, mit dem es noch nie zusammengearbeitet hat und der sehr wahrscheinlich unterschiedliche Vorstellungen von Architektur, Benutzerfreundlichkeit, Code-Organisation und Schätzung hat für die Führung, die versucht, Glaubwürdigkeit aufzubauen, und sehr unproduktiv für die Teammitglieder, die beginnen, den Zusammenhalt zu verlieren, wenn sie nicht über ihre alte Führung verfügen. Manchmal Unternehmen habenum dies zu tun, dh wenn der Lead aufgibt oder befördert wird, aber es nach Wahl zu tun, klingt verrückt.
quelle
Ich sehe hier selbst keinen großen Nachteil. Die Rotation bringt Ihnen:
Wahrscheinlich ist der einzige Nachteil der Produktivitätsabfall, den Sie durch das Wechseln von Orten erhalten, aber das sollte nur beim ersten Durchgang schlimm schaden. Danach werden beide Seiten an beiden Orten etwas Zeit haben und die hässlichen Teile der Übergabe werden wahrscheinlich besser verstanden und vielleicht gelöst.
quelle
Interessanterweise haben wir nach meiner Erfahrung unsere Projekte oft mit genau dieser Absicht begonnen. In der Folge haben wir oft versäumt, auf diese Absicht zu reagieren, weil das neuere Projekt eingeschränkt wurde und wir der Ansicht waren, dass das Cross-Training zu teuer ist.
Ich wünschte immer, wir hätten es geschafft, da ich langfristig glaube, dass es für alle Beteiligten von Vorteil ist - Team, Unternehmen, Kunde und Software. 2/3 Monate klingen lang genug, um das Risiko schwerwiegender negativer Auswirkungen zu begrenzen. Für die beteiligten Entwickler findet kein Kontextwechsel statt, außer zu dem Zeitpunkt, zu dem sie sich dem alternativen Projekt widmen können.
Einige mögliche Vorteile, die nicht erwähnt wurden:
quelle
Rotation ist eine gute Sache für das Unternehmen und kann auch eine gute Sache für die Entwickler sein.
Es gibt viele gute Gründe und Wyatt hat viele davon in seiner Antwort erwähnt.
Abgesehen davon werden Sie in Ihrer Situation möglicherweise feststellen, dass die Entwickler, die das neuere Projekt in das Legacy-Projekt überführen, möglicherweise nicht glücklich sind. Daher muss klar kommuniziert werden, warum dies geschieht und wie lange es dauert ist für und der Plan geht weiter.
Es kann sinnvoll sein, die Teams nicht zu tauschen, um 1 oder 2 Entwickler zu starten, obwohl dies so aussieht, als würden Leute für eine Herabstufung ausgewählt (was manche Leute vielleicht sehen).
quelle
Stimmen Sie mit Aaronaught überein, das ist sehr seltsam zu sehen, wie viele Leute gerade Nachteile nicht sehen. Wenige denken schlecht, dass Sie sehr schnell zeigen können - Code hat keinen Eigentümer und wenn jeder für alles verantwortlich ist, ist das nicht so gut für Qualität . Entwickler sind keine Ressourcen (auch wenn sie von Managern sehr oft so genannt werden), sie sind Menschen und für das Team ist es sehr wichtig, sich gegenseitig zu kennen. Wenn Sie für längere Zeit für ein Projekt arbeiten, werden Sie ein Experte (nicht nur auf dem Gebiet, sondern auch in diesem Gebiet). Sie wissen, woher die meisten Probleme kommen, wer Ihnen die besten Antworten oder vielleicht spezifischere Fachkenntnisse usw. liefert. Wenn Sie neu sind, müssen Sie all diese Überlegungen lernen, damit der Fortschritt verlangsamt wird. Aber natürlich ist es auch gut, andere Praktiken in Ihrer Organisation zu kennen, wie andere Teams bauen und organisieren. Es ist besonders gut, wenn Ihre Projekte in irgendeiner Weise zusammenhängen, z. B. wenn ein Projekt für ein anderes eingegeben wird (nicht direkt erforderlich), um das Gesamtbild besser zu verstehen. Und natürlich ist es gut, Fachwissen zu verbreiten (wenn Sie Zeit haben, sich dieses Wissen anzueignen).
quelle
Ich stimme der Top-Antwort von Aaronaught zu und habe einige Ergänzungen.
Der perfekte Zeitpunkt, um jemanden neu zuzuweisen, ist, wenn er sich langsam langweilt, was er gerade tut. Es gibt nichts mehr zu gewinnen, alles unter Kontrolle, die Arbeit ist erledigt. In diesen Fällen werden sie in der Regel selbst nach anderen Möglichkeiten fragen.
Natürlich ist die Realität hartnäckig und oft gibt es keine andere Wahl, es kann sein, dass jemand anders gebraucht wird, aus welchem Grund auch immer. Dies ist nicht unbedingt schlecht, es kann auch dazu führen, dass sich eine Person wichtig fühlt, und wenn die Person ein großes Problem lösen soll, wird es ihm zugute kommen.
Das bloße Herummischen von Leuten, um Wissen zu verbreiten, erhöht wahrscheinlich den Umsatz. Auf diese Weise wird Wissen verbreitet, aber es wird außerhalb des Unternehmens verbreitet, was wahrscheinlich nicht die Absicht ist.
quelle
TL; DR Machen Sie ein Team und dann ein Team, das zwei Projekte unterstützt.
@Aaronaught wiederzugeben Ich denke, das Mischen von Teams kann problematisch sein, da es einige Zeit dauern kann, sich an neue Praktiken, Prozesse usw. zu gewöhnen. Wenn Sie zu viele Personen wechseln, um schnell zu arbeiten, verliert das Team seine Identität. Dies führt zu mehr Fragen, Verwirrung und Zeitaufwand, um diese Identität auszugleichen.
Auf der anderen Seite, wenn es eine konzertierte Anstrengung gibt, die 2 Teams zu einem Team zusammenzuschließen und 1 Team 2 Projekte unterstützen zu lassen, denke ich, funktioniert das großartig, solange das Team nicht zu groß ist. Ich war Teil zahlreicher Teams, die mehrere Projekte unterstützen. Je näher die beiden Projekte an der Technologie sind, desto einfacher gestaltet sich der Übergang. Meiner Erfahrung nach entstehen die höheren Kosten für den Übergang von einem Projekt zu einem anderen, wenn Sprachen, Client / Server (insbesondere GUI), Industrie (Medizin, Web, Spiel) oder andere ähnliche Bereiche gekreuzt werden. Der Trick besteht darin, dass verschiedene Personen häufig genug an dem Projekt arbeiten, um die Vorteile zu erzielen, aber nicht so oft, dass die Übergangskosten die Vorteile übersteigen.
Dann ist der Nutzen, mehr Leute für ein Projekt zu gewinnen, ebenso bekannt wie die Kosten.
quelle
Die Rotation von Programmierern ist aus Sicht des Unternehmens und des Entwicklers eine gute Sache.
Aus Unternehmenssicht
Aus Entwicklersicht
Nur eine Hauptsache, bedenken Sie, dass,
Programmierer sollten nicht sehr häufig rotieren. Nach einer Entwicklung von 60% bis 70% ist nur eine Verlagerung von Vorteil.
quelle