Deweloper solo a twórca zespołu: czy powinienem przejść dalej? [Zamknięte]

52

Pracuję jako programista solo w małej firmie. Jest więcej niż wystarczająco pracy, ale to samo nie dotyczy pieniędzy. Dlatego w najbliższej przyszłości nie będę widywać nowych kolegów.

Odpowiadam za absolutnie wszystko, co ma związek z operacjami IT. Obejmuje to rozwój i konserwację oprogramowania używanego wewnętrznie, rozwój i utrzymanie różnych stron internetowych, z których korzystają nasi klienci, infrastrukturę strony internetowej, infrastrukturę sieci lokalnej, w tym utrzymanie kilku serwerów i wsparcie wewnętrzne, aby wymienić najpilniejsze rzeczy.

Naprawdę lubię 95% tego, co robię, i mam dużą elastyczność w swojej pracy. Mogę decydować, co zrobić, kiedy i nikt tak naprawdę nie mówi mi, co zrobić, z wyjątkiem tego, że od czasu do czasu siadam z kolegami, aby stworzyć plan działań, które muszę zrobić. Uważam, że mam wysoką etykę pracy i jestem ponadprzeciętna, koncentrując się na tym, co robię, więc wszystko jest załatwione.

Doszedłem jednak do momentu, w którym naprawdę brakuje mi ludzi wokół mnie, którzy pracują z tym samym. Mimo, że jako solowy programista muszę się zapoznać z szeroką gamą technologii, mam wrażenie, że brakuje mi „dzielenia się wiedzą”, w którym biorą udział inni „podobnie myślący” ludzie pracujący w większych firmach w środku. Naprawdę nie mam z kim omawiać przeszkód programistycznych i decyzji projektowych - i zaczynam tęsknić. Martwię się również o to, co przyszli pracodawcy mogą pomyśleć o tym „pustelniku”, który zbyt długo pracuje na własną rękę, aby kiedykolwiek móc wziąć udział w zespole.

Jednak z drugiej strony myślę, że nie uzyskam obecnego stopnia elastyczności w większej firmie. Będę widział o wiele bardziej rygorystyczne terminy, późne godziny i wyspecjalizowane obszary pracy. Również; Nie jestem pewien, czy kiedykolwiek uda się zrealizować ten pomysł „dzielenia się wiedzą”?

Czy ktoś jeszcze był w takiej sytuacji? Czy to dobry pomysł z perspektywy kariery i rozwoju osobistego? Czy powinienem rozważyć przeniesienie się do większego miejsca, aby (być może) stać się częścią większej grupy programistów i osób o podobnych poglądach? Innymi słowy, czy trawa będzie bardziej zielona po drugiej stronie?

sbrattla
źródło
23
shhhhhhh .... tysiące programistów utknęło w ślepych zaułkach firmowych, które prześlą swojemu szefowi swoje CV.
Reactgular
2
Chciałbym tylko dodać, że nic nie uczy, jak rozwiązywać problemy, jak bycie całkowicie odpowiedzialnym za pewien aspekt firmy programistycznej. Konieczność zdobycia rzeczy, które nie są uważane za zbyt opłacalne do pracy.
Benjamin Gruenbaum
37
Moje doświadczenie związane z przejściem od samodzielnego programisty do pracy w zespole polega na tym, że może być szokujące, ilu programistów nie ma pojęcia o żadnej z zasad, które moglibyście wywrzeć wrażenie, do którego dążą wszyscy programiści (jak SOLID). A z tych, którzy o nich słyszeli, opiekuje się tylko stosunkowo niewielka część. Przygotuj się na to i z góry zdecyduj, co zrobisz, jeśli dotyczy to ciebie.
Amy Blankenship
5
@Amy ma rację co do pieniędzy. Taka jest moja sytuacja i musiałem dostosować się do kodu głównie spaghetti i braku zasad. Poza tym cieszę się z codziennych rozmów z innymi programistami. Wszystko to sprawia, że ​​warto to zmienić.
Simon Whitehead,
1
IMO - Jeśli jesteś w stanie zrobić wszystko sam w swojej obecnej pracy, nie robisz nic wystarczająco skomplikowanego, aby kontynuować karierę. Jeśli jest to problem, musisz znaleźć pracę przy użyciu swojego zestawu umiejętności w zespole. Nawet wolne elektrony nie są w stanie budować projektów, które będą cię popychać do przodu. Jeśli jesteś zadowolony z tego, co robisz (95%?), I możesz zagwarantować, że będziesz w stanie to zrobić do momentu przejścia na emeryturę, na pewno pozostań. Jeśli nie, to po 3-5 latach prawdopodobnie będziesz musiał iść naprzód.
Joel Etherton,

