Jak mogę przejść od programisty do menedżera oprogramowania lub lidera zespołu? [Zamknięte]

42

Od prawie 3 lat jestem programistą (w niepełnym wymiarze godzin lub w pełnym wymiarze godzin). Zawsze byłem typem osoby, która ma talent do kierowania rzeczami i zapewniania organizacji, aby załatwiła sprawy. Odkąd byłem studentem mojego wyższego projektu w college'u, czułem, że to moje prawdziwe powołanie, a nie siedzenie za kodowaniem na biurku. Teraz wiem, że muszę zrozumieć, jak napisać kod, aby inni programiści naprawdę mnie szanowali. Poza tym uwielbiam kodować. Pracuję nad wieloma bocznymi projektami w domu poza pracą, nadążam za najlepszymi praktykami kodowania i staram się stale poszerzać swoją wiedzę w tej dziedzinie.

Moje główne pytanie brzmi: jakiego rodzaju rzeczy lub okazji powinienem szukać, co pomogłoby mi rozwinąć karierę do roli kierowniczej, a nie programistycznej. Tak jak powiedziałem, uwielbiam kodować, ale chciałbym jeszcze bardziej móc projektować rzeczy na wysokim poziomie i organizować zespół w taki sposób, aby robić rzeczy i monitorować ich postępy, jednocześnie pomagając w kwestiach technicznych decyzje tu i tam. Tego rodzaju rzeczy naprawdę mnie uszczęśliwiają, w przeciwieństwie do siedzenia przez cały dzień za biurkiem i kodowania.

Oczywiście jednym z moich głównych marzeń jest stworzenie własnego oprogramowania, które w końcu wybuchłoby i uczyniło go wielkim, a następnie zaczęło zatrudniać zespół i robić to wszystko sam, ale mam wrażenie, że szanse na to są znacznie gorsze niż tylko trochę zmienić moją ścieżkę kariery, aby dostać się tam, gdzie chcę iść. Czuję, że mogę czerpać tę samą satysfakcję, robiąc to raczej dla pracodawcy niż dla siebie. Mimo że wcześniej tak się nie czułem, wydaje mi się, że dzieje się tak głównie dlatego, że nie robię tego, co NAPRAWDĘ chcę robić.

Jakieś wskazówki, wskazówki lub rzeczy, o których warto pamiętać? Ktoś, kto właśnie to zrobił, a jeśli tak, to jak to zrobiłeś?

komar
źródło
Jaki masz wykształcenie? Jak długo byłeś na swojej obecnej pozycji?
Thomas Owens
Mam licencjat z informatyki. Na obecnym stanowisku jestem od około roku.
1
@slandau Wyraźnie wołam, że nie zamierzasz pełnić roli premiera. podczas gdy może się to wydawać oczywistym kierunkiem; Twój opis i potrzeby różnią się od roli PM i nie wierzę, że rola PM będzie tym, za czym ostatecznie będziesz dążyć.
Aaron McIver,
1
@AaronMcIver To zależy od tego, gdzie pracujesz. Niektórzy prezydenci mają charakter biznesowy, a niektórzy mają bardziej techniczny charakter. W niektórych miejscach „kierownik inżynierii” może być bardziej popularnym tytułem, aw innych może to być po prostu „inżynier oprogramowania”.
Thomas Owens
2
Po pierwsze, porzuć swoją duszę ... :-)
Paul Tomblin

Odpowiedzi:

41

Przejście z roli programisty na rolę kierowniczą lub przywódczą wymaga czasu. Specjalizowałem się w inżynierii oprogramowania, kładąc nacisk na proces inżynierii oprogramowania, a także w zarządzaniu biznesem i komunikacji. Nawet z tym doświadczeniem akademickim w zakresie zarządzania projektami oprogramowania, rekrutacji i zatrudniania, kierowania zespołami oraz komunikacji z grupami werbalnie i na piśmie, odkryłem, że najbardziej role kierownicze i przywódcze, szczególnie w branży, której chciałem do pracy, wymagam ponad 5 lat doświadczenia w inżynierii oprogramowania (miałem 2, w tym spółdzielnie i staże).

W międzyczasie po prostu kontynuowałem studia na temat zarządzania projektami.

