Zakres obowiązków programisty

0

Pracuje w małej firmie, gdzie praktycznie nie ma granicy między różnymi stanowiskami. Programista to prawdziwy fullstack
-uczestniczy w analizie i projektowaniu systemu
-programuje frontend, backend
-pisze testy e2e (Selenium)
-zarządza bazami danych
-zajmuje się CI/CD
-utrzymuje system na produkcji

Zastanawiam się czy to po prostu domena małej firmy, która nie może pozwolić sobie na zatrudnienie frontendowca, backendowca, devopsa, testera, analityka, itd, tylko wymaga by każdy rozwijał się w każdej dziedzinie? Czy w większych firmach też coś takiego można spotkać? Jak na to patrzeć pod kątem kariery? Teoretycznie doświadczenie wzrasta, ale gdy ktoś jest dobry we wszystkim, nie jest bardzo dobry w niczym.

2

Taka jest specyfika małych firm. Potocznie rzecz ujmując jest robota do zrobienia to trzeba ją zrobić. Wg mnie lepiej mieć wiedzę szeroką, ale nie być ekspertem w jednej dziedzinie niż być specjalistą, ukierunkowanym w jednym obszarze. Osobiście dłubałem w wielu różnych technologiach mi osobiście przyniosło więcej korzyści niż problemów. Chociaż wiąże się czasem z tym, że mogę czegoś oczywistego nie wiedzieć w obszarze jednej technologii siłą rzeczy jak pracujesz w X technologiach, robisz X różnych rzeczy od programisty przez administratora po testera to takie rzeczy się mogą zdarzać.

4

Małe firmy mają taką specyfikę, że zajmujesz się wieloma rzeczami z kilku względów. Po pierwsze w firmie jest za mało ludzi, żeby można było się bardzo specjalizować. Często firmy nie stać na inne rozwiązanie. Ma to też swoje plusy: znacznie skraca się proces wytwarzania oprogramowania. To ze sam przeprowadzasz analizę, potem to projektujesz, programujesz i wdrażasz, a potem utrzymujesz ,znacznie upraszcza proces - na przekazywaniu informacji od analityka do programisty, przez projektanta dochodzi do wielu przekłamań i nie jasności i ostatecznie wymagane jest wiele iteracji, aby osiągnąć sukces. Oczywiście ma to tez swoje konsekwencje, to co zaprojektujesz i zrobisz, pewnie nie będzie tak dobre, pod wszystkimi względami, jak to, co zrobi zespół wyspecjalizowanych ludzi. ale, wystarczy, że będzie działało zgodnie z wymaganiami klienta i wszyscy będą zadowoleni. Oczywiście takie podejście sprawdza się tylko w małych projektach, co też ograniczą skalę projektów, jakie może robić firma. W dużych firmach rzadko spotyka się takie stanowiska. Duże firmy kochają dzielić wszystko na działy:dział wdrożeniowy, dział produkcji dział utrzymania - co kończy się tym, że nikt nie jest odpowiedzialny za ostateczny efekt - stąd powstało tak zwane podejście Devoposowe. Czyli w ramach zespołu są ludzie ze wszystkich specjalizacji i zespół ciągnie projekt od początku do końca. Mała firma uczy dużo rzecze, których nie jesteś w stanie się nauczyć w dużej firmie: kontakt z klientem, projektowanie, szybkie reagowanie na problemy. Z drugiej strony nie jesteś w stanie się specjalizować i ciągłe przełączanie się pomiędzy technologiami, zadaniami itp może budzić frustrację.

1

Myślę, że to specyfika małej firmy... tylko trzeba uważać czy to nie jest januszex napieprzający wordpressy za 500zł i wyzyskujący pracowników...
Ja jestem w projekcie sam, też mam kontakt z klientem i wszystko z nim ustalam, myślę, że jest to bardzo fajne i korzystne dla programisty, uczy szerszego spojrzenia, umiejętności miękkich i po prostu komunikacji. Skillsy techniczne zawsze mozna nadrobić przy mądrzejszych kolegach... ale całej reszty już nie tak łatwo. Oczywiście sa minusy, ale ja osobiście uważam, że jest więcej plusów. Na programowanie czysto techniczne przyjdzie jeszcze czas.

0

