Czy każdy może zostać fullstackiem? Jaką wartość wnosi fullstack do firmy? I czy istnieją jakieś powody, dla których nie warto zostać fullstackiem? Rozmawiamy o tym z Patrykiem Podolskim, Senior Software Engineerem w SmartBear.
Jak zostałeś fullstackiem? Od czego zaczynałeś: frontend czy backend?
Moja profesjonalna przygoda z programowaniem zaczęła się od frontendu. Nie odkryję Ameryki, gdy stwierdzę, iż jak każdy programista uwielbiam zdobywać nową wiedzę i poszerzać swoje horyzonty. Jestem samoukiem i w prosty sposób byłem w stanie zdobywać wiedzę na temat wszystkich technicznych aspektów aplikacji, nad którymi pracowałem w danym momencie.
Niestety, przez to, iż moim oficjalnym stanowiskiem był frontend, to byłem często szufladkowany, wręcz pamiętam wypowiedzi typu „dzięki za sugestie, ale jesteś tylko frontedowcem i zostaw backendowcom to rozwiązanie”. To dało mi tylko dodatkowego kopa
Skąd decyzja o pójściu w kierunku fullstacka? Co Cię do tego zmotywowało: większe możliwości na rynku pracy, zarobki, a może jeszcze coś innego?
Pewnie każdy chciałby usłyszeć z moich ust: „Zrobiłem to dla kasy! I dzięki temu zostałem legendarnym programistą 30k…” – na potwierdzenie tego, iż bycie fullstackiem to złoty środek na zarabianie dużych pieniędzy Tymczasem zrobiłem to ze zgoła odmiennego powodu.
Chciałem po prostu lepiej łączyć przysłowiowe kropki i implementując swoje rozwiązanie, trafniej dostosowywać się do wszystkich elementów aplikacji. Wielokrotnie byłem świadkiem takich sytuacji, iż podczas tworzenia frontendu nie spotykaliśmy się w tym samym momencie z backendem. Dodatkowo frustrowało mnie, iż nie byłem w stanie przewidzieć efektów niektórych moich rozwiązań.
Nie jest też prawdą, iż byłem fronendowcem, nagle „ciach” i stałem się fullstackiem. Już w trakcie samej nauki programowania wiele lat wcześniej musiałem wykorzystywać elementy fullstackowe. Przy moich „pet” projektach musiałem stworzyć sobie przykładową bazę danych, end-pointy, czyli te elementy, które pozwolą mi na komunikacje frontend-backend-baza danych. Także ten fullstackowy temat zawsze mi gdzieś towarzyszył.
Co daje bycie fullstackiem dla developera, a co dla firmy?
Bycie fullstackiem pozwala na lepsze podejmowanie decyzji, a co za tym idzie — większą świadomość ich skutków, dzięki czemu można darzyć swoje rozwiązania większym zaufaniem. Takim programistom dużo łatwiej przychodzi trafne postawienie priorytetów.
Dodatkowo bardzo istotnym aspektem jest posiadanie całościowej wiedzy na temat elementów składowych naszego projektu. Dzięki temu rozwiązywanie trudniejszych zadań łączących kilka płaszczyzny pozwala na odpowiednie łączenie kropek i dostarczanie lepszego rozwiązania. Posiadając taką wiedzę, jesteśmy w stanie lepiej szacować nasze zadania oraz dostarczać „proof of concept” jakiegoś pomysłu dużo szybciej.
Fullstackowie są zwykle bardzo elastyczni i w sposób płynny są w stanie wykonać nowy formularz logowania, wystawić REST API czy odpowiednio zaimportować dane z nowego źródła danych do bazy danych.
Firma natomiast dostaje wysoce wykwalifikowanych specjalistów, którzy są w stanie gwałtownie przygotować wspomniany „proof of concept” aplikacji/feature’a. Istnieje mniejsze ryzyko niedomówień, ponieważ programiści fullstack w sposób całościowy są w stanie przedstawić dany problem/rozwiązanie. Firma zyskuje tym samym większą przejrzystość w tym, co dzieje się w projekcie. Dodatkowo dzięki posiadaniu holistycznego spojrzenia na aplikację jest mniejsze prawdopodobieństwo występowania problemów wynikających z komunikacji pomiędzy poszczególnymi jej elementami.