Wie kann ich als Hauptentwickler erfolgreich sein?

47

Ich bin der Hauptentwickler in einem bestimmten Projekt geworden, aber ich habe Schwierigkeiten, mich auf das Gesamtbild zu konzentrieren und sicherzustellen, dass alle Teile des Projekts abgedeckt sind.

Was muss ich bei der Projektverwaltung beachten? Wie kann ich sicherstellen, dass alles so behandelt wird, wie es sollte?

NichtUebel
quelle
3
Bitte erläutern Sie: "Es fällt mir schwer, den Überblick und das Gesamtbild eines Projekts zu behalten." Was ist schwierig? Was lenkt dich ab? Welche Probleme haben Sie? Was möchten Sie lieber machen?
S.Lott
Kannst du deine Situation genauer beschreiben? Ist es ein großes Team? Was erwarten Sie als Lead? (Technische Leitung? Bereichsverwaltung? Architektur und Design?) Gibt es einen Projektmanager? Produktmanager?
Al Biglan
1
Nicht lange genug, um eine echte Antwort zu sein, aber einige Leute sind einfach nicht für diese Rollen geeignet. Ich sehe das oft.
Bill

Antworten:

53

Ich habe diese Reise mit anderen Entwicklern gesehen, als sie den Übergang zu Senior oder Lead machten. Hier sind einige Vorschläge, die ich anderen gemacht habe.

  • Verstehe, was das Ziel des Projekts ist.

Oft geht es nicht um alle Features, die in das Projekt gepusht wurden. Es geht um eine Reihe von Kernfunktionen, die auf die Anforderungen eines Unternehmens zugeschnitten sind. Denken Sie immer daran, denn das ist Ihr vorrangiges Ziel.

  • Teilen Sie auf, was erledigt werden muss, in Aufgaben. Verstehen Sie die Abhängigkeiten zwischen ihnen.

Das Aufteilen eines Projekts sollte ziemlich einfach sein. Teilen Sie es so früh wie möglich im Projekt auf. Wenn Sie Teile beschönigen müssen, müssen Sie verstehen, dass sie ein Risiko darstellen, bis Sie verstanden haben, was zu tun ist.

  • Verstehen Sie die offenen Fragen oder Unklarheiten des Projekts.

Sie können zunächst nicht alle Unklarheiten auflösen (obwohl Sie es versuchen sollten). Stellen Sie sicher, dass Ihr Manager und die Projektbeteiligten verstehen, was sie sind und welche Risiken sie für das Projekt darstellen.

  • Geschäft hasst Überraschung.

Stellen Sie sicher, dass jeder weiß (im Idealfall täglich, aber wöchentlich), wie der Status des Projekts ist. Und mit Status meine ich, was getan wurde, was noch zu tun ist, offene Fragen, Probleme usw. Alles, was sich auf den Abschluss des Projekts auswirken kann, sollte gemeldet werden.

  • Gehen Sie jeden Tag das große Ganze durch.

Sie sollten jeden Tag eine Stunde lang das Gesamtbild durchgehen. Stellen Sie sich die Fragen. Was wurde erledigt? Was ist noch zu tun? Was sind die offenen Fragen? Was ist das ziel Sie sollten in der Lage sein, jemandem auf Anfrage einen detaillierten Status des Projekts mitzuteilen.

dietbuddha
quelle
5
+1 hauptsächlich für die letzten zwei Punkte. Diese beiden sind äußerst wichtig.
Konfigurator
42

Der erste Ratschlag, den ich Ihnen geben werde, ist zu akzeptieren, dass das Management des Teams wichtiger ist als das Ausführen Ihrer eigenen Programmieraufgaben. Das bedeutet, wenn Sie 3 Junioren haben, die Hilfe benötigen, ist es Ihre Aufgabe, nicht darüber zu jammern, wie es Sie von der Entwicklung abhält. In der Folge werden Sie häufig zum Hindernis für Fortschritte, wenn Sie sich zu sehr auf Ihre eigenen Entwicklungsaufgaben konzentrieren.

Außerdem müssen Sie das Delegieren lernen. Es ist schwer, jemandem Aufgaben zu geben, wenn Sie dies in einer Stunde problemlos erledigen können und Sie wissen, dass er einen Tag lang ins Wanken geraten wird. Sie werden jedoch niemals weiterkommen, es sei denn, sie bekommen die Aufgaben und Sie machen Überstunden, während Ihr Team Spiele spielt.

