Was macht einen guten Architekten / Manager / leitenden Entwickler aus?

12

Ich bin der Hauptentwickler für ein kleines Softwareunternehmen. In den letzten zwei Jahren ist mein Team von einem Entwickler (mir) auf eine Gruppe von ungefähr neun Personen angewachsen. Die meisten von uns sind sehr fähige leitende Ingenieure (über 20 Jahre Erfahrung in der Erstellung von Software pro Person), sodass im Allgemeinen nur sehr wenig Handarbeit erforderlich ist. Wir verwenden Scrum, um unsere Bemühungen zu verwalten, und normalerweise erledigen wir eine Menge schnell mit minimalen schriftlichen Anforderungen.

Mit dem Anwachsen des Teams habe ich den Punkt erreicht, an dem es für mich schwierig ist, die technische Kontrolle über das gesamte Projekt zu behalten und gleichzeitig eine erhebliche Menge an neuem Code selbst zu schreiben. Daher ist es Zeit für mich, meine Rolle anzupassen. Wie kann ich mich für das Team am nützlichsten machen, wenn ich nicht mehr die meiste Zeit damit verbringe, mich weiterzuentwickeln?

Mein Ziel ist es, meiner Gruppe durch Hinzufügen weiterer Entwickler ein noch größeres Wachstum zu ermöglichen (dh die Scrum-Geschwindigkeit zu erhöhen) , damit ich nicht einfach die "Architekturpolizei" werden möchte, die dem Team meinen Willen aufzwingt. Mit anderen Worten, ich möchte der Typ sein, der dazu beiträgt, dass die Dinge besser und reibungsloser funktionieren, anstatt der Typ zu sein, der die Dinge verlangsamt, indem er eine unnötige Bürokratie hinzufügt. Eines unserer Hauptrisiken besteht jedoch darin, dass die Dinge außer Kontrolle geraten, wenn wir mehr Leute hinzufügen, ohne über genügend Struktur zu verfügen, um uns alle auf derselben Seite zu halten.

Was ist der beste Weg, um mein Ziel zu erreichen?

brianberns
quelle
6
Ich bin mir nicht sicher, ob dies eine Antwort ist, aber ich möchte, dass Sie das Team organisiert halten und Ihr Management ein wenig personalisieren. Wissen, woran sie arbeiten, auf dem Laufenden bleiben, woran sie arbeiten usw. Wenn Sie sie nicht als Gruppe organisieren, nehmen Sie an Codeüberprüfungen teil, helfen Sie beim Schreiben von Modulen, die zusätzliche Hilfe benötigen, und vielleicht Zeit mit einzelnen Entwicklern verbringen. Ich hatte ein oder zwei Manager, die nicht hilfsbereit waren und nicht bei uns eingecheckt haben, um zu sehen, wie es lief - aber auch nicht wissen wollten (ja, schlechter Manager).
Simon Whitehead
Ich denke, die Rollen, die Sie im Titel erwähnt haben, haben alle unterschiedliche Besonderheiten und setzen unterschiedliche Fähigkeiten ein. Welches ist es?
Euphoric
3
Detaillierte Anforderungen und "unnötige Bürokratie" sind nicht dasselbe. Die Anforderungen können Ihr Leben retten, insbesondere wenn Sie mit einem großen Team zusammenarbeiten. Unterschätze ihre Macht nicht.
SuperM

Antworten:

12

Wenn Sie in einem Team wie diesem wären, was möchten Sie, dass Ihr Chef mit seiner Zeit umgeht?

  1. Hindernisse für den Fortschritt beseitigen.
  2. Schlichtung von Streitigkeiten zwischen Teammitgliedern.
  3. Interagieren Sie mit Geschäftsleuten, damit wir nicht müssen.
  4. Halten Sie uns auf dem Laufenden, damit wir uns nicht isoliert fühlen.
  5. Halten Sie uns ehrlich, besonders wenn ein schlechter Apfel ins Team kommt.
  6. Seien Sie ein Anwalt des Teams für andere Abteilungen.
  7. Seien Sie die einheitliche Stimme des Push-Backs gegen unvernünftige Geschäftsanfragen.
  8. Erleichtern Sie die Kommunikation im Team.

Es gibt wahrscheinlich ein paar, die ich vergesse, aber das ist der Kern davon. Implementieren Sie keinen Prozess, sondern bewältigen Sie einen Teil des Overheads / der Ineffizienz, die sich mit zunehmender Teamgröße auf natürliche Weise entwickelt.

Telastyn
quelle
5
Ich kann nicht anders, als das Gefühl zu haben, dass diese Liste sehr negativ ist. Das ist wie "Beschütze mich vor schlechten Sachen." Was ist mit positiven Auswirkungen?
Nicole
1
@ NickC Ich dachte, das obige gehört zum Job des Managers. Was meinen Sie mit positivem Einfluss ?
B 24овић
2
@nickC eh, ich neige dazu, die Dinge negativ zu beurteilen, aber meiner Erfahrung nach hat die Reduzierung der negativen Auswirkungen die größten positiven Auswirkungen auf die Produktivität und die Moral eines Teams. Vor allem, wenn Sie Bedenken haben, Menschen mit Prozessen zu belasten.
Telastyn
@ NickC Ich stimme Telastyn voll und ganz zu. Am Ende wird in seiner Liste möglicherweise nur hervorgehoben, was Entwicklern droht, wenn sie keinen technischen Vorsprung haben. Obwohl mehr positive Punkte hinzugefügt werden könnten, d. "Gute Techniker haben eine Gesamtvision für die technische Ausrichtung des Produkts und stellen sicher, dass das Team sie versteht. Sie delegieren Funktionsbereiche an andere Teammitglieder und überlassen ihnen ihre Entscheidungen. Sie erkennen, dass ihre Teammitglieder klug sind, vertrauen ihnen. und verlassen Sie sich darauf, dass sie wichtige Teile des Projekts bearbeiten. " siehe engineering.foursquare.com/2014/01/30/…
Adrien Be
6

