Jak pomóc programiście back end polubić (albo nie znienawidzić) front end?

By 14 February 2018 Inspiracje

Ten wpis opowie moją his­torię, ale mam nadzieję, że zna­jdziecie w nim coś dla siebie (i swo­jego zespołu). W skró­cie, Jestem Ania i jakieś 3 lata temu zde­cy­dowałam się zmienić branże i zacząć pra­cow­ać jako pro­gramist­ka. Zaczęłam się uczyć javy, po 6 miesią­cach znalazłam pier­wszą pracę. Tak, było to szy­bkie, a moja nau­ka była moc­no nastawniona na prak­ty­czne umiejęt­noś­ci, a mniej na teorię czy inne technologie.

W rezulta­cie byłam bard­zo moc­no nastawniona na back­end, a właś­ci­wie, na Javę ze Springiem. Moja pier­wsza sty­czność z front-endem to JSP, którego uży­wałam do swo­jej pier­wszej aplikacji (tak, bard­zo prosty HTML i CSS, które to wtedy trak­towałam jako zło konieczne, byle­by skończyć aplikac­je i móc ją jako tako pokazać). Czas mijał, ja zdoby­wałam kole­jne doświad­czenia, zmieni­ałam pra­co­daw­ców, nawet robiłam trochę we fron­tendzie (o czym będzie za chwilę) jed­nak nigdy przenigdy nie myślałam o sobie jako o full-stack devel­op­erze. Front-end to było coś, co cza­sem po pros­tu trze­ba było zro­bić, gdzie back-end intere­sował mnie na tyle, by uczyć się go po godz­i­nach, pisać wpisy na blo­ga i nie narzekać, ile to pra­cy z nim związanej mam w pracy.

Ostat­nio, jak pewnie część z Was wie zmieniłam ponown­ie pra­co­daw­cę i tak się złożyło, że ta zmi­ana dała mi możli­wość spróbowa­nia swoich sił  ponown­ie we fron­tendzie. Wyszło na to, że nie jest to takie złe, ba, nawet całkiem mi się to podo­ba. Co wpłynęło na tą zmi­anę? Albo, jak otocze­nie pomogło mi pol­u­bić front-end? O tym właśnie postaram się napisać w tym wpisie.

Pozwól się uczyć (naprawdę uczyć!)

Powiem szcz­erze, gdy przy­go­towywałam swój pier­wszy javascriptowy/reactowy kod do review byłam trochę przes­traszona i trochę zestre­sowana. Niby prosty modal, ale dla mnie to był pier­wszy w życiu komer­cyjny (i raczej jeden z niewielu) frag­ment kodu w javascrip­cie, a do tego react, i redux, których to zaczęłam uczyć się dosłown­ie w poprzed­nim tygod­niu. Tak, review było pełne komen­tarzy, jestem raczej pew­na, że dostała je niemal każ­da lin­ij­ka mojego kodu. Czy było to depry­mu­jące? Wręcz prze­ci­wnie, a to dlat­ego, że:

  •  komen­tarze, które dostałam były nie tylko grzeczne, ale też tłu­maczące mi moje błędy — nie czułam się więc z nimi, źle, wręcz prze­ci­wnie, dostałam kopa, że zespoł dba o mój rozwój i chce mi pomóc w jak najlep­szej nauce,
  •  duża ich część była na tem­at lintin­gu i zasad, jakie sto­su­je­my wewnątrz firmy, których jeszcze nie miałam okazji poz­nać. A uwierz­cie mi, prze­si­ad­ka z for­ma­towa­nia kodu w Javie w for­ma­towanie javascrip­tu nie jest taka oczy­wista — niem­niej, łat­wo było mi nanieść te poprawki,
  • ilość komen­tarzy odnośnie logi­ki, była raczej zniko­ma, a wynikało to z fak­tu, że pod­czas tworzenia tego kodu prosiłam o pomoc. Dodatkowo, pod­czas mojego onboardingu, jed­ną z jego częś­ci było napisanie małej fron­tendowej aplikacji, przez co pod­stawy pod­staw były już przeze mnie opanowane.
  • Na koniec, każ­da z osób przeglą­da­ją­cych mój kod zostaw­iła naprawdę miły komen­tarz, na tem­at tego jak fajnie poszedł mi mój pier­wszy fron­tendowy PR, nawet jeśli był pełen drob­nych błędów. To pod­niosło moją motywację, ale też ponown­ie, pokaza­ło mi, że mój zespoł kibicu­je mojej nauce.

