it-swarm.dev

Wie kann ich mich von einem Softwareentwickler zu einem Software-Manager oder Teamleiter entwickeln?

Ich bin seit fast 3 Jahren Softwareentwickler (ob Teilzeit oder Vollzeit). Ich war schon immer der Typ, der das Talent hatte, die Führung zu übernehmen und die Organisation für die Erledigung von Aufgaben bereitzustellen. Seit ich im College die Leitung meines Senior-Design-Projekts hatte, fühlte ich, dass dies meine wahre Berufung war und nicht hinter einer Schreibtischcodierung saß. Jetzt weiß ich, dass ich verstehen muss, wie man Code für andere Entwickler erstellt, um mich wirklich zu respektieren. Außerdem liebe ich das Codieren wirklich. Ich arbeite zu Hause an vielen Nebenprojekten außerhalb der Arbeit, halte mich an die besten Codierungspraktiken und versuche, mein Wissen über die Domäne kontinuierlich zu erweitern.

Meine Hauptfrage ist, nach welchen Dingen oder Möglichkeiten ich Ausschau halten sollte, um meine Karriere zu einer eher leitenden als zu einer kodierenden Rolle zu machen. Wie gesagt, ich liebe es zu programmieren, aber ich würde es noch mehr lieben, Dinge auf hohem Niveau entwerfen zu können und das Team so zu organisieren, dass Dinge erledigt und ihre Fortschritte überwacht werden, während ich bei technischen Fragen helfe Entscheidungen hier und da. Diese Art von Dingen macht mich wirklich glücklich, anstatt den ganzen Tag hinter einem Schreibtisch zu sitzen und zu programmieren.

Offensichtlich ist es einer meiner Hauptträume, selbst eine Art Software zu produzieren, die irgendwann explodieren und groß werden würde, und dann ein Team einzustellen und alles selbst zu machen, aber ich denke, die Chancen dafür sind weitaus schlechter als nur meinen Karriereweg ein wenig zu ändern, um dahin zu gelangen, wo ich hin möchte. Ich habe das Gefühl, dass ich die gleiche Befriedigung für einen Arbeitgeber und nicht für mich selbst erzielen kann. Obwohl ich mich vorher noch nicht so gefühlt habe, habe ich das Gefühl, dass dies hauptsächlich darauf zurückzuführen ist, dass ich nicht das tue, was ich WIRKLICH tun möchte.

Irgendwelche Tipps, Hinweise oder Dinge, die Sie beachten sollten? Jeder, der genau das getan hat, und wenn ja, wie haben Sie es getan?

42
anon

Der Wechsel von einer Softwareentwicklungsrolle in eine Management- oder Führungsrolle ist etwas, das Zeit braucht. Ich habe einen Schwerpunkt in Software-Engineering mit Schwerpunkt auf Software-Engineering-Prozessen und einen Schwerpunkt in Unternehmensführung und Kommunikation. Trotz dieser akademischen Erfahrung in der Verwaltung von Softwareprojekten, der Einstellung und Einstellung von Mitarbeitern, der Führung von Teams und der mündlichen und schriftlichen Kommunikation mit Gruppen fand ich die meisten Führungs- und Führungsrollen, insbesondere in der Branche, die ich wollte Um darin zu arbeiten, benötigen Sie mehr als 5 Jahre Erfahrung in der Softwareentwicklung (ich hatte 2, einschließlich Kooperationen und Praktika).

In der Zwischenzeit habe ich einfach mein Studium zu Projektmanagement-Themen fortgesetzt.

Das erste, was ich empfehlen würde, ist ein guter Kommunikator und Verhandlungsführer zu werden. Erfahren Sie, wie Sie die wichtigen Gespräche führen. Selbst als Entwickler müssen Entscheidungen mit Mitarbeitern, Kunden und Benutzern getroffen werden. Manchmal muss man schwierige Gespräche führen und eine Einigung erzielen, die allen zugute kommt. Es ist kein leichtes Ziel, aber das Buch Schwierige Gespräche: Wie man bespricht, was am wichtigsten ist ist eines, das ich empfehlen würde, um dies zu behandeln. Es gibt andere, wie Getting Past No und Getting zu Yes: Verhandeln einer Vereinbarung ohne zu geben In dem wäre auch hilfreich. Diese sind unabhängig von Ihrer Position relevant.