Z reguły małe firmy i start-up mają taką specyfikę, zwłaszcza jeśli stosunek programistów do innych (np supportu, sprzedaży, zarządu) jest mały (np max. 5-10 programistów). Wtedy często się zdarza że ta sama osoba stawia Angulara, widoki, logowanie, JWT, backend, bazę, migracje, CI (+ ewentualnie AWS), dockera i takie tam. Nie ma w tym nic dziwnego, bo skoro bottle-neck'iem są programiści (max 5), to trzeba jakoś zmaksymalizować ich czas, np dając mu wielkiego batcha - typu "napisz całą aplikację", zamiast ją fragmentować, dzielić na ludzi, delegować, co dokłada komplikacji, chociażby overhead całej jiro-logii, opcja że ktoś pójdzie na sick leave/urlop. Oczywiście ma to swoje wady, bo jak np ten jeden programista pójdzie na urlop to aplikacja jest w martwym punkcie. Noi oczywiście jeden programista nigdy nie zrobi takiej dobre aplikacji jak cały zespół. Na takie dociąganie możliwości programistów możesz sobie pozwolić jak liczba developerów nie jest już bottle-neckiem. W dużych firmach (1000+ pracowników) jest wręcz tak że np backendowcy nie mają często dostępu do repozytoriów frontowych albo apache'owych i tych z migracjami, podobnie fronci nie mają dostępu do backendów. Rzecz jasna, jeśli pokażesz że dajesz radę rozwijać oba filary, to z dostępem nie będzie problemu, chodzi mi o to że rozdzielenie pracy programistów przez to jest bardzo wyraźne.

2

Dobrze byłoby się przekonać, czy ten rzekomy wszechstronny rozwój nie jest tylko zajmowaniem się wszystkim czyli na poważnie niczym.
Wszechstronnie rozwijający się "Progarmista-architekt-designer-copywriter-supprt-administrator-szkoleniowiec-serwisant-zaopatrzeniowiec", czy może jednak typowy Pan Zenek Złota Rączka od komputerów i drukarek w biurze, strony firmowej i programu magazynowego?

Trzeba iść na 3 rekrutacje do dużej firmy. Przynajmniej jedna oferta pracy (której nikt nie każe przyjąć) to dobry znak. Brak przedstawionych ofert oznacza jednak, że jest się Panem Zenkiem - Zakładowym Informatykiem. Żółte migające!!!

3
AngryProgrammer napisał(a):

Pracuje w małej firmie, gdzie praktycznie nie ma granicy między różnymi stanowiskami.

Dodaj do tego:

  • wdrożenia
  • szkolenia
  • serwis
  • administracja sieciami/serwerami
  • helpdesk
  • ... i oczywiście wyjazdy do klientów

Potem na wizycie u lekarza usłyszysz: - proszę zmienić pracę.
I po zmianie pracy na Twoje miejsce są przyjmowane 4 (słownie: cztery) osoby.

1

głupota ze strony nawet małej firmy, duże ryzyko że programista napisze nieczytelny, niemodyfikowalny kod, a spaghetti będzie się rozprzestrzeniać po całości, między frontendem a backendem będzie kłębowisko nitek , a skapujący sos będzie support ścierał.....

4
Miang napisał(a):

głupota ze strony nawet małej firmy, duże ryzyko że programista napisze nieczytelny, niemodyfikowalny kod, a spaghetti będzie się rozprzestrzeniać po całości, między frontendem a backendem będzie kłębowisko nitek , a skapujący sos będzie support ścierał.....

Bzdura. Wizja snuta z pozycji "wygodnego stołka". Od 15 lat prowadzę firmę programistyczną, nigdy nie miałem więcej niż 6 programistów i nigdy nikt mi badziewia nie zrobił. Niestety w dzisiejszych czasach 80% programistów pracuje w "korpo" a ich szef nie wydaje swoich pieniędzy stąd takie lekkie podejście to tworzenia moim zdaniem zdecydowanie zbyt dużej ilości stanowisk. Ma to sens w przypadku gdy na te "niby wyspecjalizowane" stanowiska wkładamy mocno średnich pracowników bo trzeba coś zrobić na szybko a specjalistów na rynku brak. Małe firmy nie pozwalają sobie na zatrudnianie "badziewiarzy" - zwykle właściciel o to dba.
W zdecydowanej większości sytuacji i w większości projektów jeden ogarnięty koleś może zastąpić 3 takich "przeciętniaków" i wcale nie będzie przy tym przepracowany.

Poza tym odpowiadając na pytanie tytułowe - praca w takim szerokim zakresie zwykle jest ciekawsza i jednak bardziej rozwijająca niż siedzenie 10 lat w front-end jednej aplikacji. Owszem po takich 10 latach może będziesz np. "JavaScript ninja" ale z drugiej strony może się okazać, że nie masz pojęcia co to kompilator.