Odpowiedzi:

53

Jeśli lubisz swoją pracę i brakuje Ci tylko dzielenia się wiedzą, rozważ dołączenie do projektu open source zamiast zmiany pracy. Jeśli nie znasz ludzi, z którymi będziesz pracować, nie masz pojęcia, czy trawa będzie bardziej zielona po drugiej stronie.

Nemanja Trifunovic
źródło
10
Inne opcje obejmują listy mailingowe, spotykać się na czacie SO, lokalne grupy programistów (jeśli nadal istnieją) i tak dalej. Ale główna idea jest taka sama: znajdź pozalekcyjną drogę do dzielenia się wiedzą
Bobson
3
To wszystko jest lepsze niż nic, ale sieć nigdy nie zastąpi prawdziwych ludzi. Klawiatura i monitor nigdy Cię nie pokochają.
Balog Pal
To świetna sugestia, ponieważ jako programista, który pracuje na dużej autonomii w zakresie używanych przeze mnie technologii, uczestnictwo w dyskusjach grupowych, takich jak czat w projektach SO, FOSS i witrynach, jest bardzo wydajne.
Benjamin Gruenbaum
@Nemanja: dobra sugestia (choć jak wspomina Balog; nigdy nie zastąpi prawdziwych ludzi)!
sbrattla
@BalogPal - Właśnie dlatego zasugerowałem lokalne grupy programistów ... ale jestem pewien, że są one znacznie rzadsze niż kiedyś.
Bobson
10

Jest to zgodne z moim powiedzeniem: „Programowanie jest jak seks. Możesz robić to sam, ale w ten sposób jest o wiele mniej zabawy. I doprowadza Cię do szału, jeśli robisz to w ten sposób zbyt długo”.

Tak, wygodnie jest być własnym szefem i samotnym mistrzem departamentu. Przerażające jest także pozostawienie ustalonej powłoki. Nie wspominając już o stawianiu czoła wrogiemu światu na zewnątrz. I zacznij od dołu jeszcze raz. Rozstanie jest jeszcze trudniejsze, jeśli nie zostaniesz wyrzucony i / lub źle się czujesz porzucając firmę, która cię potrzebuje i być może jest zamknięty.

Byłam tam. Pracował około 12 lat w firmie jako armia 1-osobowa. W ubiegłych latach było tak, jakby wielu dzwoniło do Kanaana, pracowało głównie siedząc w domu, po prostu otrzymując notatkę „Klient X chce czegoś sprawdzić”, a następnie kilka dni później wysłałem wiadomość, że można podpisać umowę na kwotę X i termin Y, a następnie miesiąc później wysłano inną pocztę, że fakturę można wysłać. I pracowałem może 1 godzinę dziennie średnio - na cały etat. Wszyscy też byli zadowoleni z szefa i klientów.

ale rosło na mnie i pomimo tego, że cały czas byłem w większości zmarnowany.

W końcu opublikowałem ultimatum, aby zmienić kolejność pracy, dzięki czemu mogę pracować w zespole lub nie ma mnie. Szef prawdopodobnie pomyślał, że to blef. Ostatecznie wyszedłem na dobre. Myśl będzie miała pracę następnego dnia. Tak, jasne. ;-)

Spotkałem się z serią wywiadów i firm uber-WTF, ale po kilku miesiącach dostałem pracę. W firmie, która okazała się wielkim frajerem, ale lokalne zespoły naprawdę się zachwiały. Przynajmniej kiedy dołączyłem, rok po tym, jak zaczęło się masowe odejście, oczywiście z najlepszym człowiekiem. Mam te same pieniądze, ale ponad 8 godzin pracy w biurze + zamieszanie. W projekcie, który miał mnóstwo poważnych problemów. A zdalni bossowie pilnowali wszystkich błędów.

