Ich arbeite in einem Team, das seit seiner Gründung vor einigen Monaten organisatorisch flach war. Mein Manager ist nicht technisch und das bedeutet, dass unser gesamtes Team für die Entscheidungsfindung verantwortlich ist.
Mein Vorgesetzter beginnt zu begreifen, dass ein leitender Entwickler mehrere Vorteile hat, sowohl für sich selbst (einen einzigen Ansprechpartner und einen einzigen Verantwortlichen für Aufgaben) als auch für uns (Streitbeilegung, organisierte technische Beratung usw.).
Da das Team flach war, besteht eine Sorge darin, dass die Auswahl eines Hauptentwicklers die anderen entmutigen könnte. Ein Nicht-Entwickler schlug meinem Vorgesetzten vor, dass das Rotieren des Hauptentwicklers ein möglicher Weg ist, um dieses Problem zu vermeiden. Ein Entwickler würde einen Monat, ein anderer den nächsten führen und so weiter.
Ist das eine gute Idee? Warum oder warum nicht?
Denken Sie daran, dass dies bedeutet, dass alle Entwickler - Alle Entwickler sind gut, aber nicht unbedingt gleichermaßen für die Führung geeignet.
Und wenn nicht , wie kann ich empfehlen, diesen Ansatz zu vermeiden, ohne den Eindruck zu erwecken, dass er nur aus egoistischen Gründen erfolgt?
Antworten:
Dreh dich nicht.
Ich glaube nicht, dass irgendjemand etwas von der Position profitiert, die gedreht wird (abgesehen von denjenigen, die es nicht verdienen, die Führung zu übernehmen, erhalten sie möglicherweise mehr Geld als sie derzeit erhalten).
Ein brillanter Hauptentwickler, der Folgendes kann, wirkt sich positiv auf den Entwicklungsprozess aus:
Er ist eine einzige Quelle für den Rest des Teams, zu der er aufschauen und Rat einholen kann. Er ist auch der Mittler zwischen dem höheren Management und dem Kernentwicklungsteam. Ich kenne kein Führungsteam, das gerne mit Veränderungen umgeht (es sei denn, es ist das, was sie auslösen).
Wenn Sie wirklich am besten für die Position geeignet sind, würde das jeder wissen. Jeder würde das wissen (z. B. übergeordnetes Management, Ihr Teamkollege usw.). Stellen Sie fest, dass Sie das Drehen der Position nicht für sinnvoll halten (wenn Sie das glauben). Dann lehnen Sie sich zurück und lassen Sie sie die Ernennung machen - verzichten Sie auf das Fallenlassen von Namen oder jegliche Art von Eigenwerbung, da dies Sie unprofessionell erscheinen lassen würde
quelle
Es gibt zwei Teile, um ein leitender Entwickler zu sein:
Technische Leitung Für die technische Leitung ist es sinnvoll, auf Projektebene einen anderen Hauptentwickler zu wählen. Machen Sie jeden Entwickler zum technischen Leiter für ein anderes Projekt, und drehen Sie ihn bei Bedarf, wenn sich Projekte drehen. Diese Art von Ansatz kann mit der Teamdynamik umgehen und sicherstellen, dass alle angemessen herausgefordert werden
Kommunikation Ein einziger Kontaktpunkt für die Kommunikation mit der Außenwelt ist gut für die Außenwelt und schlecht für den Kontaktpunkt. Wer mit dem Kommunikationsball nicht weiterkommt, hat weniger Zeit für echte Arbeit und muss herumlaufen, um Informationen von allen zu erhalten, die weitergegeben werden sollen. Wenn Sie der beste Kommunikator sind und bereit sind, nicht mehr so viel Spaß an der Arbeit zu haben, als Gegenleistung für all das Reden, dann haben Sie mehr Kraft.
quelle
Das ist nicht unbedingt eine schlechte Idee, vorausgesetzt, die beteiligten Entwickler sind engagiert und (idealerweise) fähig.
Ich habe Probleme, Referenzen dafür zu finden (aber ich werde weiter nachsehen), aber wenn ich mich richtig erinnere, tun dies einige agile Unternehmen - sie tauschen den Titel "Teamleiter" entweder bei jeder Iteration oder zu einem anderen vordefinierten Zeitpunkt Zeitraum. Dies fördert die Einbeziehung der Entwickler und gibt jedem die Möglichkeit, einen Teil der Teamverwaltung / externen Kommunikation zu übernehmen, ohne einen Entwickler dauerhaft von der Entwicklung in diese Rolle zu bewegen.
Zu den Nachteilen zählen der potenzielle Informationsverlust (der auf verschiedene Weise gemindert werden kann) und das höhere Potenzial für "schlechte" Führung. Es kann auch schwierig sein, eine Vision / Richtung für das Team beizubehalten. Wenn jedoch alle mit diesem Ansatz einverstanden sind und die Teammitglieder sich auskennen und daran interessiert sind, ein solches System zum Laufen zu bringen, ist es möglicherweise einen Versuch wert.
quelle
Wenn Sie rotieren, tun Sie dies nicht während eines Projekts. Es ist an sich nichts Falsches daran, unterschiedlichen Personen für unterschiedliche Projekte unterschiedliche Rollen zuzuweisen, je nachdem, wer für die jeweilige Position für das jeweilige Projekt am besten geeignet ist. Aber machen Sie Joe nicht zum "Hauptprogrammierer", nur weil es seine Zeit ist, den Job auszuführen. Er ist möglicherweise nicht in der Lage dafür, er möchte möglicherweise nicht einmal den Job.
quelle
Es ist eine schlechte Idee, den Hauptentwickler nach Zeit zu drehen.
Jeder ist ein guter Entwickler bedeutet nicht, dass jeder ein guter Anführer ist. Und ein guter Leiter bedeutet nicht, dass er für den Leiter dieses Programms geeignet ist.
Ich denke, die Bedeutung der den Entwicklern zugewiesenen Missionen ist unterschiedlich, und die Führung jedes Entwicklers ist unterschiedlich. Ich denke, Sie können Ihrem Manager raten, eine Abstimmung abzuhalten. Jede Stimme 2 Personen für den besten Kandidaten, und die Person, die die meisten Stimmen bekommt, sollte der führende Entwickler sein
quelle
Ich bin geneigt, Jonathan Khoo zuzustimmen, dass es eine schlechte Idee sein könnte, den Hauptentwickler zu wechseln. Im Allgemeinen gibt es bei größeren Projekten einen einzigen technischen Leiter des Projekts, und dieser Person können mehrere Komponentenleiter zur Besprechung verschiedener systemweiter Probleme unterstellt sein.
Ein wichtiger Punkt, den Jonathan jedoch nicht erwähnt hat, ist, dass der technische Leiter auch ein hohes Maß an institutionellem Wissen entwickelt, das andere am Projekt möglicherweise nicht haben. Durch Drehen des technischen Leiters müssen sie dieses Wissen jedes Mal entwickeln, wenn jemand in die Position gedreht wird. Darüber hinaus wird der Lead ein Verhältnis zu den Kunden außerhalb des Projekts aufbauen, da diese idealerweise bei einigen (größeren) Besprechungen mit den Endbenutzern anwesend sein sollten.
Einen technischen Vorsprung zu haben, ist gut, aber wenn Sie versuchen, ihn herauszudrehen, stellen Sie möglicherweise fest, dass Sie ohne einen besser dran sind.
quelle
Ich denke, man muss zuerst herausfinden, welche Rolle diese Person spielt, mehr als wer und wie lange.
Sie müssen auch feststellen, ob dies die Art und Weise, wie der Rest von Ihnen arbeitet, erheblich verändern wird und ob dies Ihre Leistung mindert. Wenn eine Person jede Zeile Ihres Codes "genehmigen" muss, kann dies schwerwiegende Folgen haben.
Verschiedene Teammitglieder können unterschiedliche spezifische Rollen erhalten, ohne dass einer von Ihnen "überlegen" ist. Demjenigen, der am besten in der Kommunikation zwischen dem Manager und anderen ist, wird möglicherweise eine bestimmte Rolle zugewiesen. Dies bedeutet jedoch nicht, dass er ein "leitender Entwickler" ist, und er ist möglicherweise nicht derjenige, der technisch am besten oder am besten in der Lage ist Code-Reviews durchführen.
quelle
Ich wäre bereit zu wetten, dass die Mannschaft zwar scheinbar flach ist, aber bereits ein Anführer unter ihnen ist, UND alle wissen es bereits.
Organigramme geben selten wieder, wie Menschen tatsächlich arbeiten. Besonders idealisierte Charts wie "ein flaches Team".
quelle
Wenn Ihre Organisation flach ist, lassen Sie alle Entwickler die RSA-Schulung (Requirements and Solutions Analysis) durchlaufen, damit sie einem formellen Prozess folgen. Sie können dann einem Projekt mehrere Fachexperten (KMU) zuweisen und einen dokumentierten Prozess für die gesamte Lösung erstellen.
Da Sie erwähnt haben, dass der Manager nicht technisch ist, kann diese Person den RSA-Prozess weiterhin steuern und die Kommunikation erleichtern. Sie können einem bestimmten KMU auch projektweise einen Projektleiter zuweisen, um die Moderation zu unterstützen und seine individuellen Fähigkeiten zu verbessern.
quelle
Warum stimmt das Entwicklerteam nicht anonym ab? Ich würde die Vorzugsabstimmung verwenden.
quelle
PS Ich denke nicht, dass das Drehen eine gute Idee ist. Die Person muss über Kommunikationsfähigkeiten verfügen und über gute Erfahrung in der Leitung eines Teams verfügen.
quelle
Wie Ihre Frage nahelegt, ist das gesamte Team für die Entscheidungsfindung verantwortlich. Ich schlage vor, Sie können es genauso lassen. Für die Kommunikation und Berichterstattung an Behörden außerhalb des Teams kann jedoch ein Teamkoordinator im Team ausgewählt werden. Zu seinen Aufgaben gehört alles, was nicht technisch ist. Bei allen technischen Aspekten sollte das Team so sitzen und diskutieren, wie Sie es gerade tun. Welche Entscheidung Sie auch treffen, sie wird der Außenwelt über den Koordinator mitgeteilt . Diese Position kann einfach und zeitabhängig gedreht werden.
Der andere Ansatz kann darin bestehen, einen leitenden Entwickler zu haben, der auf der Erfahrung> Erfahrung mit demselben Projekt> Erfahrung in demselben Unternehmen basiert. Bei Bedarf kann die Position von Phase zu Phase gedreht werden. Im Idealfall hat jede Entwicklungsphase ihre eigenen Anforderungen und Ergebnisse, die als Miniprojekt geplant und bearbeitet werden können. Eine unterschiedliche Ableitung für jede Phase würde fast alle negativen Auswirkungen der Rotation minimieren.
quelle
Anstatt einen rotierenden Hauptentwickler zu haben, sollten Sie einen rotierenden Projektleiter haben, der das meiste Wissen und Verständnis hat, um das x-Projekt zum Abschluss zu bringen.
Hauptentwickler ist normalerweise eine Beförderung und sollte verdient werden.
Um die Führungsqualitäten zu trainieren und weiterzuentwickeln, müssen Sie die Verantwortlichen für die verschiedenen Projekte wechseln und dann klar abschätzen, wie gut sie waren oder nicht.
quelle
Es muss einen Teamleiter geben, genauso wie es einen Kapitän auf einem ausreichend großen Schiff gibt.
Wenn der Manager diese Rolle nicht ausfüllt oder nicht ausfüllen kann, muss einer der Entwickler damit beauftragt werden.
quelle
Ich denke, Sie sollten zuerst gemeinsam erkennen, wie viel Glück Sie haben, alle technischen Entscheidungen innerhalb des Entwicklungsteams zu treffen. Wie viele Teams leiden unter der Last einer Mikromanagement-Hierarchie, die ihnen ihre technischen Launen aufdrängt, was häufig zu inkonsistenten Entscheidungen, Kompatibilitäts-Albträumen und Frustration der Entwickler führt ...
Zu den Vorteilen eines Entwicklers, den Sie erwähnen, sollten einige von ihnen (organisierte technische Beratung ...) bereits stattfinden, wenn es tatsächlich eine von Natur aus herausragende Person in Bezug auf technische Fähigkeiten gab. Wenn dies der Fall ist, kann ich nicht sehen, wie offiziell diese Person zu einem leitenden Entwickler gemacht wird, der bessere Ergebnisse liefert als die, die Sie jetzt erhalten. Wenn es in Ihrem Team kein solches Teammitglied gibt, kann ich nicht sehen, wie eine offizielle Vergabe technischer Befugnisse an eine Person zu besseren Ergebnissen führen würde als Diskussionen und kollektive Entscheidungen.
Ich sehe viel mehr Wert darin, einen Organisationsleiter zu etablieren - einen Koordinator, wie Dänisch es ausdrückte. Kein Manager, kein Chef, sondern jemand, der den kollektiven Entscheidungsprozess organisiert und als Sprecher des Teams fungiert, als Schnittstelle nach außen. Wenn Sie so vorgehen, kann eine Rotation eine gute Idee sein, um die oben genannten Probleme zu vermeiden - Gehaltsunterschiede, Eifersucht ...
quelle
Manchmal ist es eine größere Verantwortung als etwas anderes, ein Führer zu sein. Jemand MUSS Verantwortung für Entscheidungen übernehmen, so funktioniert die Gesellschaft, wenn es niemand anderes tun will.
Die Tatsache, dass ein Team den Anführer wechseln möchte, kann bedeuten, dass jeder das Gefühl hat, Verantwortung für das übernehmen zu können, was er tut, und sie möchten niemanden bevorzugen, und es scheint eine gute Sache zu sein: Es gibt keine harten Gefühle, und Jeder möchte, dass das Team erfolgreich ist.
In diesen Fällen müssen Sie bei schwierigen Entscheidungen nur abstimmen. Wenn Sie einen Vertreter benötigen, der mit anderen Personen spricht, müssen Sie nur jemanden wählen, der über die besten Kommunikationsfähigkeiten verfügt.
quelle
Zuallererst denke ich, dass Sie die Rollen trennen müssen. Es gibt keinen Grund, dass die Person, die als Kontaktstelle zwischen dem Team und dem Rest des Unternehmens fungiert, notwendigerweise auch die Person sein muss, die die endgültigen technischen Entscheidungen trifft.
Die Rolle des Ansprechpartners sollte keine Befugnisse verleihen, sodass es nicht erforderlich sein sollte, die Verantwortung nach einem festen Zeitplan zu wechseln. Ich würde sagen, dass das Team sich hinsetzt, jeder sagt, wie sehr es ihm etwas ausmacht, die Arbeit zu erledigen (manche mögen es, andere lehnen es entschieden ab), und dann jemanden wählen, der die Rolle ausfüllt. Machen Sie sich klar, dass sie es jemand anderem überlassen können, wenn sie es satt haben.
Wie für die technische Lead-Seite. Wenn jeder die gleichen Fähigkeiten und ungefähr das gleiche Niveau an Erfahrung hat, sollte jeder versuchen, eine Führungsposition einzunehmen. Wichtig ist, dass Sie während des Projekts nichts ändern. Warten Sie bis zum Start eines neuen Projekts, und wählen Sie dann nach dem Zufallsprinzip den Lead aus, der die meiste Erfahrung in diesem Bereich hat.
quelle