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

42

Ich bin seit fast 3 Jahren ein Softwareentwickler (ob Teilzeit oder Vollzeit). Ich war schon immer der Typ, der es verstanden hat, eine Führungsrolle zu übernehmen und die Organisation bei der Erledigung von Aufgaben zu unterstützen. Seit ich an der Uni die Leitung meines Senior-Design-Projekts hatte, fühlte ich, dass dies meine wahre Berufung war und nicht hinter einer Tischkodierung 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 es wirklich zu programmieren. Ich arbeite an vielen Nebenprojekten zu Hause außerhalb der Arbeit, halte mich an die besten Codierungsmethoden und versuche, mein Wissen über die Domäne kontinuierlich weiterzuentwickeln.

Meine Hauptfrage ist, nach welchen Dingen oder Möglichkeiten ich Ausschau halten soll, um meine Karriere zu einer eher leitenden als zu einer kodierenden Rolle voranzutreiben. Wie gesagt, ich liebe es zu programmieren, aber ich würde es noch mehr lieben, Dinge auf hohem Niveau zu entwerfen und das Team so zu organisieren, dass Dinge erledigt und deren Fortschritt überwacht werden und gleichzeitig technische Hilfe geleistet wird Entscheidungen hier und da. Diese Art von Dingen macht mich wirklich glücklich, anstatt einfach den ganzen Tag hinter einem Schreibtisch zu sitzen und zu programmieren.

Offensichtlich ist es einer meiner Hauptträume, selbst eine Art Software zu entwickeln, die irgendwann in die Luft jagt und groß wird. Dann beginne ich, ein Team zu engagieren und alles selbst zu machen, aber ich denke, die Chancen dafür stehen weitaus schlechter als nur meinen Karriereweg ein wenig zu ändern, um dahin zu gelangen, wohin ich gehen möchte. Ich habe das Gefühl, dass ich die gleiche Zufriedenheit erzielen kann, wenn ich das für einen Arbeitgeber und nicht für mich selbst tue. Auch wenn ich mich vorher noch nicht so gefühlt habe, habe ich das Gefühl, dass dies hauptsächlich deshalb geschah, weil ich nicht das tue, was ich WIRKLICH tun möchte.

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

Mücke
quelle
Welche Ausbildung haben Sie? Wie lange bist du schon in deiner jetzigen Position?
Thomas Owens
Ich habe einen Bachelor of Science in Informatik. Ich bin seit ungefähr einem Jahr in meiner jetzigen Position.
1
@slandau Ich möchte ausdrücklich darauf hinweisen, dass Sie keine PM-Rolle eingeben möchten. während das als die offensichtliche Richtung erscheinen kann; Ihre Beschreibung und Wünsche unterscheiden sich von einer PM-Rolle, und ich glaube nicht, dass eine PM-Rolle das sein wird, wonach Sie letztendlich streben.
Aaron McIver
1
@AaronMcIver Es hängt davon ab, wo Sie arbeiten. Einige PMs sind geschäftlich, einige PMs sind eher technischer Natur. An einigen Stellen ist "Engineering Manager" möglicherweise ein gebräuchlicherer Titel, an anderen Stellen ist er möglicherweise einfach "Software Engineer".
Thomas Owens
2
Nun, zuerst gib deine Seele auf ... :-)
Paul Tomblin

Antworten:

41

Der Wechsel von einer Softwareentwicklungs- zu einer Management- oder Führungsrolle ist etwas, das Zeit in Anspruch nimmt. 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 Anwerbung und Einstellung von Mitarbeitern, der Leitung von Teams und der mündlichen und schriftlichen Kommunikation mit Gruppen fand ich die meisten Führungs- und Führungsaufgaben, insbesondere in der von mir gewünschten Branche für die arbeit benötige ich mehr als 5 jahre erfahrung in der softwareentwicklung (ich hatte 2 mit kooperationen und praktika).

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