ale ogólnie znów poczułem się żywy i chętnie wykonuję odpowiednią pracę. w zespole, który walczył o to samo i był szczęśliwy, że w końcu zaczęliśmy robić postępy przy wietrze i wrogiej pogodzie. Według mnie zmiana była tego warta. Żałuję tylko, że nie wyjechałem 4-5 lat wcześniej.

Kontynuacja nie jest tak naprawdę istotna (w rzeczywistości opuściłem ostatecznie, tym razem tylko rok później niż optymalnie, stworzyłem projekt domowy, a następnie dołączyłem do innej obiecującej firmy, a nasz zespół poczynił niesamowite postępy, firma skręciła na południe i tym razem w końcu wyjechałem dokładnie na zenit - i po wyliczonych wakacyjnych wakacjach wylądowałem tam, gdzie teraz pracuję, bez planów na wyjazd.) Chodzi o to, że życie się układa, nigdy nie tak, jak się spodziewasz, ale na dłuższą metę na lepsze.

Najważniejsze jest to, że jeśli nie widzisz już Słońca, lepiej zamknij fałszywe nadzieje. Po prostu nie będzie lepiej. Możesz albo forsować drogę, albo szukać żyznej ziemi.

Balog Pal
źródło
1
Dzięki za komentarz! Mam nadzieję, że miałeś duży ogród do spędzenia 6,5 ​​godziny po „[...] może 1 godzinie dziennie uśrednionej [...]” codziennej pracy :-). Tak czy siak; dziękuję za podzielenie się własnym doświadczeniem; Widzę siebie w tym, co opisujesz od samego początku.
sbrattla
7

To, że przechodzisz do sytuacji, w której pracuje więcej niż jeden programista, nie oznacza, że ​​będziesz ograniczony terminami, późnymi godzinami i specjalistycznymi obszarami pracy. Tak, istnieją korporacje, które to robią, ale są też małe i średnie firmy, które również potrzebują programistów, a niektóre z nich są bardzo podobne do obecnego środowiska pracy, tylko z więcej niż jednym programistą.

Przypuszczam, że zależy to od tego, gdzie leżą twoje cele zawodowe. Jeśli jesteś zadowolony ze swojej obecnej sytuacji, ale chcesz więcej interakcji z programistami, proponuję poszukać małej firmy z zespołem 5-10 programistów, do którego możesz dołączyć. Pozwoli ci to na dużą elastyczność, ale nadal będziesz mieć okazję do pingowania pomysłów.

Z perspektywy rekrutacji, kiedy recenzowałem potencjalnych programistów, nigdy nie pytałem, czy są pustelnikami. Jednak przykłady pracy w zespole są niezwykle ważne, gdy ktoś bierze udział w zespole. Jak dana osoba postępuje z innymi osobami o różnych opiniach? Co zrobili w przeszłości, aby zapewnić, że cała grupa uzyska najlepszy wynik? Nie mają one nic wspólnego z innymi programistami, chodzi o pracę z ludźmi (o czym mówiłeś, że już to robisz).

Jeśli chcesz objąć stanowisko kierownika technicznego wyższego szczebla, zdecydowanie musisz przejść na pozycję kilku innych programistów, gdzie masz szansę zostać liderem zespołu. Bardzo trudno jest wyjaśnić, że masz wiedzę specjalistyczną do kierowania zespołem programistycznym, jeśli nie masz doświadczenia w pracy w zespole programistycznym.

Jay S.
źródło
Patrząc na to z perspektywy długoterminowej, prawdopodobnie sensownym jest przesunięcie się w kierunku bardziej „abstrakcyjnych” pozycji z wiekiem. Kiedy skończę 60 lat (za 30 lat), prawdopodobnie nie będę miał szans konkurować z nowo wykształconymi programistami ... więc w pewnym momencie sensowne może być przejście do czegoś w rodzaju roli przywódcy technicznego. I; właśnie tam pojawia się doświadczenie zespołu ...
sbrattla
6

Jestem w bardzo podobnej sytuacji do tego, co opisałeś. Moim głównym problemem są pieniądze, skoro o tym wspomniałeś. Czasami myślę, że jestem zbyt samotny i pragnę więcej akcji i dzielenia się wiedzą, ale patrząc wstecz na moje poprzednie firmy, wiem, że prawdopodobnie tak nie byłoby (zły kod, konflikty ego, bezcelowa biurokracja itp.), Ale teraz ja spędzam czas na uczeniu się technologii, których chcę się uczyć, czytać książki i korzystać z wybranych przeze mnie narzędzi. Czasami jest nudny, inni przerażający, czasami brakuje motywacji, ale ogólnie jest całkiem satysfakcjonujący, gdy rozwiązujesz wyzwania jako programista z pełnym stosem.

