Jako jedyny programista i jego konsekwencje [zamknięte]

16

Jestem jedynym programistą w mojej firmie. Zajmuję się programowaniem (w ASP.NET 4.0, jQuery i SQL Server 2008) oraz utrzymuję bazę danych i serwer WWW (Win 2008 R2).

Cieszę się swobodą w realizacji tego, co lubię, jednocześnie czuję, że wszystko robię źle. Nie używam żadnych diagramów SDLC ani żadnych metod takich jak Agile itp. Obsługuję wiele małych projektów. Wolny czas wykorzystuję na nadążanie za najnowszymi technologiami oraz naukę i testowanie nowych rzeczy. Robię to od 7 lat.

  1. Moje obawy dotyczą tego, jak trudno będzie mi się dostosować, kiedy zmienię pracę na firmę, w której więcej projektantów jest zaangażowanych w projekt?
  2. Skoro nie przestrzegam żadnego wzorca projektowego, czy grałbym przeciwko mnie, gdy szukam pracy lub dostosowuję się do nowej pracy?
  3. Jakieś inne zalety / wady, o których możesz pomyśleć?
bp581
źródło

Odpowiedzi:

8

Jeśli podoba ci się ta sytuacja z jej swobodami, prawdopodobnie nie spodoba ci się pójście gdziekolwiek, co postrzega to jako problem (po przeskoczeniu tego ogrodzenia wiem, że tak).

W rzeczywistości działa na twoją korzyść w przyszłych zawodach, ponieważ kończysz na znacznie szerszym zestawie umiejętności niż 90% ludzi.

Brak kogoś, z kim można się kłócić o decyzje za / przeciw, to problem, który opisuje Pierre (+1 dla niego), ale kolega z innej firmy, który ma cierpliwość do słuchania tego, co próbujesz zrobić i wystarczająco interesuje, aby mieć silna opinia służy tej roli ładnie, czasem lepiej niż współpracownik, ponieważ są one z zewnątrz. (Nadal to robię, mimo że teraz pracuję w większym sklepie, pomaga mi to nadążyć za tym, co robią inni, aby rozwiązać podobne problemy i zobaczyć przyszłe problemy w projekcie)

Inną kwestią, jaką miałem, gdy byłem samotnym twórcą, było to, że nie było nikogo, kto by mnie poparł, gdy nadszedł czas, aby naprawdę walczyć ze złym kierownictwem. Twój przebieg może się różnić, ale jeśli jesteś samotnym twórcą, a całe zarządzanie jest nietechniczne, wyjaśnienie, dlaczego powinieneś lub nie powinieneś robić coś bardzo trudnego, może być bardzo trudne, gdy przychodzi czas, aby powiedzieć im najnowsze marzenie nie jest rozsądne, aby spróbować wdrożyć przy użyciu obecnej technologii.

Rachunek
źródło
5
Innym problemem związanym z byciem jedynym technikiem jest sytuacja, gdy masz wysoką gorączkę i silne mdłości, a serwer internetowy przestaje działać. Jedno ma nadzieję, że mają plan awaryjny inny niż przyniesienie laptopa do szpitala, jeśli zostaniesz potrącony przez autobus.
David Thornley
1
To jest problem, ale często jest to problem również w dużych firmach, gdy zbyt cienko rozprowadzają swoje zasoby.
Bill
35

Kiedy jesteś sam, nikt nie może powiedzieć, że się mylisz

Możesz więc przez pewien czas pójść niewłaściwą ścieżką, nawet nie wiedząc.

Z tego powodu zachęcam do znalezienia osoby, z którą możesz porozmawiać o rozwoju. Nie tylko online, ale w rzeczywistości, fizycznie.

Nie musisz odchodzić z firmy. Jako jedyny ma również pewne zalety.


źródło
3
To fantastyczna rada ...
webdad3
4
Kluczowym słowem jest „maj”. Jeśli programista dokłada starań, aby nadal być wykształconym w zakresie różnych technologii i metodologii, a co ważniejsze, otaczających je danych, nie ma powodu, by sądzić, że będzie wykonywał mniejszą pracę. Oczywiście programiści, którzy pracują w próżni i po prostu trzymają się tego, co wiedzą, prawdopodobnie stają się coraz bardziej przestarzali.
Aaronaught
Zgadzając się z Pierre'em, dwóch programistów może stworzyć [kod, db lub cokolwiek] znacznie lepiej niż każdy z osobna]. Korzyści rosną wraz z większą liczbą deweloperów, ale zwrot jest malejący.
jamesbtate
5