Als erstes würde ich empfehlen, ein guter Kommunikator und Verhandlungsführer zu werden. Erfahren Sie, wie Sie die wichtigen Gespräche führen. Auch 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: Was ist am wichtigsten? Ist eines, das ich empfehlen würde und das dies abdeckt. Es gibt noch andere, wie beispielsweise " Überholen", "Nein" und " Ja": Das Aushandeln einer Vereinbarung ohne Nachgeben wäre ebenfalls hilfreich. Diese sind relevant, unabhängig davon, in welcher Position Sie sich befinden.

Technisch gesehen ist ein Verständnis des Softwareentwicklungslebenszyklus wichtig, um Softwareteams zu führen und zu verwalten. Führungspositionen bedeuten wahrscheinlich, dass Sie mit Requirements Engineering, Softwaresystemarchitektur, Design, Implementierung, Tests und Qualitätssicherung sowie Wartungsaufgaben befasst sind. Obwohl Sie überhaupt 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 den Bereichen Design, Implementierung und Wartung, auch mit einigen Tests. Ich würde Bücher wie " Softwareanforderungen" (und Begleiter " Weitere Informationen zu Softwareanforderungen" ) und " Softwarearchitektur in der Praxis" sehr empfehlen (obwohl meine Universität gewechselt ist)Softwaresystemarchitektur: Arbeiten mit Interessengruppen unter Verwendung von Ansichten und Perspektiven, nachdem ich den Architekturkurs absolviert habe, und Metriken und Modelle in Software Quality Engineering .

Aus Sicht des Projektmanagements erfahren Sie mehr über Prozessmodelle und -methoden. Es gibt agile Methoden wie Scrum und Extreme Programming und plangesteuerte Methoden wie Waterfall und Spiral. Es gibt auch Methodik-Frameworks wie CMMI und Personal Software Process / Team Software Process. Welche für Sie relevant sind, hängt davon ab, in welcher Branche und in welchem ​​Unternehmen Sie tätig sind. Es gibt eine Reihe von Büchern zu verschiedenen Methoden und Frameworks, aber ich würde Rapid Development wärmstens empfehlen : Taming Wild Software Schedules für das allgemeine Software Engineering Management und den Software Engineering-Prozess.

Wenn Sie Ihre Ausbildung fortsetzen möchten, können Sie sich eher eine technische als eine betriebswirtschaftliche Ausbildung ansehen. Wenn Sie eine technische Führungsposition suchen, schauen Sie sich Software-Engineering, Software-Engineering-Management und Engineering-Management-Programme an. Wenn Sie mehr Wert auf Unternehmensführung legen, können Sie MBA-Programme, Unternehmensführung oder einige Engineering-Management-Programme mit einer starken wirtschaftlichen oder finanziellen Komponente in Betracht ziehen.

Thomas Owens
quelle
1
Ja, aber wie machen Sie eigentlich den Wechsel vom Senior Software Engineer zum Manager? Ich meine, wenn ich das Gefühl habe, all die Dinge zu kennen, die Sie oben aufgelistet haben, was soll ich jetzt tun, um zu beweisen, dass ich es kann, wenn ich keine offizielle Erfahrung als Manager habe und nur das Gefühl, dass ich all diese Dinge wirklich kenne? Wie macht man diesen Schritt?
Trusktr
19

Diese anderen Antworten sind großartig, aber ich werfe meine 0,02 $ ein. Ich bin von einem Nachwuchsentwickler in meinem derzeitigen Unternehmen zu einem leitenden Entwickler und dann zu einem Teamleiter und jetzt zu einem Architekten gewechselt. Es hat mehrere Jahre gedauert. Wann immer mir eine Beförderung zuteil wurde, geschah dies, weil ich bereits bestimmte Aufgaben wahrnahm und mein Management dies nur erkannte und mir den entsprechenden Titel gab. Daher rate ich Ihnen, nicht zu warten, bis Sie erfahren, dass Sie ein technischer Leiter oder Manager sind. Übernehmen Sie einfach die Verantwortung, die Personen in diesen Rollen haben. Nach ein paar Monaten oder einem Jahr werden Sie feststellen, dass Sie im Grunde genommen den Job machen, den Sie anstreben, und Sie können Ihr Management darauf hinweisen, wenn sie es nicht bemerkt haben.