Pierwszą rzeczą, którą poleciłbym, to zostać dobrym komunikatorem i negocjatorem. Dowiedz się, jak prowadzić ważne rozmowy. Nawet jako programista muszą podejmować decyzje z udziałem współpracowników, klientów i użytkowników. Czasami musisz odbyć trudne rozmowy i dojść do porozumienia, które przynosi korzyści wszystkim. Nie jest to łatwy cel, ale książka Trudne rozmowy: jak dyskutować o tym, co najważniejsze Najbardziej polecam tę właśnie tematy. Są też inne, takie jak „ Przebicie się nie” i „ Tak”: negocjowanie umowy bez podania jej , które również byłoby pomocne. Są one istotne bez względu na to, jaką pozycję zajmujesz.

Z technicznego punktu widzenia zrozumienie cyklu życia oprogramowania jest ważne dla kierowania zespołami oprogramowania i zarządzania nimi. Pozycje przywódcze prawdopodobnie oznaczają, że zajmujesz się inżynierią wymagań, architekturą systemu oprogramowania, projektowaniem, wdrażaniem, testowaniem i zapewnianiem jakości oraz zadaniami utrzymania. Chociaż nie możesz być ekspertem, menedżer lub lider musi przynajmniej zrozumieć je wszystkie. Jako programista prawdopodobnie wykonujesz większość prac związanych z projektowaniem, wdrażaniem i konserwacją, z pewnymi testami. Bardzo poleciłbym książki takie jak Wymagania programowe (i towarzyszące, Więcej informacji o wymaganiach programowych ), Architektura oprogramowania w praktyce (chociaż moja uczelnia przeszła naArchitektura systemów oprogramowania: praca z interesariuszami przy użyciu punktów widzenia i perspektyw po ukończeniu kursu architektury, który został mi zalecony) oraz wskaźników i modeli w inżynierii jakości oprogramowania .

Z perspektywy zarządzania projektami można dowiedzieć się o modelach procesów i metodach. Istnieją zwinne metody, takie jak Scrum i programowanie ekstremalne, oraz metody oparte na planach, takie jak Waterfall i Spiral. Istnieją również ramy metodologiczne, takie jak CMMI i proces oprogramowania osobistego / proces oprogramowania zespołu. Te, które są dla Ciebie istotne, zależą od miejsca pracy, pod względem branży i firmy. Istnieje wiele książek na temat różnych metodologii i struktur, ale gorąco polecam Rapid Development: Taming Wild Software Schedules do ogólnego zarządzania inżynierią oprogramowania i procesu inżynierii oprogramowania.

Jeśli chcesz kontynuować edukację, możesz spojrzeć bardziej na ścieżkę zarządzania technicznego niż na ścieżkę zarządzania firmą. Jeśli potrzebujesz stanowiska kierownika technicznego, spójrz na inżynierię oprogramowania, zarządzanie inżynierią oprogramowania i programy do zarządzania inżynierią. Aby uzyskać więcej informacji o ścieżce zarządzania biznesem, możesz rozważyć programy MBA, zarządzanie biznesem lub niektóre programy zarządzania inżynierią, które mają silny aspekt ekonomiczny lub finansowy.

Thomas Owens
źródło
1
Tak, ale jak faktycznie przejść od starszego inżyniera oprogramowania do kierownika? To znaczy, zakładając, że czuję, że znam wszystkie rzeczy wymienione powyżej, co mam teraz zrobić, aby udowodnić, że mogę to zrobić, biorąc pod uwagę, że nie mam oficjalnego doświadczenia w roli kierownika i mam wrażenie, że naprawdę znam te wszystkie rzeczy? Jak zrobić ten krok?
trusktr
19

Te inne odpowiedzi są świetne, ale wrzucę moje 0,02 $. Przeszedłem z młodszego programisty w mojej obecnej firmie przez szeregi do starszych programistów, a następnie kierownika zespołu, a teraz architekta. Zajęło to kilka lat. Ilekroć dostałem awans, było tak dlatego, że już wykonywałem pewne prace , a moje kierownictwo po prostu to dostrzegało i nadawało mi odpowiedni tytuł. Dlatego radzę nie czekać, aż dowiesz się, że jesteś kierownikiem technicznym lub menedżerem. Po prostu zacznij przejmować obowiązki, które mają osoby pełnione w tych rolach. Po kilku miesiącach lub roku przekonasz się, że zasadniczo wykonujesz pracę, na którą celujesz, i możesz wskazać to swojemu kierownictwu, jeśli go nie zauważyli.