Oczy­wiś­cie, ten PR nie zamienił mnie w guru front-endu, a kole­jne również pokaza­ły ile jeszcze nau­ki mnie czeka. Niem­niej, jako samo doświad­cze­nie uczenia się i wymi­any wiedzy, to było (i jest) naprawdę super!

By dać ci trochę punk­tu odniesienia, w poprzed­niej fir­mie, owszem pra­cow­ałam trochę z Angu­larem 2 i Type­script, jed­nak w składzie mojego zespołu nie było niko­go, kto mógł­by pomóc mi z nauką czy poprawą jakoś­ci kodu. Wszyscy dopiero się uczyliśmy tych tech­nologii, a źródłem wiedzy był inter­net. Nie brz­mi to tak źle, niem­niej nie poma­gało w poczu­ciu pewnoś­ci, czy pode­j­mowa­niu decyzji. Tak, zdarza­ło mi się komen­tować kod innych słowa­mi: “To nie wyglą­da dobrze, ale nie mam poję­cia jak to poprawić”.

Przygotuj zasoby

Wspom­ni­ałam już o tuto­ri­alu, jaki robiłam w ramach wdroże­nia. Wspom­ni­ałam o pomoc­nym i przy­ja­ciel­skim zes­pole. Ale to nie koniec. W obec­nej pra­cy mamy wiele bib­liotek, tuto­ri­ali i najlep­szych prak­tyk, z których korzys­tamy. Rozwi­jana jest włas­na bib­liote­ka UI kom­ponetów jak i design sys­tem. Na slacku mamy kanały dedykowane tech­nolo­giom, gdzie naprawdę wystar­czy wysłać swo­je pytanie i niemal naty­ch­mi­ast, ktoś Ci z nim pomoże, do tego jest również włas­ny wewnętrzny Stack­Over­flow, czy łatwe wyszuki­wanie kodu w ramach wszys­t­kich pro­jek­tów. Te wszys­tkie zaso­by, nie tylko ułatwia­ją naukę, czy pracę, ale też budu­ją poczu­cie pewnoś­ci. Nie czu­ję się zostaw­iona sama ze swoim zadaniem.

Pokaż Ważność

We wszys­t­kich moich poprzed­nich pra­cach, gdy dochodz­iło do tego, że dostawałam jakieś zadanie front-endowe, mój tech lead czy man­ag­er bagatelizował je. Nigdy nie słysza­łam, że jest ono ważne. Że jestem odpowiedzial­na za pro­jekt. Wręcz prze­ci­wnie, słusza­łam, że to “nic takiego, tylko na chwilę, ktoś to musi zro­bić, nie musi być to mega poprawne”. Mam się nie prze­j­mować, i jak szy­bko to będzie możli­we wrócę do back­endu (choć cza­sem zadań front-endowych było na kil­ka tygod­ni). No to się nie prze­j­mowałam (a właś­ci­wie, prze­j­mowałam i byłam jeszcze bardziej sfrus­trowana, że to tylko mnie to obchodzi). Niem­niej, nawet jeśli nauczyłam się jak coś zro­bić lep­iej i chci­ałam przepisać kod, albo gdy chci­ałam poświę­cić więcej cza­su, nie było warto, bo prze­cież to tylko mały bug, tym­cza­sowe zada­nia. Nie miałam możli­woś­ci współpra­cow­ać z designerem czy wysłuchać feed­backu użytkown­i­ka. Dostawałam zadanie, częs­to  sprowad­zone do dodaj pole for­mu­la­rza X, albo gdy A to B, bez odniesienia do uży­cia… Bard­zo łat­wo było poczuć, że robi się rzeczy, na których chy­ba niko­mu nie zależy bardziej, niż na poziomie: “zamknij tego tick­e­ta, niedłu­go może dosta­niesz jak­iś backend.”

Obec­nie, jest zupełnie inaczej. Wiem, co imple­men­tu­je i jak ważne jest to dla użytkown­i­ka. Mam kon­takt z designerem, Właś­ci­ciel Pro­duk­tu i mogę nie tylko dobrze zrozu­mieć co robię, ale też podzielić się feed­back­iem czy nowy­mi pomysła­mi ;) Nie mam więc poczu­cia, że mar­nu­je swój czas, co więcej, odkryłam, że moja motywac­ja może być sty­mu­lowana roz­wo­jem pro­duk­tu, więc front-endowe zada­nia są całkiem fajnym źródłem satysfakcji.

Nie stopuj rozwoju