1
AngryProgrammer napisał(a):

Zastanawiam się czy to po prostu domena małej firmy, która nie może pozwolić sobie na zatrudnienie frontendowca, backendowca, devopsa, testera, analityka, itd, tylko wymaga by każdy rozwijał się w każdej dziedzinie? Czy w większych firmach też coś takiego można spotkać?

To zależy, w korporacjach nie IT będzie podział, bo im więcej ludzi do zarządzania, tym management bardziej potrzebny, a poza tym nie ogarniają tematu i nie rozumieją, że jedna osoba może coś zrobić od początku do końca. W software housach również, bo każdy sprzedany klientowi etat to więcej kasy, a że pracują głównie dla korporacji, którym to pasuje.
Ogólnie w firmach, które nie ogarniają technologii tak będzie, bo zamiast zrobić coś normalnie zrobią trudno i boleśnie, więc będą potrzebni oddzielni specjaliści od wszystkiego.

Ja pracuję w firmie, w której programistów jest kilkuset, więc chyba nie jest mała? Ale robię większość rzeczy, które wymieniłeś: projektuję soft, który piszę, implementuję backend, piszę do niego testy e2e, jeśli potrzebuję to dodaję tabele/kolumny/indeksy do bazy, korzystam z CI, jak trzeba to go konfiguruję. To co robię, to testuję, wdrażam na produkcję i ma działać. A jak nie będzie, to duże prawdopodobieństwo, że będę musiał naprawić.
Bazą typu joby/backup/optymalizacje się nie zajmuję, nie mam też dostępu do produkcyjnej, nie zajmuję się też frontendem, bo go nie mam, a frontendy dostępne dla klientów robią zespoły, które się w tym specjalizują.

2

Robię w start-upie i robiłem już wszystko: od embedded, przez apki desktopowe po rzeczy webowe. No dobra, może nie robiłem apki mobilnej, ale już jakieś opsy dookoła tak. Bardzo mi to pasuje, bo się nie nudzę przy tłuczeniu jakichś bzdetnych CRUDów i klepaniu API pod specyfikację, na którą nie mam w ogóle wpływu. Lubię swoją pracę właśnie z tego powodu, że codziennie może mnie zaskoczyć coś zupełnie niespodziewanego i dlatego, że coś ode mnie zależy. Są oczywiście minusy, tzn. boję się że przez brak jakiejś ścisłej specjalizacji jestem zupełnym zerem na rynku pracy. Aaaale może jeszcze znajdę jakiś startup, jak ten nie wypali xD Nie wyobrażam sobie chodzenia do pracy z myślą, że dziś będę robić to samo, co wczoraj, a jutro i pojutrze też dostanę takie same zadania. Czym to się różni od machania kilofem w kopalni?

3

U mnie (firma nie IT) jest 3 programistów i każdy w zasadzie jest "one man army". Każdy robi to, co mu akurat wrzuci PM, raz może to być apka desktopowa, innym razem skrypt do excela, innym razem jeszcze coś w sql, a najgorsze, że czesto sam nie potrafi określić wymagań.

1
AngryProgrammer napisał(a):

Pracuje w małej firmie, gdzie praktycznie nie ma granicy między różnymi stanowiskami. Programista to prawdziwy fullstack
-uczestniczy w analizie i projektowaniu systemu
-programuje frontend, backend
-pisze testy e2e (Selenium)
-zarządza bazami danych
-zajmuje się CI/CD
-utrzymuje system na produkcji

Zastanawiam się czy to po prostu domena małej firmy, która nie może pozwolić sobie na zatrudnienie frontendowca, backendowca, devopsa, testera, analityka, itd, tylko wymaga by każdy rozwijał się w każdej dziedzinie? Czy w większych firmach też coś takiego można spotkać? Jak na to patrzeć pod kątem kariery? Teoretycznie doświadczenie wzrasta, ale gdy ktoś jest dobry we wszystkim, nie jest bardzo

U mnie w pracy jest podobnie, a jest to korpo ponad 20k ludzi.
Jako Java Developer robię wszystko od analizy biznesowej, poprzez CI/CD, programowanie, testowanie - one-man-army. Płacą mi stawkę rynkowa ale przez taki rozstrzał obowiązków czuje że się wypale w max 10 lat - sporo Devów zmaga się z tym problemem.

Jedno rozwiązanie to pójście w niszę ale też ma to swoje plusy i minusy.

1 użytkowników online, w tym zalogowanych: 0, gości: 1