Ich bin derzeit ein professioneller Programmierer. Ich möchte meine Fähigkeiten erweitern, aber ich möchte auch die Karriere zum Dev Lead als Teil eines Teams machen. Ich weiß, dass es eine Menge zu lernen gibt (und dies wird nicht sofort geschehen), aber ich denke, ich bin schlau genug, dies zu tun, und bin der Herausforderung gewachsen.
Ich bin mir sicher, dass viele der Mitglieder hier das wahrscheinlich selbst durchgemacht haben und nun erfolgreiche Entwickler sind. Obwohl ich einige persönliche Bereiche kenne, die ich verbessern möchte (Tiefe des Wissens, Breite des Wissens, Fähigkeiten usw.), bin ich mir leider nicht sicher, wie ich so etwas anfangen soll.
Welche Schritte sollte ich als Programmierer unternehmen, um dieses Ziel zu erreichen? Was soll ich priorisieren?
quelle
Antworten:
Um ein technischer Vorsprung zu werden, sind die folgenden Punkte unerlässlich
Die Fähigkeit, Mitarbeiter aller Dienstalterstufen zu betreuen, von jemandem, der seit 3 Monaten nicht mehr in der Uni ist, bis zu einer Person, die seit 30 Jahren programmiert
Gute Kenntnisse Ihrer Entwicklungsdomäne. Dies beinhaltet: Sprachen, Frameworks, Dienstprogramme, Entwicklungsumgebungen
Ein solides Verständnis für Issue-Management-Systeme, Projektmanagement-Fähigkeiten und Versionskontrolle
Seien Sie der Mörder der Insekten
Wissen, wie Sie zeitnahe Codeüberprüfungen durchführen, wonach Sie suchen und wie Sie den Zeitaufwand minimieren, den sie für die Speicherung und die durchzuführenden Änderungen benötigen
Bleiben Sie über die Entwicklungen in Ihrem Entwicklungsbereich auf dem Laufenden. Wenn Sie beispielsweise in .NET 2 keine neuen Frameworks oder Technologien kennengelernt hätten, würden Sie die Dinge heute ziemlich rückwärts machen.
Wie man Unit-Tests und Mocks schreibt und Ihre Entwickler dazu bringt, sie auch zu schreiben
Wissen, was Entwurfsmuster sind und wann sie verwendet werden müssen
Wissen, was Code-Gerüche sind und wie sie gemindert werden können
Kontinuierliche Integration
Die Fähigkeit, Projekte und Veröffentlichungen zu planen
Abhängig von Ihrer Organisation und davon, ob Sie Architekten als Mitarbeiter haben, müssten Sie wahrscheinlich Folgendes wissen:
Die Fähigkeit, Ihre Projekte zu unterteilen und in funktionale Teile zu zerlegen
Ein gründliches Verständnis der Sicherheit, einschließlich der korrekten Handhabung von Passwörtern, der Trennung von Systemen, der Sicherung von Daten usw
Unternehmenskonzepte wie Servicebusse, Nachrichtenwarteschlangen und BizTalk
Enterprise-Design-Muster
Dienstarchitekturen / RPC wie SOAP und REST
ORM-Frameworks wie Hibernate, Entity Framework, Doctrine
Kontinuierliche Bereitstellung
Die Wolke
Die Fähigkeit, die richtigen Technologien für ein Projekt zu empfehlen. Dies kann schwierig sein, wenn Ihr Team / Shop nur .NET, PHP oder Java unterstützt.
Entwerfen Sie die Anwendung so, dass zukünftige Erweiterungen problemlos berücksichtigt werden können
Wenn Sie Entwicklungsleiter werden, benötigen Sie außerdem:
Und zum Schluss noch einige andere empfohlene Punkte:
Lernen Sie außerhalb Ihrer Entwicklungsdomäne
Lernen Sie, NEIN zu sagen, wenn Dinge nicht möglich sind oder außerhalb des Rahmens liegen oder mit Einschränkungen wie Budget oder Zeit in Konflikt stehen.
Das Führen eines Teams ist eine herausfordernde Aufgabe. Sie müssen die Person sein, die alle Fragen beantworten kann. Sie müssen die richtigen Technologien für den Einsatz kennen (es sei denn, Sie haben einen Architekten). Sie müssen über Fähigkeiten zum Personalmanagement verfügen und zugänglich sein durch Ihre Mitarbeiter (Übernahme einer Führungsposition). Darüber hinaus müssen Sie über genaue Schätzfähigkeiten verfügen, um die Rentabilität des Projekts sicherzustellen, und Sie müssen in der Lage sein, sich mit dem Code eines beliebigen Benutzers zu beschmutzen, um Probleme zu lokalisieren und schnell zu beheben. Sie müssen vermeiden, alles selbst tun zu wollen und eine Teamumgebung zu fördern, die nicht giftig ist. Sie müssen stets den Überblick über Ihre Technologie behalten und sich über die neuesten Entwicklungen und Techniken sowie über allgemeine Branchentrends informieren.
Sie sollten auch wirklich mindestens eine Datenbankplattform kennen und diese gut kennen. Kenntnisse über die Replikation, gespeicherte Prozeduren, die Funktionsweise des Abfrageoptimierungsprogramms, das ordnungsgemäße Entwerfen eines Schemas und die zu indizierenden Felder.
Unabhängig von der genauen Position erfordert jede leitende Position, dass Sie in der Lage sind, effektiv zu kommunizieren. Wenn Sie kein selbstbewusster Redner sind, versuchen Sie, etwas wie Toast Masters (öffentliche Rede) zu machen. Erfahren Sie, wie Sie Augenkontakt herstellen und halten. Sei zuversichtlich. Kleide dich passend für die Position. Mit gutem Beispiel vorangehen.
quelle
Meiner Erfahrung nach hat der Lead ein bisschen weniger mit der schmutzigen Arbeit der praktischen Programmierung zu tun als vielmehr mit dem Management. Zu diesem Zweck würde ich Folgendes empfehlen
Investieren Sie mehr Zeit in Design, Architektur und Entwicklung . Ihre Aufgabe wird es sein, Ihrem Team technische Anleitung und Anleitung zu geben. Sie müssen mehr verstehen, wie Teile eines Ganzen zusammenpassen, und weniger, wie die Installation funktioniert. Verstehen Sie mich nicht falsch, Sie benötigen solide technische Fachkenntnisse, um eine effektive und sachkundige Führung zu gewährleisten, aber eine bessere Sicht auf das, was vor sich geht und wie es funktionieren wird, wird hier von entscheidender Bedeutung sein. Sie sollten mehr über bewährte Entwurfsmuster und effektive Codierungsmethoden wissen
Lernen Sie, mehrere Aufgaben zu erledigen und die Zeit zu managen . Wenn Sie jetzt gut darin sind, ist das schön: Entwickeln Sie mehr. Als Entwickler müssen Sie sich nur um Ihre aktuelle Aufgabe / Ihr aktuelles Projekt kümmern. Als Vorbote haben Sie
Bereiten Sie sich darauf vor, effektiv zu delegieren . Diese IMO wird das schwierigste Stück sein, an das man sich anpassen kann. Als Entwickler sind Sie es gewohnt, sich die Hände schmutzig zu machen und Dinge zu erledigen. Ich kümmere mich um alle Klempnerarbeiten und Nachforschungen. Das muss aufhören oder reduziert werden. Die Gigs kommen rein, du verteilst sie an das Team. Sie werden ein Stück der Action mitbekommen, nicht so sehr, wie Sie es gewohnt sind. Und Sie beißen sich auf die Zunge, um der Versuchung zu widerstehen, mehr Action für sich selbst zu erzielen.
Erwägen Sie ein Training, das nicht nur Ihre Fähigkeiten steigert, sondern auch Ihre Einstellung ändert . Ein Crash-Kurs in sagen, Software-Projektmanagement wird nicht schaden. Lean Six Sigma ist auch ein sehr gutes Trainingsprogramm (ich kann seine Wirksamkeit bezeugen), mit dem Sie die Problemlösung aus einem logischeren Blickwinkel betrachten können. Ganz zu schweigen davon, dass Sie von der Führungsposition aus noch mehr Führungspositionen innehaben müssen, die weniger praktische technische Fähigkeiten und mehr Managementfähigkeiten erfordern.
Verbessern Sie Ihre Kommunikationsfähigkeiten und Ihre zwischenmenschlichen Fähigkeiten . Sie sind der wichtigste Einstiegspunkt für Ihr Team von außen. Ihr Manager oder ein anderer Vorgesetzter wird zuerst zu Ihnen kommen. Andere Einheiten / Teams in Ihrer Organisation werden sich zuerst mit Ihnen in Bezug auf alles, was das Team betrifft, in Verbindung setzen. Sie werden die schwierigste und unvorhersehbarste Ressource von allen verwalten: Menschen. Sie müssen eine dicke Haut wachsen lassen, lernen, große Mengen an Stolz zu schlucken und Verantwortung für das Versagen Ihres Teams zu übernehmen.
quelle
Dinge, die Sam nicht gesagt hat, sind auch wichtig:
Wie man Sachen spezifiziert und anderen Entwicklern Arbeit gibt. Ein Teil Ihrer Aufgabe ist es, die anderen Entwickler zu 100% auszunutzen. Das Schreiben von Spezifikationen, die eindeutig sind, ist sehr wichtig.
So erstellen Sie eine Skelett- / Prototyp-Anwendung, der alle anderen folgen sollten
Wie man die Moral eines guten Teams fördert
An Meetings teilnehmen, Meetings leiten und Aktionen dokumentieren
Wie Sie einen Projektplan schätzen, schreiben und den Projektplan aktualisieren
So blicken Sie in die Zukunft: Wenn in 3 Monaten ein Problem auftritt, sollten Sie versuchen, es so früh wie möglich zu lösen. Wenn ein Entwickler 7 Wochen in den Urlaub fährt, müssen Sie jetzt mit der Planung beginnen.
Wie spricht man mit dem Management? Sie sprechen eine andere Sprache zu uns. Gib ihnen Lösungen, keine Probleme. Sagen Sie ihnen, was das Technische für sie bedeutet.
Und während Sam dies bereits sagte, ist es eines der wichtigsten Dinge, zu lernen, wie man nein sagt . Sie werden das viel tun . Die andere Sichtweise ist, ja zu sagen , aber "nur wenn wir mehr Geld / Zeit / Ressourcen bekommen können" - oder "das ist für die zweite Veröffentlichung" :)
quelle
All dies sind nach dem Buch und gute Antworten. Gestatten Sie mir, Sie von der Realität zu treffen.
Ob Sie es glauben oder nicht, die meiste Zeit werden Sie damit verbringen, Manager zu erklären
Dazu benötigen Sie die Fähigkeit, nicht-technischen Personen technische Dinge in nicht-technischen Begriffen zu erklären. Und es ist sehr schwierig. zB erwägen Sie, P = NP dem 6-Jährigen zu erklären. Leider gibt es dafür keine formelle Ausbildung, und Sie müssen es selbst lernen.
Dies ist auch die Position, an der politische Scheiße auf dich losgeht. Der Manager fordert Sie auf, eine Person zu bevorzugen, weil sie den Prozess befolgt. Sie wissen jedoch, dass diese Person aus verschiedenen Gründen von keinem Nutzen für Ihr Team ist, vom Mangel an technischen Fähigkeiten bis hin zu einem nicht guten Teammitglied. Sie müssen also immer noch nicht nur mit dieser Person arbeiten, sondern dieser Person auch gute Bewertungen geben. Das Gegenteil ist die Person, die gute Fähigkeiten und ein sehr effektives Teammitglied hat, aber nicht weiß, wie man das Management zufrieden stellt und daher weniger Bewertungen erhält.
Dann gibt es nutzlose Meetings, die von einem hochrangigen Mitarbeiter von einem entfernten Standort aus abgehalten werden und über die effektiven Prozesse und darüber, wie die neueste Prozessvariante die Produktivität steigern wird, referieren. Sie müssen wissen, wie Sie Ihr langweiliges Gesicht verstecken und energisch aussehen.
quelle