Auf der eher technischen Seite ist ein Verständnis des Softwareentwicklungslebenszyklus wichtig, um Softwareteams zu führen und zu verwalten. Führungspositionen bedeuten wahrscheinlich, dass Sie mit Anforderungs-Engineering, Software-Systemarchitektur, Design, Implementierung, Test und Qualitätssicherung sowie Wartungsaufgaben befasst sind. Obwohl Sie in all diesen Bereichen kein Experte sein können, muss ein Manager oder Leiter zumindest alle verstehen. Als Entwickler erledigen Sie wahrscheinlich den größten Teil Ihrer Arbeit in Design, Implementierung und Wartung, mit einigen Tests. Ich würde Bücher wie Softwareanforderungen (und sein Begleiter, Mehr über Softwareanforderungen ), Softwarearchitektur in der Praxis (obwohl meine Universität) sehr empfehlen wechselte zu Software-Systemarchitektur: Arbeiten mit Stakeholdern unter Verwendung von Gesichtspunkten und Perspektiven , nachdem ich den Architekturkurs besucht hatte, und er wurde mir empfohlen) und Metriken und Modelle in Software Quality Engineering =.

Aus Sicht des Projektmanagements können Sie sich über Prozessmodelle und -methoden informieren. Es gibt agile Methoden wie Scrum und Extreme Programming sowie plangesteuerte Methoden wie Waterfall und Spiral. Es gibt auch methodische Frameworks wie CMMI und den Personal Software Process/Team Software Process. Diejenigen, die für Sie relevant sind, hängen davon ab, wo Sie in Bezug auf Branche und Unternehmen arbeiten. Es gibt eine Reihe von Büchern über verschiedene Methoden und Frameworks, aber ich würde Rapid Development: Taming Wild Software Schedules für das allgemeine Software-Engineering-Management und den Software-Engineering-Prozess wärmstens empfehlen.

Wenn Sie Ihre Ausbildung fortsetzen möchten, können Sie sich eher einen technischen Management-Track als einen betriebswirtschaftlichen Track ansehen. Wenn Sie eine Position als technisches Management suchen, schauen Sie sich die Programme Software Engineering, Software Engineering Management und Engineering Management an. Für einen eher betriebswirtschaftlichen Kurs können Sie MBA-Programme, Unternehmensführung oder einige technische Managementprogramme in Betracht ziehen, die eine starke wirtschaftliche oder finanzielle Komponente aufweisen.

41
Thomas Owens

Diese anderen Antworten sind großartig, aber ich werde meine $ 0,02 einwerfen. Ich bin von einem Junior-Entwickler in meinem derzeitigen Unternehmen zu einem Senior-Entwickler und dann zu einem Teamleiter und jetzt zu einem Architekten gewechselt. Es hat mehrere Jahre gedauert. Wann immer ich befördert wurde, war es, weil ich bereits Aspekte des Jobs erledigte, und mein Management erkannte dies nur und gab mir den entsprechenden Titel. Mein Rat ist also, nicht zu warten, bis Ihnen mitgeteilt wird, dass Sie ein technischer Leiter oder ein Manager sind. Übernehmen Sie einfach die Verantwortung, die Personen in diesen Rollen haben. Nach einigen Monaten oder einem Jahr werden Sie feststellen, dass Sie im Grunde genommen die Aufgabe erledigen, auf die Sie abzielen, und Sie können Ihr Management darauf hinweisen, wenn es dies nicht bemerkt hat.

19
RationalGeek

Ich werde nicht versuchen, eine vollständige Antwort zu geben, da Thomas Owens bereits einige wirklich gute Ratschläge aufgeführt hat (+1 dazu).