RationalGeek
źródło
2
Zostałem zwolniony za robienie dokładnie tego, co powiedziałeś w jednej firmie (i ten menedżer, który mnie zwolnił, również opuścił firmę). To nie było dobre dopasowanie. Wydawało się, że zawsze była walka o awans na najwyższe stanowiska w firmie, bardzo konkurencyjna i egocentryczna. O wiele lepiej jest być w firmie, w której ludzie podejmują inicjatywę, próbując osiągnąć większe cele niż wcześniej, i otrzymują wsparcie, zachętę i wskazówki od tych, którzy są już wyżej.
trusktr
9

Nie będę próbował udzielić pełnej odpowiedzi, ponieważ Thomas Owens już wymienił kilka naprawdę dobrych rad (+1 do tego).

Chciałem tylko dodać kilka wskazówek / sugestii:

  1. Nie czekaj, aż ktoś poprowadzi cię; po prostu zacznij to robić. Nie chodzi mi o to, że idzie przeciwko twojemu obecnemu szefowi, ale zamiast tego przejmij inicjatywę, aby mu pomóc. Jeśli twój szef jest podobny do mojego, zwykle jest przeładowany zbyt dużą ilością zadań / spotkań na swoim talerzu. Jeśli zobaczy, że zapewniasz kierunek, w którym może nie mieć wystarczająco dużo czasu, aby nadążyć, najprawdopodobniej z przyjemnością przekaże ci część obowiązków zarządczych. Z biegiem czasu, jeśli zrobisz to dobrze, twój szef będzie przekazywał ci coraz więcej (mniej, żeby się o niego martwił) i bardziej prawdopodobne będzie, że wesprze cię w przejmowaniu większej odpowiedzialności do punktu, w którym jesteś oficjalnym przewodnikiem.
  2. Pamiętaj, że budowanie zespołu i przywództwo to bardziej socjologia niż technologia (z jednej z popularnych książek o metodologii oprogramowania, być może Brooks). Jako główny cel Twoim celem jest zrozumienie ludzi i ich zachowania, co jest czymś zupełnie innym niż zrozumienie działania komputerów. Bez tej wiedzy dobrzy inżynierowie robią jedne z najgorszych kierowników zespołów, ponieważ nie zmieniają mentalności i zdają sobie sprawę, że nie można kontrolować ludzi w taki sam sposób jak maszyn. W rzeczywistości jedyne podejście, które wydaje się działać, to wcale nie kontrolować ludzi, ale dać im kierunek. Czytaj, czytaj i czytaj dalej książki / artykuły / blogi na temat przywództwa. Jedną książką, którą mogę polecić, jest Management 3.0

... a teraz mam zamiar przejrzeć linki, które Thomas opublikował

DXM
źródło
To zła rada, sugerująca, że ​​ktoś robi coś, o co szef nie prosił, a większość szefów marszczy brwi, widząc, że ludzie robią rzeczy, o które nie zostali poproszeni.
Profesor programowania
Odpowiedziałem na to pytanie 5 lat temu, kiedy byłem programistą. Teraz wracając do niego, czytam go z perspektywy menedżera. @ Bonner - masz rację. istnieją różni menedżerowie o różnych stylach. Niektórzy skrzywdzą cię, jeśli zrobisz coś, czego nie kazano ci zrobić. W takim przypadku moja rada jest dla ciebie ucieczką od tego kierownika. Odkąd stałem się liderem, wszystko, co zrobiłem, uczy moich facetów samodzielnego myślenia i uczynienia mnie wymiennym. Proszę każdego o zachowanie równowagi między wąskim skupieniem własnego zadania (zadań), ale także o przyszłość i zobaczenie szerszego obrazu.
DXM,
5

Osobiście nie chcę obecnie opuszczać obecnej pozycji, ale w zależności od tego, gdzie jesteśmy w cyklu wydawania, spędzam od 10% do prawie 100% mojego czasu na zadaniach innych niż kodowanie. Jeśli jesteś cierpliwy i spostrzegawczy, istnieje wiele możliwości zrobienia czegoś innego niż „tylko kodowanie” w bieżącej pozycji. Na przykład:

  • Zgłoś się jako mentor do nowego członka zespołu.
  • Zostań ekspertem w dziedzinie nowych narzędzi, procesów lub technologii, które firma rozważa zastosować.
  • Wolontariusz dla komitetów międzyfunkcyjnych.
  • Mów o swoich pomysłach.
  • Zaproś się na planowanie spotkań dla nadchodzących funkcji.