Ich hätte keine Probleme mit einem Teamleiter, der sowohl Management- als auch technische Aufgaben in Einklang bringen kann, aber es ist schwierig, Leute zu finden, die diese Balance gut verwalten.

Wenn ich mich zwischen den beiden Extremen eines Teamleiters in einem wachsenden Team entscheiden müsste ... ist das eine sehr schwierige Entscheidung, aber letztendlich würde ich mir wünschen, dass der Teamleiter mehr zu einem Manager wird. In einem großen Team würde man hoffen, dass es andere Kandidaten geben würde, die in die Rolle eines Senior-Entwicklers schlüpfen könnten, um die neueren Mitglieder des Teams zu fördern und dennoch einiges an Entwicklungsarbeit zu leisten.

Aber in einem wachsenden Team möchte man auf jeden Fall auch einen guten Manager. In der Tat ist es wichtig, eine gute Person mit dem Management-Titel zu haben, weil Sie möchten, dass sie genug Macht hat, um gute Entscheidungen zu treffen. Ein guter Manager hat einen großen Einfluss auf das Glück eines Teams und genau aus den Gründen, die Sie angeben. indem wir ihnen helfen, produktiv zu bleiben - und gut für Sie, wenn Sie so denken, wie Sie sind. Es gibt viele Manager, die einer Ratte nicht den Arsch geben.

Ich würde ein paar andere Beiträge hier bei Programmers empfehlen. Obwohl sie sich mehr an einem Teamleiter als an einer offiziellen Führungsrolle orientieren, können sie helfen:

Wechsel zu Team Leading

Wie kann ich als leitender Entwickler erfolgreich sein?

Wie kann man Teammitgliedern Respekt als Teamleiter einbringen?

Bernard Dy
quelle
"Ein guter Manager hat großen Einfluss auf das Glück einer Mannschaft": Ich glaube, Sie haben Recht, aber dies wirft eine andere Frage auf: "Kann eine Mannschaft auch mit einem nutzlosen Manager glücklich sein?"
Adrien Be
4

Ich denke, es ist ein Gleichgewicht dieser Eigenschaften:

  • Technische Fähigkeiten : Sie möchten nicht, dass eine Führungskraft die Qualität der von ihr geleiteten Arbeit nicht beurteilen kann.
  • Selbstgesteuert : Kann Ziele definieren und nicht reaktiv sein.
  • Kann aus Konflikten Kapital schlagen : Konflikte lösen Gespräche aus
  • Autodidaktisch : Es ist nicht wichtig, dass er / sie alles weiß, sondern wie man lernt.
  • Gute Einstellung und Energie : Sie wollen jemanden, der motiviert und die Arbeit aller erleichtert, keine Diva, die Befehle bellt.
  • Erfahrung mit Versagen : Möglicherweise die wichtigste. Ich habe sehr junge Führungskräfte gesehen, die mit all den vorherigen vielleicht kein Problem haben, aber beim ersten Anzeichen eines Scheiterns frieren sie ein oder vermeiden Verantwortung. Seniorität hat nichts mit Alter zu tun, aber die richtige Menge der richtigen Erfahrung, und Misserfolg ist definitiv etwas zu berücksichtigen.

OTOH, das Interview ist ein wichtiger Teil, um die richtige Person zu finden. Ich empfehle Ihnen, die folgenden Fragen im Interview zu stellen:

  • "Erzählen Sie mir ein Projekt, in dem Sie gescheitert sind, wie Sie es geschafft haben und was Sie daraus gelernt haben."
  • "Erzähl mir von einem Mal, als du die Regeln gebrochen hast, um Dinge zu erledigen."
  • Wenden Sie den Fizz Buzz- Test mit jeder erdenklichen leichten Drehung an.

Der FizzBuzz-Test ist ein absolutes Muss. Richtig oder falsch zu sein, ist nicht so wichtig wie:

  • Die Zeit, die er / sie benötigt, um zu antworten : 15 Minuten Durchschnitt, 30 Minuten Grenze ok,> 30 Minuten NICHT OK
  • Wenn er / sie in der Lage ist, seinen / ihren eigenen Code zu debuggen : Ich hatte einmal einen Mann mit 15 Jahren Erfahrung, der sich für eine leitende Position bewarb ... er brauchte 40 Minuten, um den Test durchzuführen ... im Pseudocode ... bekam es falsch und konnte nicht herausfinden warum. Ich hatte einen anderen Fall, in dem ein anderer Mann ungefähr 5 Minuten damit verbracht hatte, sich zu rechtfertigen und nicht akzeptieren konnte, dass er sich überhaupt geirrt hatte.
dukeofgaming
quelle
1
+1. Jeder muss lernen können.
SuperM
Der FizzBuzz-Test dient dazu, Menschen mit dem so genannten zu eliminieren inertia of mind, nicht wahr ? Nachdem wir uns eine Weile mit komplizierten Problemen befasst haben, können die meisten von uns keine einfachen Lösungen für einfache Probleme sehen.
SuperM