Korrigieren Sie außerdem niemals nur den Code eines anderen. Sagen Sie ihnen, was falsch ist (und warum) und lassen Sie sie es beheben. Oder Sie werden in einen Kreislauf geraten, in dem Sie alles reparieren müssen, weil es nicht besser wird. Wenn sie es nicht reparieren können, überlegen Sie, ob sie im Team bleiben sollten. Lass schwache Teammitglieder nicht bleiben, weil du alles reparierst, was sie tun.

Als Hauptdarsteller wirst du der Bösewicht und gibst ihnen die unangenehmen Neuigkeiten (sowohl aufwärts als auch abwärts der Kette). Das gehört auch zum Job. Das bedeutet, dass Sie die schlechte Leistungsbeurteilung durchführen müssen. Sie müssen ihnen mitteilen, dass die Frist verschoben wurde oder sich die Anforderungen geändert haben. Sie müssen den faulen Kerl schieben, der keine Fortschritte macht; und Sie müssen Ihren Vorgesetzten mitteilen, wann die Frist nicht eingehalten wird und warum und was Sie dagegen tun. Führung bedeutet nicht, gemocht zu werden, sondern effektiv zu sein. Ihre Aufgabe ist es, Software herauszubringen und keine Freunde zu finden. Kommunikation ist der Schlüssel und das Vermeiden der schlechten Nachrichten verschlimmert die Situation. Es ist weitaus wahrscheinlicher, dass ein Kunde mit der Meldung um drei Wochen pro Monat vor dem Start fertig wird, als wenn der Starttermin verstrichen ist, und Sie sagen ihm, dass Sie drei weitere Wochen benötigen.

HLGEM
quelle
1
Großartige Gedanken.
Roy Tinker
8
auch eine gute Übersicht darüber, warum die Leute den Job im Allgemeinen nicht wollen.
Kevin
2
@ Kevin, nur selten ist die Gehaltserhöhung die zusätzliche Verantwortung des technischen Leiters wert und im Allgemeinen nur dann, wenn Sie zu einem Job befördert werden möchten, bei dem es sich nur um das Management handelt. Wenn du technisch bleiben willst, habe ich gesehen, dass viele Leute zu Technologieführern wurden und danach fragten, ob sie wieder leitende Entwickler wären.
HLGEM
31

