Ist es eine gute oder eine schlechte Idee, den Hauptentwickler zu wechseln?


31

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?


7
"Der derzeitige Hauptentwickler ist imaginär. Bitte drehen Sie ihn um 90 Grad und versuchen Sie es erneut."; O)
Piskvor

14
Ich werde es nicht empfehlen, das könnte ihn schwindelig machen.
Gaurav

Antworten:


31

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:

  1. Kann delegieren.
  2. Hat die Kontrolle.
  3. Ist ein erfahrener Entwickler.

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


@ Jonathan Khoo: Ihre Antwort scheint zu lauten "Vergiss ein flaches System, stell einen Rockstar-Entwickler ein".

3
@moz - Vielleicht kein Rockstar-Entwickler, aber sobald ein Projekt eine bestimmte Größe erreicht, ist es sinnvoll, einen primären Ansprechpartner zu haben, der den Verwaltungsaufwand übernimmt. Dies kann auch nur ein Projektmanager sein, der keine Entwicklungsarbeit leistet.
rjzii

2
Wenn es sich um ein flaches Team handelt, erhält der "Hauptentwickler" keine höhere Bezahlung als der Rest. Er hat die Verantwortung, aber nicht die Vorteile einer Führungsposition. Das ist in der Tat die Realität in fast jedem Team , das ich je gearbeitet habe.
jwenting

6
@moz: Ein Rockstar wäre in dieser Position verschwendet, da vieles, was der leitende Entwickler tut, nicht mit Programmieren zu tun hätte. Erfahrung ist nützlich, da sie es dem Leiter ermöglicht, Mentor zu werden, und ihm oder ihr die Fähigkeit verleiht, effektiv zu führen, aber Sie möchten wahrscheinlich nicht, dass Ihr produktivster Entwickler Zeit für Besprechungen mit dem höheren Management verbringt.
David Thornley

1
Ich finde, dass Manager-Typen, die wissen, worum es bei der Codierung geht (sie können Code lesen, wissen, was Tabellen und Datenbanken sind, wissen, was ein TCP / IP-Socket ist, haben möglicherweise zuvor codiert), für diese Rollen am besten geeignet sind. Es ist immerhin eine Menge Papierkram damit verbunden, und sie sind daran gewöhnt.
Vincent Vancalbergh

11

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.


Wäre es also nicht möglich, diese beiden Rollen zu teilen? Oft ist der beste Kommunikator technisch nicht der beste. Ich habe die beste "Pair Programming" Situation gefunden, wenn sich jeder in einer dieser Situationen auszeichnet
CashCow

Kann bestätigen. Ich habe meine erste Hauptrolle vor 6 Monaten angenommen (Team von 12 Entwicklern) und noch nie so viel Zeit damit verbracht, nicht so viel zu programmieren wie jetzt. Meist nur Mentoring, Management und Berichterstellung nach oben.
Herr JavaScript

6

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.


Ich glaube nicht, dass Sie JEDEN Entwickler unbedingt in die Teamleitung versetzen möchten, aber ich würde erwarten, dass ein erfahrener Entwickler in der Lage ist, diese Aufgaben zu übernehmen. Ehrlich gesagt ist es ein undankbarer Job, und es geht mehr darum, die Last zu teilen und zu vermeiden, dass eine Person verbrannt wird. Ich denke auch, dass es Ihnen helfen wird, die Vorteile Ihres Teams mit flachen Orgeln im Blick zu behalten, wenn Sie nicht nur einen Entwickler als permanenten Leiter haben.
MebAlone

"Einige Nachteile sind potenzieller Informationsverlust (dies kann auf verschiedene Arten gemindert werden) und ein höheres Potenzial für" schlechte "Führung: Was ist mit einer Rotation nur bei ausgewählten Entwicklern? Dies könnte dieses Problem vermeiden.
Adrien Be

1
@AdrienBe Sie müssten noch Informationen zwischen ihnen übertragen. Wenn sie nicht die ganze Zeit zur gleichen Zeit führen (was den Zweck zunichte macht), müssen Sie dies berücksichtigen. Sie könnten auch andere Entwickler im Team entfremden, die überhaupt nicht führen können und sich ausgelassen fühlen.
Adam Lear

5

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.


4

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


3

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.


2

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.


2

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".


2

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.



1
  1. Sie können jemanden aus Ihrem Team auswählen, der Ihr Team leitet.
  2. Ihr Chef kann eine andere erfahrene Person einstellen, die diese Position einnimmt

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.


1

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.


1

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.


0

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.


0

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 ...


0

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.


-1

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.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.