Pracowałem jako jedyny programista w firmie, która znała określoną technologię, jako jedyny, który wykonał program, który wykonałem, oraz jako wykonawca w podobnych sytuacjach. (Pracowałem również w środowiskach zespołowych z innymi programistami, którzy znali różne narzędzia oraz z innymi programistami, którzy zrobili dokładnie to, co zrobiłem.)

Plusy bycia jedynym programistą

  • Jak wspomniałeś, często masz swobodę korzystania z narzędzi i języków, których możesz się uczyć. Nie zawsze musisz uzasadnić sprawę przed innymi, aby uzyskać pozwolenie na pracę z Nową Technologią X, podczas gdy wszyscy inni używają Bieżącej Technologii Y.
  • Masz więcej obowiązków. Zasadniczo działasz zarówno jako kierownik projektu, jak i programista w każdym ze swoich projektów, a dzięki swojej zdolności do identyfikowania i wdrażania nowych rzeczy skutecznie jesteś także kierownikiem działu. (Nie mów tego sprzedawcom. Uwielbiają rozmawiać z decydentami, a ty nie masz czasu z nimi rozmawiać).
  • Nie ma wątpliwości co do uznania za wykonaną pracę: to oczywiście Ty i Ty sam stworzyłeś rzeczy.
  • Możesz spędzać więcej czasu na pracy nad własnymi projektami, a mniej na spotkaniach dotyczących projektów, które są w zasadzie projektami innych osób (ale jesteś tam jako osoba wspierająca, możliwe tworzenie kopii zapasowych itp.)

Cons

  • Jak zauważył David w komentarzu, jesteś jedynym programistą, więc bez ciebie nie powstanie żaden program. Kiedyś chwaliłem się bratu, że jestem „facetem” przy konkretnym projekcie w pracy. Dokładnie opisał mi swoją sytuację: byłem uwięziony. Nie mogłem przejść do tej firmy, ponieważ nigdy nie pozbyłem się tego projektu. (On też miał rację. Zajęło mi to kilka miesięcy treningu przez dłuższy czas, zanim mogłem oddać go komuś, kto nawet był w stanie go wesprzeć.) Może ci być trudno wziąć prawdziwe wakacje, kiedy nic nie może niech się stanie bez ciebie.
  • Jak podkreśla Pierre, na miejscu nie ma nikogo, kto mógłby dokonać recenzji kodu lub podzielić się z Tobą najlepszymi praktykami. Możesz kontaktować się z rówieśnikami na różne sposoby, ale nic nie jest tak skuteczne, jak stuknięcie współpracownika w ramię i poproszenie jej, aby spojrzała na Twój kod przez 5-10 minut.
  • W podobny sposób możesz mieć trudności z uzyskaniem doświadczenia w korzystaniu z nowych narzędzi. Szkolenie poza siedzibą może być tak rzadkie jak czas wolny: ktoś narzeka, że ​​firma nie może sobie pozwolić na to, że nie będziesz patrzeć na Language 3.0 przez tydzień, gdy nie ma nikogo, kto mógłby utrzymać aplikacje Language 2.0.
  • Awans zawodowy może być niezwykle trudny do zarządzania. Możesz nie mieć pozycji, do której możesz dążyć, nawet zmiana tytułu może być trudna do zdobycia, a przeglądy na koniec roku nie mają żadnych ram odniesienia, więc doskonała praca może pozostać niezauważona, jeśli nie ma innej z tego powodu nikt tak naprawdę nie rozumie, co robisz.

Jeśli zdecydujesz się na przeprowadzkę do firmy, w której pracowałbyś w zespole programistów, nie sądzę, aby twoje solowe doświadczenie mogło cię bardzo zranić. Twój brak doświadczenia z wzorami projektowymi niekoniecznie jest tak ważny, jak chęć ich uczenia się. (Mogą się zdarzyć sytuacje, w których przeprowadzasz rozmowę z kandydatem o podobnym pochodzeniu, a także masz doświadczenie w zakresie wszelkich metod stosowanych przez firmę, ale dotyczy to w zasadzie wszystkich).