Aby być na bieżąco i zdobywać nowe pomysły, zazwyczaj przeglądam tę stronę, programistów SE. Inną rzeczą, którą robiłem w przeszłości, są małe koncerty w Odesku: możesz pracować dla innych programistów nad ich projektami i czerpać korzyści z nauki ich technik. Nie rób tego jednak dla pieniędzy, chyba że mieszkasz w kraju o bardzo niskich zarobkach.

Ostatnia rada: jeśli nie masz kilku lat doświadczenia, wróciłbym do zespołu programistów. Wszystkie różne techniki i wiedza, które zdobyłem przez lata, nie sądzę, że byłbym w stanie to zrobić sam, nawet z Google i SO. Część tego jest po prostu niezastąpiona. W tym momencie powiedziałbym, że możesz w pełni wykorzystać bycie deweloperem solo i dobrze się bawić.

DPM
źródło
Pieniądze nie są tak naprawdę dużą częścią mojej troski. Chodzi bardziej o naukę i rozwijanie umiejętności osobistych. Nigdy nie pracowałem w zespole, tylko jako samotny programista, więc rozumiem, o co ci chodzi w dołączeniu do zespołu.
sbrattla
3

Jako rozszerzenie do projektu „Dołącz do projektu OpenSource” autorstwa @NemanjaTrifunovic mogę zaproponować pójście na konferencję lub przeprowadzenie profesjonalnych szkoleń.

Wyjście z codziennej rutyny poprzez sprawdzenie, jak inni rozwiązują problemy, które miałeś / miałeś, lub zobaczyć, w jaki sposób nowe technologie mogą pomóc zmienić Twój punkt widzenia lub nauczyć się nowej technologii, która nie ma nic wspólnego z twoją obecną pracą, może być świetną motywacją podnieść.

Dlaczego nie zaprezentujesz swoich rozwiązań na konferencji?

Twój szef, jeśli jest bystry, chętnie poniesie wszystkie koszty (podróży / szkoleń), ponieważ (powinien) wie, że takie rzeczy bardzo motywują.

Oprócz tego możesz zbudować sieć, która w przyszłości pomoże ci znaleźć pracę.

Patrick B.
źródło
3

Myślę, że powinieneś przekonać swoją firmę do poszukiwania przynajmniej jednego innego programisty. Może młodszy, którego szkolisz na miejscu, aby zapoznać się z systemem. W ten sposób będziesz mieć ciągły, celowy strumień rozmowy.

Wskaż swoją firmę Bus Factor, aby ich przekonać. Tylko jeden programista odpowiedzialny za wszystko jest bardzo wysokim ryzykiem. Nikt nie powinien przechowywać wszystkich jaj w jednym koszyku.

herzmeister
źródło
3

W życiu nie ma żadnych gwarancji, więc możesz przenieść się do większej firmy i wymienić zestaw problemów na inny i być może większy zestaw. Wielu zalecało dołączenie do lokalnych grup technicznych, aby zająć się kontaktami z ludźmi o podobnych poglądach, ale nie będą oni w stanie podjąć wielu drobnych decyzji, które podejmujesz samodzielnie.

Moją sugestią byłoby utrzymanie obecnej pracy, ale angażowanie się i tworzenie sieci w lokalnej społeczności technologicznej. Szukaj osób i firm, z którymi chciałbyś współpracować. Każda duża firma nie oferuje tego, czego szukasz. Jeśli pojawi się lepsza okazja (i powinieneś mieć wiedzę z pierwszej ręki, że jest lepsza), spójrz na nią.

Większość z nas nie znalazła idealnej pracy, która oferuje taki rodzaj pracy, jakiego ostatecznie chcemy. Nie masz doświadczenia w pracy z zespołem, ale to nie jest z wyboru. Podjąłeś pracę, która ma inne rzeczy, które wolisz. Nie sądzę, aby przesłuchanie w tym punkcie w osobistym wywiadzie było zbyt trudne.

JeffO
źródło