Ich wollte nur ein paar Tipps/Vorschläge hinzufügen:

  1. Warten Sie nicht auf jemanden, der Sie zum Führen bringt. fang einfach an. Ich meine nicht, geht gegen Ihren derzeitigen Chef, sondern ergreifen Sie die Initiative, um ihm zu helfen. Wenn Ihr Chef so etwas wie meiner ist, ist er normalerweise mit viel zu vielen Aufgaben/Besprechungen auf seinem Teller überladen. Wenn er sieht, dass Sie Anweisungen geben, bei denen er möglicherweise nicht genügend Zeit hat, um Schritt zu halten, wird er höchstwahrscheinlich gerne eine gewisse Managementverantwortung an Sie delegieren. Wenn Sie dies im Laufe der Zeit richtig machen, wird Ihr Chef immer mehr an Sie delegieren (weniger, um die er sich Sorgen machen muss), und er wird Sie mit größerer Wahrscheinlichkeit dabei unterstützen, mehr Verantwortung zu übernehmen, bis Sie offiziell die Führung übernehmen.
  2. Denken Sie daran, dass es bei Teambildung und Führung mehr um Soziologie als um Technologie geht (aus einem der gängigen Software-Methodenbücher, vielleicht Brooks). Ihr Ziel ist es, die Menschen und ihr Verhalten zu verstehen. Dies unterscheidet sich stark vom Verständnis der Funktionsweise von Computern. Ohne diese Erkenntnis machen gute Ingenieure einige der schlechtesten Teamleiter, weil sie diesen mentalen Wechsel nicht vornehmen und erkennen, dass Sie Menschen nicht so steuern können, wie Sie Maschinen steuern. Tatsächlich scheint der einzige Ansatz, der zu funktionieren scheint, nicht darin zu bestehen, die Menschen überhaupt zu kontrollieren, sondern ihnen Anweisungen zu geben. Lesen, lesen und lesen Sie weiterhin Bücher/Artikel/Blogs über Führung. Ein Buch, das ich empfehlen könnte, ist Management 3.

... und jetzt gehe ich los, um die Links zu überprüfen, die Thomas gepostet hat

9
DXM

Ich persönlich habe momentan keine Lust, meine derzeitige Position zu verlassen, aber je nachdem, wo wir uns im Release-Zyklus befinden, verbringe ich 10% bis fast 100% meiner Zeit mit anderen Aufgaben als dem Codieren. Wenn Sie geduldig und aufmerksam sind, gibt es viele Möglichkeiten, etwas anderes als "nur Codierung" in Ihrer aktuellen Position zu tun. Zum Beispiel:

  • Freiwilliger Mentor eines neuen Teammitglieds.
  • Werden Sie Experte für neue Tools, Prozesse oder Technologien, die das Unternehmen in Betracht zieht.
  • Freiwillige für funktionsübergreifende Ausschüsse.
  • Sprechen Sie über Ihre Ideen.
  • Laden Sie sich ein, Meetings für bevorstehende Funktionen zu entwerfen.

Lassen Sie Ihren Manager wissen, dass Sie an solchen Gelegenheiten interessiert sind. Wenn Sie mit Ihren aktuellen Aufgaben gut zurechtkommen, wird er die Chancen auf Sie lenken, wenn sie sich ergeben. Initiative zählt viel. Die meisten Manager lassen Sie zumindest beobachten, auch wenn sie nicht glauben, dass Sie im Moment qualifiziert sind.

5
Karl Bielefeldt

Wenn Sie eine Projektmanagement-Rolle übernehmen möchten, schadet es absolut nicht, Nachtstunden zu nehmen und auf Ihren MBA hinzuarbeiten.

Eine andere Möglichkeit wäre, die Zertifizierung PMBOK Project Management Body of Knowledge zu prüfen. An vielen Orten werden Sie nicht berücksichtigt, es sei denn, Sie verfügen über einige Jahre tatsächliche Führungserfahrung oder einen der beiden oben aufgeführten Punkte.

Der PMBOK ist ein extrem harter Test und erfordert viel Lernen, um ihn zu bestehen. Ich denke auch, dass sie Anforderungen an das tatsächliche Projektmanagement und die Führungserfahrung haben, um zur Teilnahme am Test berechtigt zu sein.

4
maple_shaft

Das klingt für mich so, als ob Sie auf das Projektmanagement hinarbeiten möchten. Eine große Anzahl von PM] Positionen innerhalb der Softwareentwicklung erfordern ebenfalls Programmiererfahrung.

Ich würde nach Positionen suchen, in denen Sie zu Verantwortlichkeiten heranwachsen können, die Ihnen das Management-/Führungsschiff bringen, das Sie sich wünschen. Wenn Sie die Leiter nach oben bewegen, kann dies anders aussehen, je nachdem, wie die Dinge dort funktionieren, wo Sie arbeiten. Aber auch mit weniger Erfahrung im Codieren sind PM] Positionen verfügbar, wenn Sie über Führungs- und Managementerfahrung verfügen.

2
D..