RationalGeek
quelle
2
Ich wurde entlassen, weil ich genau das getan habe, was Sie in einer Firma gesagt haben (und dieser Manager, der mich später entlassen hat, hat auch die Firma verlassen). Es war keine gute Passform. Es war immer ein Kampf um die Spitzenpositionen im Unternehmen, sehr wettbewerbsfähig und egozentrisch. Es ist viel besser, in einem Unternehmen zu sein, in dem Menschen, die Initiative ergreifen, um größere Dinge zu erreichen, als sie es zuvor getan haben, Unterstützung, Ermutigung und Anleitung von denen erhalten, die bereits höher sind.
Trusktr
9

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 aktuellen Chef, sondern ergreife 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 überlastet. Wenn er sieht, dass Sie Anweisungen geben, für die er möglicherweise nicht genügend Zeit hat, um mitzuhalten, wird er höchstwahrscheinlich gerne eine gewisse Managementverantwortung an Sie delegieren. Wenn Sie dies richtig machen, delegiert Ihr Chef im Laufe der Zeit mehr und mehr an Sie (weniger, um die er sich Sorgen machen muss) und er wird Sie mit größerer Wahrscheinlichkeit dabei unterstützen, mehr Verantwortung zu übernehmen, bis zu einem Punkt, an dem Sie die offizielle Führung übernehmen.
  2. Denken Sie daran, dass Teambildung und Führung mehr mit Soziologie als mit Technologie zu tun haben (aus einem der populärsten Software-Methodenbücher, vielleicht Brooks). Ihr Ziel ist es, Menschen und ihr Verhalten zu verstehen. Das ist etwas ganz anderes als zu verstehen, wie Computer funktionieren. Ohne diese Erkenntnis machen gute Ingenieure einige der schlechtesten Teamleiter, weil sie diesen mentalen Wechsel nicht vollziehen und erkennen, dass man Menschen nicht so steuern kann, wie man Maschinen steuert. Tatsächlich scheint der einzige Ansatz zu funktionieren, die Menschen überhaupt nicht zu kontrollieren, sondern ihnen Anweisungen zu geben. Lesen Sie, lesen Sie und lesen Sie Bücher / Artikel / Blogs über Führung. Ein Buch, das ich empfehlen könnte, ist Management 3.0

... und jetzt gehe ich die Links durch, die Thomas gepostet hat

DXM
quelle
Dies ist ein schlechter Rat, der darauf hindeutet, dass jemand etwas tut, wozu Ihr Chef Sie nicht aufgefordert hat.
Professor für Programmierung
Ich habe diese Frage vor 5 Jahren beantwortet, als ich ein Entwickler war. Jetzt komme ich darauf zurück und lese es aus der Perspektive eines Managers. @ Bonner - Sie haben Recht. Es gibt verschiedene Manager mit unterschiedlichen Stilen. Einige werden dich verärgern, wenn du etwas tust, von dem dir nicht gesagt wurde, dass du es tun sollst. In diesem Fall ist mein Rat an Sie von diesem Manager weggelaufen. Alles, was ich getan habe, ist meinen Jungs beizubringen, selbständig zu denken und mich ersetzbar zu machen. Ich fordere jeden auf, einen Ausgleich zwischen dem engen Fokus seiner eigenen Aufgabe (n) zu finden, aber auch nach vorne zu schauen und ein breiteres Bild zu sehen.
DXM
5

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

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

Lassen Sie Ihren Vorgesetzten wissen, dass Sie an solchen Gelegenheiten interessiert sind. Unter der Annahme, dass Sie mit Ihren derzeitigen Aufgaben gut zurechtkommen, wird er Gelegenheiten zu Ihnen lenken, wenn sie auftauchen. Initiative zählt viel. Die meisten Manager lassen Sie zumindest beobachten, auch wenn sie glauben, dass Sie im Moment nicht qualifiziert sind.