Poinformuj swojego menedżera, że ​​jesteś zainteresowany tego rodzaju możliwościami, a zakładając, że dobrze sobie radzisz z bieżącymi obowiązkami, skieruje na ciebie okazje, gdy tylko nadejdą. Inicjatywa bardzo się liczy. Większość menedżerów przynajmniej pozwoli ci obserwować, nawet jeśli nie uważają, że masz obecnie kwalifikacje.

Karl Bielefeldt
źródło
4

Jeśli chcesz przejść do roli zarządzania projektami, absolutnie nie zaszkodzi brać nocne lekcje i pracować w kierunku swojego MBA.

Inną opcją byłoby zajrzenie do certyfikatu PMBOK Project Management Body of Knowledge . Wiele miejsc Cię nie rozważa, chyba że masz kilka lat doświadczenia w kierownictwie lub jeden z dwóch wymienionych powyżej elementów.

PMBOK jest niezwykle trudnym testem i wymaga dużo nauki, aby go zaliczyć. Myślę też, że mają wymagania dotyczące faktycznego doświadczenia w zarządzaniu projektami i przywództwa, aby móc przystąpić do testu.

wałek klonowy
źródło
3
Może to tylko ja, ale miałbym tendencję do uzyskania stopnia inżynierii oprogramowania lub inżynierii, szczególnie jeśli chcesz przejść do zarządzania technicznego lub przywództwa. Widziałem, jak inżynierowie uzyskują tytuł MBA i zostają wepchnięci na stronę biznesową oprogramowania, w rzeczywistości nie zarządzając ani nie kierując inżynierami.
Thomas Owens
@ThomasOwens, to dobra notatka. Zawsze wahałem się przed uzyskaniem MBA, ponieważ nie byłem pewien, czy to przełoży się na większość technicznych miejsc, czy nie.
slandau
Egzamin PMP nie jest taki trudny.
Morons,
@ Morons Idę na to, co kilka PM powiedział mi o ich doświadczeniu, nigdy nie wziąłem tego. Ale teraz, kiedy o tym myślę, te dwie osoby nie były aż tak jasne.
wałek klonowy
2

Wydaje mi się, że możesz chcieć pracować w kierunku Project Management. Duża liczba pozycji PM w zakresie tworzenia oprogramowania również wymaga doświadczenia w kodowaniu.

Szukałbym stanowisk, w których można dorastać do obowiązków, które zapewnią ci pożądany statek zarządzający / lidera. Po przejściu po drabinie może wyglądać inaczej w zależności od tego, jak działają rzeczy w miejscu pracy. Ale nawet przy mniejszym doświadczeniu w programowaniu, stanowiska PM są dostępne, jeśli masz jakiekolwiek doświadczenie w kierowaniu i zarządzaniu.

RE..
źródło
Stwierdzono to w pierwotnym pytaniu: „... jakiego rodzaju rzeczy lub okazji powinienem szukać, co pomoże mi rozwinąć karierę do roli kierowniczej, a nie programistycznej ...”. @slandau szuka porady, jak to zrobić.
Thomas Owens
1
Tak, zgadzam się. Czy masz jakieś wskazówki, jak zacząć pracować nad tym?
slandau
Tak, przypadkowo nacisnąłem przycisk wysyłania, zanim zamierzałem.
D ..
@D .., mam pewne doświadczenie w kierowaniu, ale to wszystko dotyczyło projektów pobocznych i projektów, które zrobiłem z powrotem na studiach ... nie jestem pewien, czy to wystarczy. Czy to jest
slandau
Najprawdopodobniej nie, chcesz skupić się na jakimkolwiek profesjonalnym doświadczeniu zawodowym, które ci to zapewni. W niektórych miejscach może Ci być łatwiej pracować nad rolą starszego programisty. Miałem oko na otwarte pozycje, robiąc to, co chcesz, spojrzałem na wymagania i wykorzystałem każdą okazję, aby uzyskać te najczęstsze. Większość miejsc, w których pracowałem, były małe i pozwoliły mi spokojnie przejść do następnego poziomu bez większego wysiłku. Spójrz na swoją obecną pracę ... czy możesz się tam przenieść? Może masz określoną ścieżkę, z której jesteś teraz, z której możesz skorzystać.
D ..