Hier ist meine informelle Checkliste. Es ist sehr informell ... Ich mache nicht alles jeden Tag, aber wenn ich nicht alle diese Dinge wöchentlich geschlagen habe, mache ich mir ein wenig Sorgen, und wenn ich sie nicht monatlich geschlagen habe, sollte ich in Panik geraten. Die Laufleistung variiert je nach Unternehmenskultur / Teamkultur, persönlichem Stil und Art des Projekts.

  • Sprechen Sie individuell mit dem Team - hat jeder in Ihrem Team nützliche Arbeit zu leisten? Wissen Sie, was das übergeordnete Ziel des Produkts und der aktuellen Version ist? Wissen sie, wie Sie Geld verdienen und was der Hauptschub Ihres Geschäfts ist? Wissen sie, wie ihre aktuelle Arbeit dazu passt?

  • Sprechen Sie gemeinsam mit dem Team - stellen Sie alle wichtigen Neuigkeiten zusammen, stellen Sie Gruppen zusammen, um sicherzustellen, dass die Kommunikation mit und ohne Sie stattfindet. Als kleines Team handelt es sich wahrscheinlich um Gruppenstrategiesitzungen. Wenn das Team größer wird, müssen Sie es durch die wichtigsten Punkte führen, und es wird unweigerlich zu einem Gesprächsszenario. Das ist nicht falsch - es gibt Zeiten, in denen es sehr wichtig ist, dass jeder hört, dass Sie die öffentlichen Informationen zu jedem sagen . So weiß jeder, dass Sie die Informationen allgemeinhin geben. Aber das "Sie - zu - alle" - Treffen unterscheidet sich sehr von dem Gruppenstrategietreffen, bei dem Sie eher ein Führer sind.

  • Probieren Sie die Arbeit des Teams aus - versuchen Sie, sich einen Überblick über die Arbeit aller zu verschaffen. Lesen Sie ihren Code, führen Sie ihre Funktionen aus und testen Sie ihre Testfälle. Zielen Sie nicht zu 100% auf die Arbeit aller, sondern probieren Sie ein bisschen von allen. Geben Sie ihnen Feedback, legen Sie aber auch Bereiche mit Stärken und Schwächen im gesamten Team ab.

  • Wenden Sie sich früh und häufig an Ihr Management - das ist keine braune Nase, das ist immer auf dem Laufenden. Wenn Sie nicht wissen, was Ihr Management benötigt und was Ihr Management denkt, wie kann Ihr Team dann möglicherweise die Erwartungen erfüllen? Sie müssen sich wirklich gut bei Ihrem Chef erholen und in seinem Team sein, so wie Ihre Leute in Ihrem Team sind. In der Lage zu sein, effektiv mit dem Chef über Kleinigkeiten zu kommunizieren, erhöht das Vertrauen, dass Sie in der Lage sind, Hilfe und klares Verständnis zu erhalten, wenn die Krise zuschlägt. Es ist auch eine gute Realitätsprüfung, um festzustellen, wo sich Ihre Big Picture Blinders befinden.

  • Überprüfen Sie die Teamressourcen in regelmäßigen Abständen. Die Benutzer quietschen, wenn eine zuvor verfügbare Ressource nicht mehr verfügbar ist. Überprüfen Sie sie jedoch auf unbekannte Schmerzpunkte. Wo sind deine Chokepoints? Gibt es neue Tools, die nützlich wären? Die meisten Teams haben einen Typ, den ich als Werkzeugjäger bezeichne, der immer auf dem neuesten Stand der Technik ist. Gleichen Sie die Gespräche zwischen Tool Hunter und GuyWhoHatesEverythingNew aus, um den nächsten Evolutionspunkt zu finden. Tools umfassen alles - SW, HW, physischer Raum, Lernressourcen.

  • Kennen und in Kontakt bleiben mit Support-Teams. Jedes Unternehmen ist anders, aber Sie kennen die Verantwortlichen für Qualitätskontrolle, Dokumentenerstellung, Recht, Einrichtungen, Finanzen und alle anderen für Ihr Unternehmen einzigartigen Unterstützungsgruppen. Sie sind die besten Big-Picture-Trigger, die ich mir vorstellen kann, weil sie die Welt ganz anders sehen als Sie.

  • Kennen Sie Ihre Konkurrenz - verbringen Sie mindestens einige Zeit pro Woche damit, herauszufinden, wie jemand die Probleme lösen würde, die Ihr Produkt löst, wenn er Ihr Produkt nicht verwendet. Es ist vielleicht kein einzelnes Unternehmen, aber was bietet diese andere Lösung, die Sie nicht haben?

  • Überprüfen Sie die Kosten und den Zeitplan- Wie wahrscheinlich ist es, dass Ihr Team die aktuelle Deadline anzeigt? Wie wäre es mit der nächsten Frist? Wie hoch ist die Abbrandrate Ihrer Kosten? Welche großen anstehenden Einkäufe haben Sie noch nicht bezahlt? Was ist von Ihrem Budget übrig? Die Details hängen von der Art und Weise ab, in der Sie Finanzdaten nachverfolgen. Aber auch in einem sehr informellen Unternehmen sollten Sie eine Vorstellung davon haben, wie viele Tage / Wochen / Monate Budget Ihnen noch verbleiben und wie Ihre Frist für das aktuelle Produkt ist. Irgendwo sollte jemand besser planen, "wie viele Leute brauchen wir, um diesen Job zu machen?" und "Können wir es uns leisten, sie im nächsten Monat / Quartal / Jahr zu bezahlen?". Sie müssen diese Zahlen kennen und über die nächsten Schritte informiert sein. Sie brauchen einen glasklaren Plan für die nächste Woche, den Sie jetzt erklären können, wenn jemand hereinkommt und fragt. Sie brauchen einen ziemlich guten Plan für den nächsten Monat, Das wird sich nur an 2-3 Stellen ändern, wenn die Realität eintritt. Sie benötigen einen skizzenhaften Plan für das Quartal und einen General für das Jahr. Darüber hinaus sind die Zahlen auch in großen Projekten nur Zahlen. Hören Sie ihnen zu, aber stellen Sie fest, dass niemand mit Blut unterschrieben hat.

Das ist mein Ding ganz oben auf meiner Liste. Ich füge es im Allgemeinen hinzu, wenn ich von einer "Überraschung" auf den Kopf geschlagen werde (stellen Sie sich vor, wie empfindlich ich für einen Bereich bin, den ich verpasst habe, und dann schaffe ich es, ihn in die Checkliste einzufügen.) "Überraschung" mit einem erzwungenen Grinsen und zusammengebissenen Zähnen ).