Karl Bielefeldt
quelle
4

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

Eine andere Möglichkeit wäre, einen Blick auf die PMBOK Project Management Body of Knowledge- Zertifizierung zu werfen . 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.

Das PMBOK ist ein extrem harter Test und erfordert eine Menge Studium, um ihn zu bestehen. Ich denke auch, dass sie Anforderungen an das tatsächliche Projektmanagement und die Führungserfahrung haben, um sich für den Test zu qualifizieren.

maple_shaft
quelle
3
Vielleicht bin es nur ich, aber ich würde eher einen Abschluss in Software Engineering Management oder einen Abschluss in Engineering Management anstreben, besonders wenn Sie in das technische Management oder die Führung einsteigen möchten. Ich habe gesehen, wie Ingenieure einen MBA erhalten und in die Geschäftswelt eines Softwareprogramms eingeführt wurden, ohne die Ingenieure tatsächlich zu managen oder zu führen.
Thomas Owens
@ThomasOwens, das ist eine gute Anmerkung. Ich habe immer gezögert, einen MBA zu machen, da ich mir nicht sicher war, ob sich das auf die meisten technischen Bereiche übertragen lässt oder nicht.
Slandau
Die PMP-Prüfung ist gar nicht so schwer.
Morons
@Morons Ich gehe weiter, was mir ein paar PMs über ihre Erfahrungen erzählt haben, ich habe es selbst nie genommen. Aber jetzt, wo ich darüber nachdenke, waren diese beiden Leute nicht mehr so ​​klug.
maple_shaft
2

Das hört sich für mich so an, als ob Sie in Richtung Projektmanagement arbeiten möchten. Eine große Anzahl von PM-Positionen innerhalb der Software-Entwicklung erfordert ebenfalls Codiererfahrung.

Ich würde nach Positionen suchen, in denen Sie zu Verantwortlichkeiten heranwachsen können, die Ihnen das Management / Führungsschiff verschaffen, das Sie sich wünschen. Wenn Sie die Leiter nach oben schieben, kann dies anders aussehen, je nachdem, wie die Dinge dort funktionieren, wo Sie arbeiten. Aber auch bei geringerer Erfahrung in der Programmierung stehen PM-Positionen zur Verfügung, wenn Sie über Erfahrung in Führung und Management verfügen.

D ..
quelle
Dies wurde in der ursprünglichen Frage festgestellt: "... nach welchen Dingen oder Möglichkeiten ich Ausschau halten sollte, um meine Karriere zu einer eher leitenden als zu einer kodierenden Rolle voranzutreiben ...". @slandau sucht Ratschläge dazu.
Thomas Owens
1
Ja, ich stimme zu. Hast du irgendwelche Tipps, wie ich anfangen würde, darauf hinzuarbeiten?
Slandau
Ja, ich habe versehentlich den Post-Button gedrückt, bevor ich das wollte.
D ..
@D .., ich habe einige Führungserfahrungen, aber es waren alles Nebenprojekte und Projekte, die ich im College gemacht habe ... ich bin mir nicht sicher, ob das genug ist. Ist es?
Slandau
Höchstwahrscheinlich nicht, Sie möchten sich auf eine Berufserfahrung einstellen, die Ihnen diese ermöglicht. Möglicherweise fällt es Ihnen an einigen Stellen leichter, auf eine leitende Entwicklerrolle hinzuarbeiten. Ich würde nach offenen Positionen Ausschau halten, die tun, was Sie wollen, die Anforderungen prüfen und jede Gelegenheit nutzen, um die gängigsten zu bekommen. Die meisten Orte, an denen ich gearbeitet habe, waren klein und ermöglichten es mir, ohne großen Aufwand ordentlich in die nächste Ebene aufzusteigen. Schauen Sie sich Ihren aktuellen Job an ... können Sie dort hinaufziehen? Vielleicht haben Sie einen definierten Pfad, von dem aus Sie jetzt die Vorteile nutzen können.
D ..