Być może odniosłeś wraże­nie, że w poprzed­nich pra­cach, gdy tworzyłam front-end, kod był bard­zo, bard­zo zły, a mi zupełnie nie zależało. To nie tak, ale muszę się przyz­nać, że uczyłam się i pra­cow­ałam znacznie wol­niej. Jeśli chodzi o jakość, jestem raczej z tych, co lubią jej pil­nować, popraw­iać i uczyć się, jak to robić. Było więc tak, że gdy poz­nałam lep­szy sposób na daną imple­men­tac­je, starałam się użyć tego w prak­tyce. Niem­niej, w więk­szoś­ci przy­pad­ku byłam stopowana przez Man­agera czy Właś­ci­ciela Pro­duk­tu, którzy pokazy­wali tyka­ją­cy zegar. Nie było cza­su. I jasne, rozu­miem, że nie wol­no popraw­iać swo­jego kodu w nieskońc­zoność, a dzi­ała­jące, jest zawsze lep­sze niż ide­alne, ale nie gotowe, jed­nak nie rozu­mi­ałam, jak mogliśmy nie planować tych zmi­an na później. Jak z pełną świado­moś­cią długu tech­no­log­icznego moż­na było po pros­tu prze­jść do następ­nego kwartału, zostaw­ia­jąc pro­jekt taki, jakim jest.

Znacznie lep­iej pracu­je mi się w otocze­niu, gdzie każdy pomysł na poprawę jest brany pod uwagę, nikt nie boi się zmieni­ać i ulep­szać rozwiązań, nawet jeśli cza­sem oznacza to dodatkowe godziny pra­cy, czy lekkie opóźnie­nie w zaplanowanym harmonogramie.

Daj wybór

Śmieszne jest, że gdy aplikowałam do swo­jej obec­nej firmy, więcej niż raz zako­mu­nikowałam, że chce się głównie rozwi­jać w back-endzie. Mój pier­wszy tydzien był więc dość szoku­ją­cy, ale zako­mu­nikowano mi dwie rzeczy:

  • wierzymy, że doświad­cze­nie full-stack poz­woli Ci lep­iej rozu­mieć pracę dewel­opera, więc chce­my byś na początku była zaan­gażowana w obie te działki,
  • jeśli uznasz, że font-end jest zupełnie nie dla Ciebie, albo, że fak­ty­cznie chcesz się skupić tylko na back­endzie, umożli­wimy Ci to.

Póki co jestem zad­owolona z mojej przy­gody jako full-stack, bo back­endowe zada­nia również się pojaw­ia­ją. Co wiecej, front-end został dla mnie odczarowany i nie mam nic prze­ci­wko takim zadan­iom. W dłuższej per­spek­ty­wie ciąg­nie mnie bardziej do back­endu, ale zada­nia związane z warstą wiz­ual­ną też są ok. I chy­ba właśnie back-end z front-endem od cza­su do cza­su, brz­mi jak plan na moją zrównoważoną karierę ;)

Wierzę też, że dzię­ki temu doświad­cze­niu nauczyłam się dużo jako dewelop­er. Cieszy mnie to, że ważne jest dla mnie przede wszys­tkim zaspoko­je­nie potrzeb użytkown­i­ka, nie ważne czy przy­czy­ni­am się do tego Javą czy JavaScriptem :). Bazu­jąc na moim doty­chcza­sowym back-endowym doświad­cze­niu jest mi też znacznie łatwiej uczyć się rozwiązy­wać prob­le­my, co samo w sobie jest świet­nym doświadczeniem.

Czy każdy pro­gramista back-end może pokochać front-end? Praw­dopodob­nie nie. Jed­nak, jeśli jest potrze­ba, by trochę w nim popra­cow­ał, ułatwij mu pozostanie szcześli­wym i zmo­ty­wowanym pro­gramistą. Twórz zespoł czy orga­ni­za­cję, która wspiera ucze­nie­nie, ale też pozwala popeł­ni­ać błedy i wycią­gać z nich wnios­ki. Takie środowisko, które doce­nia pracę i pokazu­je jej sens. A, gdy po cza­sie, dewelop­er stwierdzi, że to nie dla niego, zaak­cep­tuj to.

Myślę, że podob­ne porady moż­na odnieść w drugą stronę i zas­tosować przy zami­an­ie front-endu na back-end. A jeśli to właśnie Ty zmieni­asz swo­ją dziedz­inę, daj sobie szan­sę. Nawet jeśli to chwilowe, to może dać Ci zupełnie inne zrozu­mie­nie naszego zawodu.