Seien Sie auch auf den Dread Context Switch vorbereitet. Wenn Sie gerade erst im Management anfangen, ist es wahrscheinlich, dass Sie ein kleines Team haben und jemand im Management dachte, es wäre in Ordnung, einige Zeit damit zu verbringen, ein Team zu leiten und einzelne Beiträge zu leisten. Dies kann getan werden, aber der Kontextwechsel zwischen den beiden ist grob. Planen Sie es. Blockieren Sie die Zeit, um zu wechseln (wie vor und nach dem Mittagessen), und kennen Sie Ihre weniger geübten Fähigkeiten, und stellen Sie fest, dass Sie sich die ersten Male dorthin schleppen müssen Sie brauchen mindestens zwei Stunden, um wirklich überall hin zu kommen.

Der Kontextwechsel funktioniert in beide Richtungen - Verwaltung für die praktische Arbeit und umgekehrt. Aber wenn Sie von Ihrem Kraft- und Übungspunkt zu Ihrem unangenehmen Ort gehen und weniger üben, dann spüren Sie den Schmerz mehr und der Drang, sich zurückzuziehen, ist stark. Wisse, dass es da ist und bekämpfe es und erkenne, dass es dir leichter fällt, alles in den Griff zu bekommen, wenn du im Großen und Ganzen herumwirbelst.

bethlakshmi
quelle
5
"Gleichen Sie Gespräche zwischen Tool Hunter und GuyWhoHatesEverythingNew aus, um den nächsten Punkt für die Evolution zu finden." Liebe es.
Hugh
12

Lesen Sie dieses Buch: Herding Cats: Eine Einführung für Programmierer, die Programmierer anführen

Vor einiger Zeit habe ich dieses Buch meinem Chef geschenkt und er hat es gemocht. Als ich es las, schien er zu wissen, wovon er redet. Und das ist so. Der Autor erzählt von seinen eigenen Erfahrungen. Ist keine Sammlung von "einfachen Wahrheiten" des Managers - das sind die Worte des ehemaligen Programmierers. Und es sollte verstanden werden, dass es SEINE Erfahrung war, aber Ihre könnte anders sein. Bei einigen Dingen sollten Sie kritisch schauen. "Manager kann kein Programmierer mehr sein - es ist wichtig".

Evgeny Gavrin
quelle
2
Würde es Ihnen etwas ausmachen, mitzuteilen, was Sie an dem Buch nützlich fanden? Vielen Dank!
Louisgab
3
@louisgab Vor einiger Zeit habe ich dieses Buch meinem Chef geschenkt und er mochte es. Als ich es las, schien er zu wissen, wovon er redet. Und das ist so. Der Autor erzählt von seinen eigenen Erfahrungen. Ist keine Sammlung von "einfachen Wahrheiten" des Managers - das sind die Worte des ehemaligen Programmierers. Und es sollte verstanden werden, dass es SEINE Erfahrung war, aber Ihre könnte anders sein. Also, auf einige Dinge sollten Sie kritisch schauen. "Manager kann kein Programmierer mehr sein - es ist wichtig".
Evgeny Gavrin
6

Als ich kürzlich die technische Leitung eines kleinen Unternehmens für ein Produkt übernahm, das ich nicht entwickelt hatte, war es für mich sehr hilfreich, die Funktionsweise des Produkts in einfachem Englisch zu dokumentieren - Funktionen, die ich in Gurke dokumentiert habe, und für Interna Ich habe Erklärungen zum Objektmodell verfasst und fließe durch verschiedene Controller. Dabei stellte ich fest, dass A) das Produkt ein bisschen durcheinander war :) Und B) ich habe viel schneller gelernt, wie die App funktioniert, sodass ich ein intelligentes Gespräch darüber führen konnte, welche Probleme aufgetreten sind und welche Nachbesserungen erforderlich sind. oder was es brauchen würde, um eine bestimmte Funktion zu implementieren.

Bilder helfen auch - ich spiele nicht mit Produkten wie Visio, ich verwende nur Buntstifte und leeres Papier (das tue ich wirklich - ich arbeite von zu Hause aus und oft neben meinem 2-Jährigen), aber was auch immer für Sie funktioniert, sollten Sie verwenden.

Karmajunkie
quelle
4
Früher hatte ich einen Job, bei dem ich einen Zeichentisch geerbt habe, den sonst niemand wollte. Ich habe alle meine Datenbankentwürfe auf Stift und Papier erstellt, da Visio für das Entwerfen zu langsam war. Ich könnte einen Datenbankentwurf auf Papier in ungefähr 1/10 der Zeit aufbereiten, die es dauerte, um das Entwurfsdokument in Visio zu erstellen.
HLGEM
4
Ich konnte dir nicht sagen warum, aber ich denke schneller, wenn ich langsamer schreiben muss. Ich codiere sogar auf Papier, wenn ich bei einem Problem stecken bleibe. Bäume töten auf dem Altar der Produktivität ... :)
karmajunkie