Na tej samej linii brak doświadczenia w drużynie równoważy umiejętność noszenia wielu czapek. Jest kilku programistów, którzy są dobrymi graczami zespołowymi, ale nigdy nie rozwijają umiejętności zarządzania projektem; już pokazałeś, że możesz to zrobić.

Zalecam, aby będąc programistą solo, poświęcić trochę czasu na czytanie narzędzi i technik, z których korzystają podobni programiści, więc nawet jeśli sam ich nie użyjesz, masz świadomość, że istnieją i możesz odnieść się do nich podczas wywiadu, choćby po to, by powiedzieć „tak, przeczytałem trochę o frameworkach MVC, ale sam ich nie użyłem”. Rób, co możesz, aby pozostać w kontakcie z innymi programistami: chodź na spotkania lokalnych grup użytkowników, czytaj i komentuj blogi (lub prowadź własne), od czasu do czasu próbuj dostać się na warsztaty, oglądaj seminaria internetowe itp. (Możesz również rozważyć witryny takie jak lynda.com do wewnętrznych szkoleń: to nie jest tak dobre jak tygodniowa konferencja gdzie indziej, ale możesz oglądać filmy w swoim własnym czasie i nie wprowadzać wszystkich w tryb paniki, ponieważ jesteś po za biurem.)

Dave DuPlantis
źródło
2

Twoje umiejętności programistyczne pogarszają się z każdym dniem, gdy znajdujesz się w takiej sytuacji. Kodowanie jest najłatwiejszą częścią pracy każdego programisty.

Komunikacja / praca z zespołem nad wdrożeniem rozwiązania jest nieskończenie trudniejsza. Umiejętności te można wyostrzyć tylko poprzez ich wykonanie. Również, gdy jesteś częścią zespołu, większość członków stara się nadążać za technologiami takimi, jakimi jesteś, więc szanse znalezienia czegoś wspaniałego przez zespół są znacznie większe.

Nie bierz tego za atak na ciebie osobiście. Jestem również samotnym programistą, ale szukam zespołu jak najszybciej.

Matt
źródło
Samo rozwijanie oznacza, że ​​przegapisz „programator kartonów”, który często jest przydatnym narzędziem. Zasadniczo, mający ktoś wyjaśnić problem często oznacza rozwiązanie prezentuje się w połowie objaśnienia (zanim druga strona ma szansę sugestii)
Phil Lello
0

Zgadzam się z odpowiedzią @Pierre 303 na 100%. Dodałbym również, że powinieneś wziąć na siebie naukę właściwych praktyk. Może pomoże też certyfikacja.

Tak, jeśli zmienisz pracę, będzie to trudne ... Nie tylko, jeśli mają procesy, do których nie jesteś przyzwyczajony, ale także z osobowościami. Programiści są niezwykle konkurencyjni. Nie musisz teraz sobie z tym radzić. Ale zrobisz to, gdy programiści> = 1

Wygląda na to, że masz dobry koncert ... Trzymałbym się tego.

Tylko moje 2 centy.

webdad3
źródło
0

Myślę, że brakuje ci faktu, że większość standardów / praktyk, które znajdziesz w dużym domu deweloperskim, można łatwo zastosować do twojej sytuacji. Wprowadzanie tych korekt w zespole jednoosobowym zostało już omówione w SO. Poszukaj trochę wskazówek:

Jak zastosować zwinne projekty osobiste?

Jeff Swensen
źródło
Czy jest jakiś link do znalezienia kompletnego przykładowego projektu przy użyciu wszystkich metodologii, takich jak SDLC, Agile ... itp?
bp581
Nie przejmuj się słowami takimi jak „Agile” i „Scrum”; po prostu ich formalne definicje metod, z których już korzystały zespoły. Są one jednak przydatne, jeśli nie masz szczęścia, aby pracować gdzieś, gdzie jest to naturalna część środowiska.
Phil Lello