Junior – wstęp

Dzisiejszy wpis jest dla mnie bardzo ważny. Byłem kiedyś juniorem. Nigdy nie wiem, gdy rozmyślam o początkach swojej kariery, czy powinienem myśleć o sobie w tamtych czasach jako o juniorze czy raczej jako o stażyście – nie ma to chyba większego znaczenia, obie te etykiety mniej więcej znaczą to samo. Etykiety, nie lubię ich. Zawsze mam problem z tym, którą wybrać, dlatego dzisiaj nie używam żadnej. Dzisiaj jestem po prostu programistą. W każdym razie użyłem słowa “junior”, żebyśmy wszyscy wiedzieli, że chodzi o moje początki w IT.

Byłem kiedyś juniorem. Niektórzy z nas nadal nimi są, niektórzy dopiero nimi będą. Nie da się tego przeskoczyć. Zawsze trzeba od czegoś zacząć. Zawsze jest moment, w którym nie wiemy nic. Skoro już poruszyłem wątek etykiet, to juniora definiuję jako osobę, która się uczy, po prostu – nie wie czegoś i chcę się tego nauczyć, na przykład od kogoś. Często potrzebują pomocy, szczególnie, gdy pierwszy raz mają styczność z jakimś zagadnieniem. Nie zawsze wiedzą, jak o nią prosić. Nie zawsze wiedzą, że to nie ujma. Proszenie o pomoc wymaga odwagi. Nie tak łatwo jest przyznać się przed sobą, że czegoś nie potrafimy. Nie tak łatwo przychodzi nam powiedzieć: “Nie wiem, nie potrafię, pomóż”.

Zacząłem od tego, że wpis ten jest dla mnie bardzo ważny. Pamiętam moje początki stawania się programistą. Pamiętam je dlatego, że mnie poniekąd zdefiniowały. Wtedy nazywałem się juniorem, a dzisiaj? Minęło wiele lat od tamtej pory, leczy gdybym miał stanąć przed Robertem Martinem, to w jego majestacie (o Wszechmocny Wujku Bobie!) nie czułbym się nikim więcej, tylko juniorem, młodym programistą, który patrzy właśnie na programistę seniora, znacznie starszego od siebie i znacznie bardziej doświadczonego. Czy nie tak powinniśmy siebie postrzegać? Relatywnie? Junior-senior, taka relacja ma dla mnie sens. Pierwszy: uczy się, popełnia błędy, jest pełen zapału przed nowym wyzwaniem, często myśli, że wie już wszystko. Drugi: doświadczony w danym zagadnieniu, wiele widział i przeszedł w związku z nim, przez to zdaje sobie sprawę, jak wiele jeszcze nie wie, pozwala pierwszemu popełniać błędy, nie ocenia, jest cierpliwy, służy pomocą i dobrą radą. Tak długo, jak po ziemi stąpać będą Wujek Bob, Kent Beck, Martin Fowler i wielu innych programistów, których sobie cenię, programistów starszych i przewyższających mnie doświadczeniem, tak długo będę juniorem, który chce się od nich uczyć, który popełnia błędy.

W życiu jest podobnie, dla swoich rodziców zawsze będziemy dziećmi. Uczymy się od nich, lecz nie zawsze ich rozumiemy, nie zawsze się z nimi zgadzamy. Nawet jeżeli znamy nowsze technologie, z którymi nasi rodzice nie potrafią sobie poradzić w dzisiejszych czasach, to mądrością życiową i doświadczeniem przewyższają nas nieporównywalnie. Gdy na świat przychodzą nasze dzieci, to co wtedy? Stajemy się rodzicami. Czy to znaczy, że przestajemy już być juniorami? Dla naszych dzieci jesteśmy seniorami, wzorem, z którego one czerpią i w który są wpatrzone. Aczkolwiek nadal jesteśmy juniorami względem swoich rodziców.

Relatywny junior-senior pasuje do mojego postrzegania rzeczywistości znacznie lepiej, niż bezwzględne etykiety. Dlatego na początku wspomniałem o tym, że dzisiaj mianuję się po prostu programistą. Żebym mógł wstawić słowo “junior” przed słowem “developer”, kiedy tylko mam na to ochotę. Nikt nie ma prawa mnie wtedy oceniać, bo nikt nie będzie wiedzieć, przed kim dzisiaj stoję i w kogo się wpatruję. Co z innymi etykietami? Gdzie znajdują się “regular” czy “mid”? Gdzie są “principal” czy “architekt”? Jaka jest między nimi relacja? A może jej nie ma? Może są to funkcje? Dlaczego w takim razie przeplatają się one z relacjami? Nie wiem. Może te połączenia mają jakiś sens. Nie wszystkie etykiety, często złączone w jedną długą, są dla mnie zrozumiałe. Również to, dla kogo one tak naprawdę są. Czy my tak bardzo potrzebujemy opisywać się tymi różnymi etykietami, potrzebujemy za wszelką cenę odróżnić się od innych? Czy może potrzebują tego firmy, by łatwiej im było nas sklasyfikować, skusić? Czy “programista/programistka”, to już za mało? Przepraszam, znowu odpłynąłem… Jeszcze raz.

Ten wpis jest dla mnie bardzo ważny. Moje początki bycia programistą pamiętam, jakby to było wczoraj. W znacznej większości są to miłe wspomnienia, miłe chwile. Ale nie tylko. Spotkały mnie sytuacje i zachowania, które odcisnęły piętno na mojej programistycznej duszy, które nawiedzają mnie do dzisiaj i które nadal zauważam w różnych miejscach i sytuacjach. Od nich się już nigdy nie uwolnię. Pociągnęły one za sobą kolejne decyzje, które sprawiły, że jestem tu, gdzie jestem i robię to, co robię. Zapraszam was do opowieści o juniorze. Niektóre sytuacje przydarzyły się mnie, niektóre znam z opowieści, niektórych byłem świadkiem. Ta historia pomoże mi przekazać myśl, którą chciałbym się dzisiaj z wami podzielić. Jeżeli sama historia nie interesuję cię aż tak bardzo, możesz spokojnie ominąć Akt I oraz Akt II i przejść do podsumowania. No dobrze, zacznijmy od początku. Junior – Akt I.

Junior – Akt I

Zaparło mi dech w piersiach. Nigdy wcześniej nie byłem w miejscu takim, jak to. Długo się zbierałem, żeby się w końcu wybrać. Gdyby nie moi znajomi, którzy wtedy mi towarzyszyli, pewnie leżałbym teraz na kanapie i oglądał “Jak Poznałem Waszą Matkę”, w końcu jest sobota. Stoję w wejściu do hali i po prostu się gapię. Sufit jest jakieś trzydzieści metrów nade mną! Szturchnięty kilka razy w ramię, ruszam powoli przed siebie, rozglądając się na wszystkie strony. Jest ciasno, mnóstwo ludzi przemierza korytarze, wyznaczone przez organizatorów białymi liniami na podłodze, w poszukiwaniu wymarzonej pracy. Wielu z nich porusza się bardzo zwinnie, wyglądają na takich, którzy wiedzą, czego szukają. Przechodzą od stanowiska do stanowiska, wymieniają kilka słów, biorą ulotki, uściskają sobie dłonie. Chyba też tak powinienem. Tylko od czego zacząć rozmowę? Czy wystarczy się przywitać i czekać na oferty? Czy wypada o coś zapytać? Jak się zachować? Serce zaczyna bić coraz szybciej. Początkowa euforia znika. W jej miejsce pojawia się strach. Chcę wypaść jak najlepiej, tylko nie wiem jak to osiągnąć. Jestem tylko studentem i nic jeszcze nie potrafię. Kto miałby mnie przyjąć? Ci wszyscy ludzie na pewno są o wiele lepsi ode mnie. “Dosyć! Przestań! Weź się w garść.” – upomina mnie głos w mojej głowie i w mig się opamiętuję. Biorę głęboki wdech i zbliżam się nieśmiałym krokiem do pierwszego stanowiska. Stół, na którym porozrzucane są ulotki z opisem firmy oraz ofertami pracy jest długi na około dwa metry. Za stołem stoją dwie osoby a kolejne dwie stoją przy rollupie postawionym zaraz obok, z lewej strony stołu. Z tyłu, za przedstawicielami firmy, znajduje jest ścianka z ich barwami i logiem. Na ulotkach z ofertami pracy czytam: Frontend Software Engineer, Programista PL/SQL, Java EE Developer, Test Automation Engineer. “Robi wrażenie. Ta firma musi być świetna!” – myślę sobie.

– Cześć! Mogę ci w czymś pomóc? – pyta mnie jedna z przedstawicielek firmy. Zaskoczyła mnie. Podniosłem głowę znad ulotki i spojrzałem na nią. Była ubrana w czarny żakiet i szarą sukienkę zakrywającą jej kolana. Włosy miała rozpuszczone. Nogi były splecione, a złączone dłonie trzymała przed sobą. Wyglądała na wyluzowaną.
– Yhm, cześć. Jestem studentem i rozglądam się za pracą na wakacje – odpowiedziałem. Głos mi drżał.
– Świetnie! Co roku organizujemy staż w naszej firmie, właśnie w okresie wakacyjnym. Mamy kilka ofert. Czym się zajmujesz? – była bardzo miła i uśmiechnięta.
– Głównie Javą. Programuję w Javie od jakichś 3 miesięcy – powiedziałem dumnie – Miałem zajęcia również z C i C++, ale myślę, że to nie dla mnie – zwierzyłem się jej uśmiechnięty. Coś w jej twarzy się zmieniło.
– Jasne, rozumiem – powiedziała nadal uśmiechnięta – Z reguły szukamy kogoś z nieco dłuższym stażem w programowaniu. Java jak najbardziej nam odpowiada. Wyślij proszę CV na ten adres email – podała mi swoją wizytówkę – oraz list motywacyjny. – CV? List motywacyjny? Nie mam pojęcia jak powinny wyglądać! Podziękowałem wpatrzony w wizytówkę i oddaliłem się powolnym krokiem.

Stanowiska były rozmieszczone po obu stronach korytarza. Cały układ miał kształt litery “O”. Podchodziłem do kolejnych stanowisk, ale nie rozumiałem, czym te firmy się zajmują. Rozmawiając z przedstawicielami, nie wiedziałem, o czym oni mówią. Nie znałem tych technologii i narzędzi. Słyszałem te nazwy po raz pierwszy. Gdy tylko padało stwierdzenie, że jestem studentem i szukam swojej pierwszej pracy, twarz zmieniała im się całkowicie. Cały zapał i energia gasły. Dostawałem ulotkę, proszony byłem o wysłanie CV wraz z listem motywacyjnym. Ten sam schemat. Z innymi kandydatami przedstawiciele rozmawiali znacznie dłużej, opowiadali o projektach, o różnych sytuacjach. Czy mówiłem coś nie tak? Czy robiłem coś źle? Czułem się odrzucany i nie wiedziałem dlaczego. Przez cały czas w trakcie studiów, wydawało mi się, że wiem całkiem sporo, że potrafię programować w Javie. Jeden semestr to widocznie za mało. Wiedziałem, że tak będzie. Dlaczego na studiach nam o tym nie mówią? Dlaczego nie mówią nam, jak długo powinniśmy programować, żeby dostać swoją pierwszą pracę? Jakie technologie powinniśmy znać? Dlaczego nakazują nam szukać pracy na wakacje, gdzie nauka każdego języka programowania realizowana jest przez jeden semestr? Postanowiłem mówić prosto z mostu kim jestem i czego szukam.

– Cześć! Jestem studentem i szukam pracy na wakacje. Programuję w Javie od 3 miesięcy. Czy organizujecie może staż w tym roku?
– Cześć! Jestem Krzysiek. – odpowiedział mi przedstawiciel firmy podając rękę na powitanie. Miał około czterdzieści lat, był łysy, nosił okulary, koszulę z krawatem, eleganckie spodnie i buty. Wyglądał bardzo profesjonalnie i poważnie – Jest mi bardzo miło, że podszedłeś do naszego stanowiska. Tak, organizujemy – uśmiechnął się – Od trzech miesięcy, tak?
– Tak, tak. Uczyliśmy się też trochę C i C++, ale czuje się zdecydowanie pewniej w Javie – odpowiedziałem zupełnie już pozbawiony pewności siebie. Zaraz dostanę ulotkę. Trzy. Dwa. Jeden.
– To całkiem sporo! Ha, studia! Pamiętam ten okres. Zwariowane czasy. Gdy ja studiowałem, uczyliśmy się jedynie Assemblera i C. Dobrze jest słyszeć, że na studiach uczą dzisiaj też innych języków. No dobrze, czyli znasz Javę. Trzy miesiące powinno starczyć, reszty nauczyłbyś się u nas. Ale zanim o tym! Powiedz mi proszę, czy słyszałeś wcześniej o naszej firmie? Czy wiesz, czym się zajmujemy?
– Niestety nie. Pierwszy raz jestem w takim miejscu, jak to.
– Świetnie! W końcu mogę komuś o tym poopowiadać. No więc tak…

Dowiedziałem się mnóstwa bardzo ciekawych rzeczy o tym, czym na co dzień zajmuje się jego firma i czym zajmują się programiści. Jak wygląda ich praca, taka zwykła, codzienna. Nigdy nie pomyślałbym, że tak pracuje programista! Gdy przechodziliśmy do bardziej technicznych tematów, dowiedziałem się o wielu ciekawych technologiach, z których korzystają. Na studiach o tym nie wspominali. Gdy padała jakaś techniczna nazwa, Krzysiek od razu się upewniał, czy wiem, o czym on mówi, a gdy tylko wyczuwał, że nie miałem z nią styczności, tłumaczył mi wszystko bardzo klarownie. Byłem zachwycony. Chciałbym pracować z kimś takim.

– To chyba wszystko – zakończył. – I tak rozgadałem się aż nadto! Będzie nam bardzo miło, jeżeli postanowisz zaaplikować do nas na staż. Co prawda mamy kilka etapów po drodze, ale na pewno sobie z nimi poradzisz.
– Super! Dzięki raz jeszcze. Zajmujecie się bardzo ciekawymi projektami. Na pewno się do was zgłoszę. – Krzysiek podał mi rękę w pożegnalnym geście, wziąłem ulotkę i odszedłem.

Obszedłem już całą halę dookoła. Targi pracy leniwie zbliżały się ku końcowi. Przedstawiciele firm sprzątali wokół swoich stanowisk. Wrzucali ulotki do toreb, części rozmontowanych ścianek pakowali do kartonów, a rollupy zwijali i wkładali do pokrowców.

Wyszedłem z hali. Zatrzymałem się przed schodami i zerknąłem do szmacianej, niebieskiej torby, którą dostałem na jednym ze stanowisk. Znajdowały się w niej długopisy, piłeczki antystresowe, jedna gumowa kaczuszka i całe mnóstwo ulotek reklamowych. Czeka mnie sporo pracy w domu – przejrzenie tych wszystkich ulotek, stworzenie mojego pierwszego CV oraz napisanie listu motywacyjnego. Już wiem, kogo poproszę o pomoc, o jakieś wskazówki i rzucenie okiem na finalne wersje. Dobrze jest mieć przyjaciół, na których zawsze można polegać. Nagle usłyszałem znajomy głos. Rozpoznałem w nim przedstawicielkę z pierwszego stanowiska, do którego podszedłem. Rozmawiała z innym przedstawicielem z tej samej firmy.

– Co roku jeździmy na te targi w poszukiwaniu talentów i co roku jest to samo. Zero talentów! Wyraźnie mamy napisane kogo szukamy, na przykład Fronted Developerów. Nie Pryszczatych Gówniarzy Z Rocznym Stażem Developerów, tylko Fronted Developerów! Po co wszyscy inni podchodzą? Żeby sobie pogadać? Trochę szacunku dla naszego czasu! Nikt nas nie pochwali za to, że sobie z kimś porozmawialiśmy, tylko za wyniki! Za przesłane CV! Konkretne CV! – powiedziała sfrustrowana przedstawicielka, z którą rozmawiałem.
– Dokładnie! I skończy się tak jak zawsze. Firma zobaczy, że na targach nikogo nie znaleźliśmy i znowu zatrudnią jakiegoś juniora. Ja tego syfu, które oni produkują i nazywają kodem, sprawdzać nie będę i nie mam zamiaru być też niańką. Mam swoje obowiązki, a tu podrzucają zawsze jakiegoś gówniarza do opieki i jest dwa razy więcej roboty, a kasa ta sama. Po co to komu? Zanim oni się czegoś nauczą, mijają wieki – wtórował jej kolega.

Nie słyszałem całej rozmowy. Może to i dobrze. Słyszałem wystarczająco. Nie jestem jeszcze dość dobry, żeby aplikować do tych wszystkich firm. Szukają ludzi o wiele bardziej doświadczonych ode mnie. Miałem mętlik w głowie. Musiałem to sobie przemyśleć na spokojnie. Nie chciałbym być kimś, kto uprzykrza życie innym pracownikom. Kimś, z kim inni nie chcą pracować. Nie jestem w stanie stwierdzić, jaki jest mój kod. Prowadzący go nie sprawdzają. Jeżeli program działa, to zaliczone. Tylko jeden semestr pracowaliśmy w grupie nad projektem. Sami musieliśmy się zorganizować, podzielić się obowiązkami, a pod koniec projektu zebrać wszystko do kupy. Z tego, co opowiadał o swojej firmie Krzysiek, programiści pracują w zupełnie inny sposób. Chyba nie jestem jeszcze gotowy na swoją pierwszą pracę.

Minęły miesiąc. Emocje związane z targami pracy już opadły. Z początkowego zapału również niewiele zostało. Wróciłem przed chwilą z zajęć, rzucam plecak na ziemię. Chmurka kurzu wzbiła się w powietrze. Czas na sprzątanie! Miotła w dłoń! Odsunąłem biurko i zauważyłem niebieską, szmacianą torbę. Wziąłem ją do ręki, spojrzałem do środka. Oparłem miotłę o komodę. “Kurcze, a może jednak spróbuję?”.

Przy pomocy przyjaciół jakoś udało mi się napisać moje pierwsze CV oraz list motywacyjny. Wysłałem je do ponad dziesięciu firm, w tym do firmy Krzyśka. Czekam.

Odezwały się wszystkie. Ucieszyło mnie to niesamowicie! Co prawda wiadomości wyglądały, jak gdyby wszystkie wysyłane były dokładnie z taką samą treścią również do całej reszty aplikujących, ale nie zmniejszyło to mojego entuzjazmu. Zostałem zaproszony na rozmowy i na egzaminy ze znajomości języków programowania. Firmy porozrzucane były w różnych rejonach Wrocławia. Czeka mnie kilka wypraw. Strach zaczął dawać o sobie znać. Przypomniałem sobie rozmowę między przedstawicielami jednej z firm na targach pracy. Co, jeżeli się zbłaźnię? Co jeżeli wyjdę na pośmiewisko i okażę się, że nic nie wiem? Pierwsza rozmowa już za trzy dni. Spróbuję odświeżyć sobie co nie co o Javie.

Odrzuciło mnie już pięć firm. W jednej dostałem się do kolejnego etapu – rozmowa przez telefon z działem HR. Nie wiem czego się spodziewać. Czekają mnie jeszcze egzaminy i spotkania w kolejnych czterech firmach.

Wiele uczę się podczas tych rekrutacji. Coraz lepiej rozumiem, czego się ode mnie wymaga. Jednak nie idzie mi zbyt dobrze. Kolejne trzy firmy podziękowały mi i zaprosiły do współpracy w przyszłym roku. Niestety nie dostałem się również do firmy Krzyśka. Szkoda, praca z nim byłaby na pewno super. Została ostania oraz ta, gdzie przeszedłem do trzeciego etapu. Okazało się, że rozmowa z HR poszła mi całkiem nieźle i czeka mnie kolejny etap – praca w grupie.

Ostatnia firma również mi podziękowała, jeszcze przed samą rozmową – niestety wszystkie miejsca na staż zostały już zajęte. Zrobiło mi się przykro. Według dziewięciu firm nie nadaję się jeszcze na pracę jako młodszy programista. Muszę się jeszcze podszkolić. Najcenniejsze jest jednak to, że wiem z czego. Wiem, czego nie wiedziałem, wiem nad czym powinienem popracować, o czym poczytać i nawet dostałem kilka wskazówek, gdzie. Znaczna większość tych rozmów przebiegła w bardzo miłej atmosferze. Czasami rekruterami byli szefowie zespołów programistycznych, czasami pracownicy HR, czasami sami programiści. Zdarzali się rekruterzy rozczarowani moimi odpowiedziani, sfrustrowani czy zniecierpliwieni. Wtedy ze spuszczoną głową wychodziłem z rozmowy, ale nie dawałem za wygraną. Tym bardziej, że przecież w jednej z tych firm zostałem zaproszony aż do trzeciego etapu!

Przede mną czwarty, ostatni już etap. Rozmowa z programistą z projektu, do którego byłbym przydzielony. Podczas pracy w grupie musiałem dobrze wypaść. Rozmowa już za dwa dni.

Do końca miesiąca otrzymam odpowiedź, czy dostałem się na staż. Dwa tygodnie oczekiwania. Jak ja to wytrzymam? Chcę już znać odpowiedź! Ta niepewność mnie dobija! Nie mam przecież żadnych innych alternatyw. Czy powinienem zgłosić się do kolejnych firm, czy poczekać na wyniki? Chyba poczekam. Zaryzykuję. Czy rozmowa przez telefon poszła mi dobrze? Nie wiem. Nie potrafię tego ocenić. Pytania były techniczne. O Javę, o projekty na studiach, w których brałem udział, za co byłem w nich odpowiedzialny. Gdyby tylko się udało! Wreszcie mógłbym zobaczyć na własne oczy, jak pracuje się jako programista, jak wyglądają prawdziwe, poważne projekty napisane w oparciu o Javę EE. Tak wiele mógłbym się nauczyć! Sami profesjonaliści wokół mnie. Wchłaniałbym wiedzę jak gąbka!

Przed chwilą otrzymałem e-mail z decyzją. Denerwuję się. Wiele od tego zależy. Otwieram wiadomość. Czytam. TAK! UDAŁO SIĘ! Dostałem się na staż! Nigdy jeszcze nie byłem tak szczęśliwy! Właśnie rozpoczęła się moja kariera programisty!

Junior – Akt II

Wysiadam z autobusu. Po pięciu minutach spaceru staję przed budynkiem firmy. Jest ogromny! Wchodzę do środka. Poczułem się mały. Jestem przekonany, że w tamtej chwili rozglądałem się wokół siebie z otwartą buzią. Zagubiony podszedłem do recepcji. Miły pan w garniturze wskazał mi drogę. “Zdaje się, że jestem nieodpowiednio ubrany” – pomyślałem przeglądając się w lustrze w windzie. Wysiadłem z windy. Jednak mój ubiór był w porządku. To piętro z pewnością należy do programistów. Kolorowe koszulki z krótkimi rękawkami pozwalały ich odróżnić od ludzi z parteru. Podczas rozmów rekrutacyjnych na staż, programiści również różnili się wyglądem od rekruterów z działu HR, czy od szefów projektów. Historie słyszałem różnie, począwszy od programowania w piwnicy, przez długą brodę i okulary, aż po koszulki poplamione sosem pomidorowym z pizzy. Cóż, wyglądają po prostu… normalnie.

– Cześć, jestem Maciek! Jesteś jednym z nowych stażystów? – zapytał jeden z nich, gdy mnie zauważył.
– Tak. Cześć, jestem Mateusz.
– Świetnie! Reszta stażystów już jest, czekaliśmy tylko na ciebie. Chodź, pokażę Ci twoje biurko, zostawisz przy nim swoje rzeczy i podejdziemy do sali konferencyjnej. Posadzimy cię niedaleko Piotrka, jednego z programistów w naszym projekcie. Będzie ci pomagał.

Mój własny mentor!

– Jesteśmy już w komplecie. To jest Mateusz. – Maciek przedstawił mnie każdej osobie. Na początku czułem się nieco skrępowany, ale to uczucie szybko minęło. Przemiła atmosfera sprawiła, że się wyluzowałem. W końcu na to czekałem. Znalazłem się na stażu, zostałem młodszym programistą. Po wielu rozmowach, egzaminach i różnych etapach rekrutacyjnych, nareszcie poczułem się w pewien sposób doceniony. Poczułem, że jednak nie jestem do bani, nie jestem tylko głupim studentem z trzymiesięcznym doświadczeniem w Javie. Teraz, gdy czeka mnie nauka wprost od mentora, który został mi przydzielony, wszystko się jakoś ułoży. Na pewno nauczę się wielu nowych rzeczy.
– Mateusz, poznaj Piotrka – uścisnęliśmy sobie dłonie.
– A więc to ty jesteś moim stażystą? No dobrze, zobaczymy, co z tego będzie! – powiedział i zaśmiał się. Ja również się zaśmiałem. Poziom stresu podniósł mi się nieznacznie, ale wyczuwalnie. To pewnie zwykłe żarty.

Poznałem pozostałych stażystów, było ich dwoje, dziewczyna i chłopak. Dziewczyna miała na imię Magda, była brunetką średniego wzrostu, z włosami ściętymi do ramion. Nosiła okulary. Chłopak był wysokim blondynem, bardzo szczupłym, nazywał się Rafał. Oboje byli ubrani podobnie do mnie, zwyczajnie – t-shirt, krótkie spodenki i trampki. Od razu mi ulżyło. Wydawali się bardzo mili. Spędzę z nimi kolejne trzy miesiące, dlatego dobrze jest poznać się lepiej. Pewnie będzie jeszcze niejedna okazja. Każdemu juniorowi – juniorzy, tak właśnie do nas mówili – został przydzielony mentor. Moim był Piotrek, natomiast Magda dostała Adama, a Rafał Norberta. Mentorzy poprosili nas, żebyśmy kolejnego dnia pojawili się w biurze o 9 rano.

Pojawiłem się już o 8. Miałem czas żeby zjeść śniadanie i rozejrzeć się po biurze. Wszystko tutaj było! Stoły do piłkarzyków, darmowa kawa, herbata, woda. Dostałem nawet swój własny komputer!

Reszta zespołu powoli się zbierała, aż w końcu wybiła 9. Mentorzy wprowadzili nas w szczegóły stażu. Opowiadali o projekcie, jak powstał, jakie technologie zostały w nim użyte, czym zajmują się teraz. Niesamowite! Ten system jest ogromny! Kilkaset tysięcy lini kodu! Po wprowadzeniu dostaliśmy czas na zaznajomienie się z kodem projektu już indywidualnie. Przydzielono nam dostęp do dokumentacji projektowej. Mogliśmy znaleźć tam informacje chociażby o przyjętej architekturze. Wiem, mądrze to wszystko brzmi, aczkolwiek jeszcze nic z tego nie rozumiałem. Dokumentacja? Architektura? Poszliśmy razem z mentorami na lunch, a po lunchu zagraliśmy w piłkarzyki. Było super! Czułem, że chciałbym pracować w tej firmie!

Kolejnego dnia dostaliśmy pulę zadań do wykonania, głównie naprawienie różnych błędów. Mogliśmy je rozdzielić między sobą. Zgłosiłem się do jednego z nich. Przeczytałem kilka razy opis problemu. Nie bardzo wiedziałem od czego zacząć. Chyba na początku powinienem spróbować odtworzyć ten błąd. Tylko jak się dostać do tej części systemu? Widzę go dopiero po raz drugi na oczy, jeszcze nie znam wszystkich jego funkcjonalności. Zauważyłem, że Magda i Rafał również utknęli w swoich zadaniach, bo rozmawiają właśnie ze swoimi mentorami.

– Piotrek, czy mogę Cię prosić o pomoc? Nie wiem jak…
– Już w pierwszym zadaniu? No ładnie, ładnie. No dobra, co tam jest do zrobienia? – przerwał mi w pół zdania. Pokazałem mu ekran mojego komputera.
– Nie wiem, jak odtworzyć ten problem. Próbowałem…
– Czekaj, czekaj. Przeczytam.

Czytał skupiony. Miał brązowe włosy, przystrzyżone bardzo krótko, niebieskie oczy i okulary. Był średniego wzrostu, nieco wyższy ode mnie.

– Aha! To przecież proste jest. Piętnaście minut i powinieneś to skończyć. Co ode mnie chciałeś? A! Jak go zreprodukować? Patrz.

Używał klawiatury sprawnie i szybko. Ani razu nie dotknął myszki! Musiałem mocno się wysilić, żeby zapamiętać całą ścieżkę i żeby nadążyć za wszystkimi jego ruchami. Wydaje mi się, że zapamiętałem. Podziękowałem mu i szybko wróciłem na swoje miejsce. Przeszedłem kroki reprodukcji – tak to się podobno nazywa – jeszcze kilka razy, żeby je dobrze zapamiętać. Udało mi się odtworzyć problem, teraz czas na jego naprawienie. Szukałem miejsca w systemie, które mogło powodować nieprawidłowe działanie. Nie było to takie proste. Ta funkcjonalność obejmuje dziesiątki klas! Błąd prawdopodobnie nie występował tylko w jednym miejscu. Wiele innych klas korzystało z funkcji, które właśnie badałem, a z tych innych klas korzystało jeszcze więcej kolejnych. Moje programy na studiach miały po dziesięć klas, a tutaj dziesięć korzysta z tej jednej… Jaki ten system jest ogromny! Spróbuję zaproponować jakieś rozwiązanie, ale i tak muszę je skonsultować – nie rozumiem wszystkiego, co się dzieje w tym kodzie, ale tych kilka metod jest w miarę zrozumiałych.

– Hej Piotrek, masz może chwilkę?
– Ta, zbierałem się właśnie na kawę. Co tam?
– Badałem ten problem, o którym rozmawialiśmy wcześniej…
– Jeszcze to robisz? – spojrzał na zegarek – Przecież minęła już godzina! Tam problem pewnie jest w… – i wymienił kilka miejsc, które faktycznie badałem.
– Tak, tak. Podejrzewałem, że błąd jest w tamtym miejscu…
– To w czym problem? – odpowiedział nieco zniecierpliwiony. Patrzył na mnie i na kuchnie za moimi plecami, na mnie i znowu na kuchnie.
– Mógłbyś spojrzeć? Nie jestem pewny tego rozwiązania.
– Pokaż. – wziął ode mnie komputer, sprawdził wprowadzone przeze mnie zmiany – Nie, nie, nie. Tak tego nie możesz zrobić. Nie widzisz? Ten i ten serwis również z tego korzystają i przestaną poprawnie działać. Zmień to i to – po czym sam zmienił tę część kodu przy mnie. – Dobra, idę na kawę – podziękowałem, ale chyba nie usłyszał, był już w połowie drogi do kuchni.

Wziąłem się za kolejne zadanie. Błąd występował w zupełnie innej części systemu. Przez ponad dwadzieścia minut próbowałem go odtworzyć. Nie udało mi się. Widziałem, że Magda pracuje już nad trzecim z kolei zadaniem, a Rafał zabrał się właśnie za czwarte. Oboje dużo rozmawiają ze swoimi mentorami. Zamiast podejść do Piotrka, postanowiłem do niego napisać. Wiem, że siedzi dwa biurka dalej, ale nie chciałem go odrywać od jego pracy. Chyba ma dużo na głowie i pewnie stąd to zniecierpliwienie moimi pytaniami.

Przez kolejne piętnaście minut nie odpisywał. W końcu wstał i ruszył w stronę korytarza.

– Piotrek! Znalazłbyś może dla mnie chwilę? Mam pytanie o zadanie, za które się zabrałem. Nie potrafię go odtworzyć.
– Zreprodukować tak? No to jak nie potrafisz, to daj na testy. – i poszedł.

Odetchnąłem z ulgą. Już straciłem na to zadanie ponad trzydzieści minut, a jeszcze nawet nie zabrałem się za jego naprawę. Za radą Piotrka przeniosłem to zadanie do testów. Tak właśnie pracujemy na co dzień. Z puli zadań, które wzięte zostały do zrealizowania przez dwa tygodnie, biorę jedno po drugim, implementuję rozwiązanie (juniorzy głównie powinni rozwiązywać niedziałające funkcje systemu – “bugi” – tak nam powiedziano), potem sprawdzają to rozwiązanie inni programiści, a potem testerzy. Gdy zadanie zostało poprawnie zaimplementowane i działa jak należy, to uważane jest za skończone.

Kolejny dzień rozpoczął się nieoczekiwaną sytuacją. Podeszła do mnie testerka Edyta i mówi:

– Ej, młody. Ty robiłeś to zadanie? Co ty tutaj nawywijałeś? – wskazała na zadanie, które wczorajszego dnia przeniosłem do testów.
– Yyy, tak. Nie potrafiłem go zreprodukować.
– To trzeba było mnie zapytać. Ja zgłosiłam ten błąd. Tutaj jest napisane. – wskazując na autora zgłoszenia nacisnęła palcem na ekran laptopa, wyginając go przynajmniej o 30 stopni. Była bardzo zdenerwowana. – Od dwudziestu minut testuję to zadanie. Nie działało. Nadal działo się to, co dokładnie było opisane w zadaniu. Pomyślałam sobie: “Nieee, no na pewno coś tam naprawili. Może na wersji developerskiej to działa, a z jakiegoś powodu na testerskiej nie.”. Zaczęłam sprawdzać, testować, szukać, o co może chodzić. A tu nadal nic, błąd występuje wszędzie. Sprawdziłam więc, tak tylko dla pewności, czy jakiekolwiek zmiany dla tego zadania zostały wykonane. Okazało się, że nie! Task po prostu przerzucony do testów bez ani jednej linijki kodu, żadnego komentarza, żadnej informacji. – po tym zdaniu przerwała. Patrzyła na mnie wściekłym wzrokiem.
– Nie potrafiłem go zreprodukować. Wykonywałem kroki opisane w zadaniu. Wszystko działało jak należy.
– A czytałeś może komentarze? Tam jest przecież cała dyskusja o tym zadaniu.
– Komentarze? – złapała za myszkę i pokazała mi, gdzie znajdują się komentarze do zadania.
– Na drugi raz zapytaj, jeżeli czegoś nie jesteś pewny, albo gdy nie potrafisz zreprodukować zadania, a nie jakąś samowolkę tutaj odstawiasz. Mamy już wypracowane konkretne procesy i warto o nich pamiętać. Im szybciej je ogarniesz tym lepiej, oszczędzisz swój i mój czas. – powiedziała i odeszła zdenerwowana.

Było mi wstyd. Edyta mówiła podniesionym tonem głosu, wszyscy wokoło z łatwością mogli usłyszeć całe zdarzenie. Rozejrzałem się wokół siebie. Mentorzy zerkali to na mnie, to na siebie. Stażyści również się na mnie gapili, a gdy tylko patrzyłem w ich stronę, opuszczali wzrok, udając, że są czymś zajęci. Spojrzałem na Piotrka. Słyszał całe zdarzenie i nie odezwał się ani słowem. Po wszystkim założył tylko z powrotem słuchawki, które wcześniej ściągnął, żeby posłuchać całego zdarzenia.

Kolejne dni wyglądały podobnie. Gdy wróciłem w piątek do domu, odetchnąłem z ulgą. Nie tak to sobie wyobrażałem. Może kolejne tygodnie będą lepsze. Na pewno.

– Hej! Masz sekundę? Mam problem z jednym zadaniem.
– Jasne, poczekaj chwilkę… Już! Co tam? Pokaż mi proszę, co robimy.
– To. Chyba nie do końca ogarniam, o co chodzi w tym zadaniu.
– O widzisz. Jest bardzo technicznie opisane. Kiedy to było zgłoszone? Miesiąc temu. Już niektórych komponentów opisanych w tym zgłoszeniu, po prostu nie ma. No dobra, popatrz, problem występuje tu i tu. Spróbujmy może najpierw zobaczyć, jakie są skutki dla użytkownika, i czy w ogóle jakieś są, żebyśmy potem wiedzieli, czego spodziewać się po zmianach.
– Jasne, ma to sens.

Obserwowałem Magdę i Adama z zazdrością. Często ze sobą współpracowali. Wiedziałem, że Adam jest miły i pomocny. Wiem, że jego obowiązkiem jest pomaganie Magdzie, nie mnie, ale postanowiłem spróbować. Piotrek na pewno jest zajęty i tylko by mnie skrytykował.

– Adam, mógłbym cię prosić o pomoc? – zbierałem się długo, lecz w końcu zapytałem.
– Hej, yyy, jasne. Co tam robisz? – opisałem zadanie, którym się zajmowałem.

Adam pomógł mi je rozwiązać, ale musiałem dojść do rozwiązania samodzielnie. On mnie tylko naprowadzał. W trakcie pracy z nim dowiedziałem się o więcej o działaniu systemu, niż przez cały poprzedni tydzień. Niestety, gdy kolejny raz potrzebowałem pomocy, poprosił mnie, abym podszedł z tym problemem do Piotrka, bo nie da rady niestety pomagać mnie i Magdzie, zbyt wiele czasu by mu to zajęło.

– Piotrek, próbuję naprawić błąd, który opisany jest w tym zadaniu, ale nie wiem, co on oznacza i gdzie leży problem.
– A googlowałeś wcześniej, co on oznacza? – odpowiedział nie odrywając wzroku od ekranu swojego komputera – Na pewno jest on gdzieś opisany i znajdziesz jakieś rozwiązanie.

Niestety nic przydatnego nie potrafiłem znaleźć, a większości rozwiązań na podobny problem nawet nie rozumiałem. W końcu pomógł mi Rafał, przechodził obok i zagadał, czym się teraz zajmuję. Na szczęście naprawiał już ten problem, tylko w innej części systemu.

Następnego dnia przyszedłem do biura nieco później niż zwykle. Do ekranu mojego komputera przylepiona była kartka, a na niej Bart Simpson wypisujący:

Użyję Google, zanim zadam głupie pytanie.
Użyję Google, zanim zadam głupie pytanie.
Użyję Google, zanim zadam głupie pytanie.
Użyję Google, zanim zadam głupie pytanie.
Użyję Google, zanim zadam głupie pytanie.
Użyję Google, zanim zadam głupie pytanie.
Użyję Google, zanim zadam głupie pytanie.

Widziałem uśmiech na twarzy Piotrka. Uśmiechało się też kilka innych osób, których nie znałem. Siedzieli kilka biurek dalej. Było mi wstyd. Czułem się zakłopotany. Nie wiedziałem, jak się zachować. Uśmiechnąłem się się również pod nosem, udawałem, że mnie to nie dotknęło a nawet rozśmieszyło, ale nie było mi wcale do śmiechu. Chciałem iść do domu. Nie miałem już na to siły. Pewnie czeka mnie kolejne zadanie, z którym będę miał problem i zamiast się na nim skupić i spróbować je rozwiązać, to będę zastanawiał się, czy Piotrek ma dobry humor i mi pomoże, czy lepiej podejść do kogoś innego, czy może lepiej po cichu odstawić to zadanie i zabrać się za inne, łatwiejsze, z którym sam sobie poradzę. Nie nadaję się do tej pracy, do Javy EE. To nie dla mnie.

Jakoś ten dzień mijał. Zabierałem się za te łatwiejsze zadania. Dzisiaj po południu czekało nas spotkanie z klientem. Moje pierwsze. Stresuję się, bo nie wiem, czego się spodziewać. Będziemy podsumowywać naszą pracę i planować zadania na kolejne dni.

Spotkanie trwało dwie godziny. Nie zdawałem sobie sprawy, że można rozmawiać z klientem w tak przyjemnej i miłej atmosferze. Zauważalne było, że cały zespół pracuje już ze sobą od bardzo dawna. Lider zespołu opowiadał klientowi, czym zajmowaliśmy się w ostatnim czasie, a następnie przeszliśmy do planowania zadań na kolejny okres. Dostrzegłem małe zmieszanie na twarzach mentorów, gdy klient poprosił ich o wcześniejszy termin ukończenia kilku zadań. Starali się namówić klienta na nieco późniejszy termin, ale bez powodzenia – w końcu zgodzili się na ten zaproponowany przez niego, powiedzieli, że spróbują zdążyć.

– Co za gościu. Przecież wiadomo, że nie zdążymy. Co on, na głowę upadł? W jeden miesiąc te wszystkie zadania?
– Nauczy się. Damy mu znać za miesiąc, że zadania nie są oczywiście gotowe, to znowu się zdziwi i wkurzy. A przecież już dzisiaj dostał sygnał, że mogą być kłopoty z tym terminem. No ale jak chce wszystko na raz, to jego problem.
– Nic nie wie o sofcie, a terminy nam wyznacza. Powinien nas słuchać, a nie kombinować z datami.
– A ta nowa funkcjonalność, o której dzisiaj wspomniał? Dobrze, że ona również nie została wliczona do tego terminu. Przecież pół roku na nią nie wystarczy. Czemu nam o niej wcześniej nie powiedział? Rzeźbimy już od kilku lat ten system i wystarczyło wspomnieć, że coś takiego może się kiedyś w przyszłości pojawić. Przygotowalibyśmy się na to.
– To jest problem na za miesiąc. Może już nawet nie nasz!

Przysłuchiwałem się tej rozmowie. Podczas spotkania wydawało mi się, że mentorów oraz klienta łączą raczej partnerskie stosunki. Omawiali projekt, ustalali terminy. Natomiast po spotkaniu zachowywali się, tak jakby tylko im przeszkadzał, tak jakby burzył ich spokój kolejnymi zmianami i terminami, jakby był problemem. Pewnie kryje się za tym jakaś dłuższa historia. Widocznie ten klient ma sporo za uszami. Widocznie z klientami nie ma tak łatwo i nie wszystko powinno im się mówić na spotkaniach. Może dla ich własnego dobra?

Atmosfera wokół projektu i w zespole była zadziwiająco dobra. Spędzaliśmy ze sobą sporo czasu, nawet po pracy zdarzało nam się gdzieś wyjść. Jadaliśmy razem lunche i graliśmy w piłkarzyki. Tylko ta nieszczęsna Java EE. Gdy tylko wracałem do komputera, zaczynał mnie boleć brzuch. Nie wiedząc nawet, za jakie zadanie się zaraz zabiorę i tak wiedziałem, że nie chcę go robić, że będę go robił za długo, że jestem zdany na siebie. Jeszcze tylko dwa miesiące do końca stażu. Rozmawiałem ze starszymi kolegami ze studiów. Podobno w przyszłym semestrze na jednych zajęciach będzie można zrealizować projekt na Androida! Prowadzącemu podobno chodzi jedynie o Javę. Aplikacje na telefon? Warto spróbować.

Junior – Pomóż albo nie przeszkadzaj

Kim jest początkujący programista/programistka? Spróbujmy jeszcze raz popracować nad definicją, ale tym razem nieco konkretniej. No to lecimy:

  1. Nie zna dobrze języków programowania, a w szczególności ich zaawansowanych funkcji.
  2. Nie zna dobrych praktyk i pojęć, takich jak: czytelny kod, programowanie w parach, testy automatyczne, ciągła integracja, sprawdzanie kodu przez resztę zespołu, refaktoryzacja i wielu innych.
  3. Nie zna wzorców projektowych – często nie wie o ich istnieniu.
  4. Nie wie, jak wygląda branża IT i na czym to wszystko polega, chodzi mi o relację firma (w której pracują) – biznes (klienci, którzy naszą firmę wynajęli w konkretnym celu, nie do zabawy).
  5. Nie wie, czym jest architektura.
  6. Nie rozumie dokumentacji, bo nie rozumie jeszcze wielu pojęć i towarzyszących programowaniu technologii oraz narzędzi.
  7. Nie wie generalnie jak wygląda praca programisty/programistki, jakie jest flow, bo…
  8. Nie wie, czym jest Agile albo jakakolwiek inna metodyka.
  9. Nie wie, jak rozmawia się z biznesem.
  10. Nie zna potrzeb biznesu.
  11. Nie wie, jak sprawnie się komunikować w zespole i w ogóle jak coś zakomunikować i komu.
  12. Nie wie…

Czego jeszcze nie wie junior? Mało tego, nawet nie wie, że tego wszystkiego jeszcze nie wie! Czego wy nie wiedzieliście, gdy otworzyliście swoją pierwszą książkę z podstaw Javy, Pythona czy C (czy tam kurs na stronie – ja jestem z tych, co lubią zapach papieru)? Gdy patrzymy na te punkty, to możemy nie dowierzać. “Co on pierdoli…” – komuś zaświta w głowie. A jednak, nie ma się pojęcia o tych wszystkich rzeczach, gdy wchodzi się do świata IT. Trzy miesiące w Javie i za chwilę będę ekspertem! Niestety nie.

Czy to jest ich wina, że tego wszystkiego nie wiedzą? Nie. Bo skąd mieliby to wszystko wiedzieć, skoro nie wiedzą, że tego nie wiedzą?

Juniorzy nie wiedzą, czego nie wiedzą.

To skąd mają się tego dowiedzieć? Od kogoś kto to wszystko już wie, albo przynajmniej część.

Czy w takim razie, jeżeli to wiemy, to powinniśmy im powiedzieć? Tak, a jeżeli nie chcemy im pomóc, to powinniśmy milczeć i nie przeszkadzać w ich rozwoju.

Pomóż albo milcz i nie przeszkadzaj w rozwoju juniorów.

Wiem, wiem. Nie wszyscy muszą rwać się z pasją do pracy z juniorami. Komuś może to nie odpowiadać. Jasne. Tylko bądźmy wtedy nadal ludźmi i traktujmy ich jak ludzi. Wykażmy się odrobiną dojrzałości i powiedzmy wprost naszym przełożonym: “Słuchaj, nie nadaję się do pracy z juniorami. Znając siebie, nie będę miał do nich cierpliwości i oni do mnie również. Pamiętasz wykładowców na studiach? No właśnie, nie każdemu się chciało prowadzić wykłady, a był do tego zmuszany, więc:

Tak samo jak na uczelni nie każdy naukowiec jest dobrym dydaktykiem, tak samo nie każdy programista będzie dobrym mentorem.

I nic w tym złego. Tylko bądźmy szczerzy ze sobą i z nimi. Nie wyżywajmy się na nich, że czegoś nie wiedzą, nie złośćmy się i nie śmiejmy z nich. Możemy ich zniszczyć takim zachowaniem, zniszczyć psychicznie i to nawet nie zdając sobie z tego sprawy. Nawet, gdy wydaje się nam, że nie ma ich w pobliżu – bo mogą być, mogą to usłyszeć i mogą się przez nas zniechęcić, stwierdzić, że się do tego nie nadają. To nie ich wina. Stańmy więc w prawdzie! Albo chcę pomagać i pomagam, albo nie chcę i nie przeszkadzam! Stań w prawdzie programisto i programistko!

Ktoś powie: “Ja też nie miałem łatwo i jakoś dałem radę.”. I to jest dowód na co? Że skoro nam ktoś przeszkadzał w naszym rozwoju, to my teraz będziemy teraz tacy sami dla innych? Liberum veto! Nie zgadzam się! Bądźmy lepsi, bo gdy my będziemy lepsi, to świat IT będzie lepszy. Jeżeli na początku naszej kariery musieliśmy przedzierać się i wspinać do wiedzy czerwonym szlakiem, to powinniśmy juniorom, którzy oczekują od nas nauki i mądrości, wskazać palcem deptak na Morskie Oko, a może i nawet złapać ich za rękę, pójść z nimi, dać im naukę, a nad samym Morskim Okiem pokazać, ile jest jeszcze gór dookoła.

Juniorzy są dziećmi IT. Na seniorach spoczywa odpowiedzialność za wychowanie ich na przyszłych ekspertów.

Poleciałem z tą myślą, wiem. Pamiętajcie tylko, że moja definicja seniora nie istnieje bez definicji juniora – jest względna. Każdy senior może być juniorem względem innego seniora. Bądź co bądź, ale to senior “wychowuje” juniora.

No dobrze, zgodziliśmy się pomagać juniorom. Co teraz? Przede wszystkim zadajmy sobie pytania:

  1. Czy jesteśmy dla nich dostępni i pomagamy im?
  2. Czy nie oceniamy ich problemów i nie dziwimy się im?
  3. Czy uczą się od nas tego, czego nie wiedzieli?
  4. Czy jesteśmy dla nich cierpliwi?
  5. Czy jesteśmy dla nich mili i uprzejmi?
  6. Czy jesteśmy dla nich wzorem do naśladowania, nawet wtedy, gdy nie proszą nas o pomoc?

Coś byście dodali? Duża odpowiedzialność, prawda? Dużo obowiązków. Nikt nie mówił, że będzie łatwo – w końcu na nas spoczywa obowiązek wykształcenia kolejnych pokoleń.

Idąc po kolei: Czy jesteśmy dla nich dostępni i pomagamy im?
Jeżeli nie będziemy dostępni i będziemy ich spławiać, prosić żeby podeszli później, albo do kogoś innego, to w końcu przestaną prosić o pomoc, będą się wstydzić i myśleć, że z nimi jest coś nie tak i tylko dupę zawracają. A tego nie chcemy.

Czy nie oceniamy ich problemów i nie dziwimy się im?
Każde zdziwienie typu: “Nie słyszałaś o tym?”, “Nie wiesz tego?” – jest oceną i junior poczuje się wtedy oceniony przez pryzmat swojej niewiedzy. Każde ocenienie ich przez to, z czym mają problem, może spowodować skutki podobne do tych opisanych akapit wcześniej.

Czy uczą się od nas tego, czego nie wiedzieli?
Zawsze warto nie tylko pomóc im rozwiązać jakiś problem, ale przy okazji wytłumaczyć coś więcej, nie tylko pomóc im stwierdzić, co nie działa i jak to naprawić, ale również dlaczego to nie działało i jak temu zapobiec, można też podrzucić tytuł jakiejś książki czy link do ciekawych tutoriali czy kursów, powiedzieć jakąś ciekawostkę. Będą się dzięki nam rozwijać szybciej, a skoro i tak mamy tę wiedzę, to czemu się nią nie podzielić?

Czy jesteśmy dla nich cierpliwi?
Na przykład, gdy musimy po raz kolejny tłumaczyć to samo? Czyją winą jest to, że junior czegoś nie zrozumiał? Naszą, czy jego? Ja jestem jednak zdania, że jeżeli komuś coś tłumaczę i ten ktoś tego nie zrozumiał, to jest to moja wina – mogłem wytłumaczyć to lepiej.

Czy jesteśmy dla nich mili i uprzejmi?
Bo to po prostu ludzkie. Nie tylko dla nich powinniśmy tacy być, ale dla nich najłatwiej takimi nie być, nie wiem czemu. Nie bądźmy też bierni na zachowania mentorów i nie-mentorów, w szczególności do juniorów, które są dalekie od standardów pracy nad rozwojem początkującej osoby. Gdy zobaczymy jakieś nieprzyjemne sytuacje, usłyszymy coś nie miłego na ich temat, niemiłe zachowania i odzywki, to dajmy po prostu feedback, upomnijmy tego człowieka, że to nieładnie, że tak nie wypada.

Czy jesteśmy dla nich wzorem do naśladowania nawet wtedy, gdy nie proszą nas o pomoc?
Jesteśmy obserwowani! Powiało grozą, co nie? Spokojnie, po prostu juniorzy nas obserwują, bo chcą się od nas uczyć. Nawet nie wiedzą, że przejmują od nas wiele zachowań. Tak jak w życiu – dziecko uczy się od rodziców. Nawet jeżeli nie mamy bezpośredniego styku z juniorami, to dawajmy dobry przykład, gdy są w pobliżu, żeby po prostu nabierali dobrych wzorców. Dzięki temu sami będziemy stawać się lepsi.


To chyba tyle. I tak już za dużo się nagadałem. Na koniec chciałbym wam wszystkim życzyć bycia wspaniałymi mentorami i w ogóle samej okazji zostania mentorem. Żebyście jak najwięcej razy usłyszeli “dziękuję” i mogli zobaczyć tę radość w oczach u kogoś, kto właśnie dzięki wam czegoś się nauczył. Jest to po prostu wspaniałe uczucie!

Początki juniorów – wiecie, tych pierwszych z juniorów, którymi będą (pamiętacie? relatywny junior-senior), nazwijmy ich juniorami zero – mogą być naprawdę trudne. Nie ma co im tego jeszcze utrudniać będąc dla nich zwykłym fiutem/fiutą. Nie przeszkadzajmy w ich rozwoju, a najlepiej im pomóżmy. Dzięki temu będziemy mieli swój mały wkład w to, jak ten świat IT będzie wyglądać w przyszłości.

Zasada skautów mówi: “Zawsze zostawiaj obozowisko czystsze, niż je zastałeś”. To samo powinniśmy robić z naszym kodem na co dzień. Poszedłbym dalej – to samo powinniśmy robić z juniorami na co dzień. Pozwolę sobie zatem sparafrazować tę zasadę:

Zawsze zostawiaj juniora w lepszym stanie, niż go zastałeś.

Nie jest to pewnie najmądrzejsza myśl, którą przeczytaliście, ale z tym was zostawiam. Do następnego!

Zamień smoki na pandy

“Here be dragons” – czy słyszeliście kiedyś ten zwrot? Czy słyszeliście o nim w kontekście programowania albo widzieliście taki komentarz w kodzie?

Tak? To współczuję – mam nadzieję, że byliście wtedy przyodziani w SOLIDną zbroję, i mieliście odpowiedni ekwipunek, żeby sobie z tymi smokami poradzić. Przede wszystkim miecz. Podobno jednym ze sposobów zwalczania smoków w kodzie jest użycie legendarnego miecza zwanego Excalibur Refactorum. Legenda głosi, że miecz ten wbity jest w skałę (gdzieś w okolicach Stonehenge), na której wyryte są wzorce projektowe i inne dobre praktyki programistyczne.

Nie każdy jest godzien, by ten miecz wyciągnąć, nie każdy jest godzien, by nim władać

– ma głosić tekst na kamiennej tablicy przy skale.

Nie każdy jest godzien nawet, by zostać rycerzem! Do tego trzeba być pasowanym na przykład realizując swój pierwszy projekt oraz wyznawać zasady płynące wprost z kodeksów rycerskich, jakimi są Manifest Agile i Manifest Software Craftsmanship (tak, mamy dwa kodeksy!). Ale o tym nie dzisiaj – opiszę to dogłębniej w jednym z kolejnych postów.

No dobrze, a co jeżeli nie miałeś do czynienia z określeniem “Here be dragons”? Ano nie ciesz się przedwcześnie i nie raduj zbyt pochopnie. To, że nigdy się z nim nie spotkałeś podczas swojej programistycznej kariery, może znaczyć jedynie tyle, że żaden z twoich kolegów i żadna z twoich koleżanek po fachu prawdopodobnie nie są z zamiłowania kartografami. Bo to właśnie kartografowie podobno umieszczali ilustracje smoków i innych mitycznych stworów w miejscach na mapach, które uważali za niebezpieczne.

Okazuje się, że programiści-kartografowie istnieją! 10 lat temu na StackOverflow pewna osoba chciała się dowiedzieć, jak brzmiał komentarz w kodzie dotyczący smoków. Chodziło właśnie o “Here be dragons”. Zostały nawet wspomniane kody źródłowe, w których ta przestroga została użyta. Nie należy niestety ten komentarz do zbioru tych lubianych i stosowanych przeze mnie (a takie mam!), ale skoro w pewnym stopniu stał się on programistyczną legendą, to zastanówmy się przez chwilę, jaką informację niesie on o danym kawałku kodu, ale i również o nas samych.

Tutaj są smoki. Przestroga mówiąca nam, aby nie zapuszczać się w te rewiry. Mówiąca o tym, że kod, który zaraz zobaczymy, jest nieokiełznany, skomplikowany, niezrozumiały. Wyobraźcie sobie! Wchodzicie do klasy. Spoglądacie na liczbę lini kodu. Widzicie 2000. Sprawdzacie metody. Jest jedna. Nie rozumiecie jej znaczenia, nazwa nic nie mówi. W środku całe mnóstwo: “if-else”, “for”, “while”, “break”, “return”, “goto” (nieee, żartuję). Sprawdzacie zmienne: “x”, “temp”, “temp2”, “r”, “dms”, “lol”, “e”. Wracacie na szczyt metody, a przed nią komentarz “Here be dragons”. “Żartobliwy. A jaki wyrafinowany!” – ktoś pomyśli. Faktycznie, można się zaśmiać. Niestety chwilę później uśmiech znika z naszej twarzy, gdy zdajemy sobie sprawę, że musimy wprowadzić pewne zmiany w tej metodzie. Dlatego nie sposób nie dostrzec tragizmu tego komentarza. Tak, bo stała się tragedia! Ktoś z nas, programistów i programistek, dopuścił do pojawienia się w tamtym miejscu smoków! Jak to się stało?

Spróbujmy przenieść się do tego świata. Niech nasz projekt zmieni się przez chwilę w grę Jumanji. Bierzemy kości do gry w dłonie i wykonujemy rzut. Kości toczą się długo, aż w końcu się zatrzymują i nagle projekt nas pochłania. Lecimy przez ciemny tunel, na którego końcu widać jasne światło. Jest coraz jaśniej, aż nagle nas oślepia i nic nie widzimy.

(Kurcze, właśnie zdałem sobie sprawę, że niestety często nasze projekty wyglądają właśnie jak taka gra w Jumanji – i oto zrodził się pomysł na kolejny wpis! Cierpliwości, rozwinę w nim swoją myśl)

Lądujemy na dupie. Przecieramy oczy i ukazuje się nam piękna, porośnięta zielenią kraina. Wstajemy. Wokół nas zielona i pachnąca trawa, sięgająca połowy łydek. Słyszymy głosy nieopodal, dochodzące zza niewielkiego wzniesienia: uderzenia metalu o metal, śmiechy, stukot końskich kopyt. Udajemy się w tamtą stronę. Stajemy na wzgórzu i naszym oczom ukazuje się wioska tętniąca życiem. Nagle słyszymy huk i krzyk! “Kurwa! Przecież mówiłem ci, żebyś tego nie ruszał! Znowu to spartaczyłeś i musimy teraz zaczynać od nowa!”. Spoglądamy w tamtą stronę i widzimy przyczepę z arbuzami, która zapadła się pod ich ciężarem. Młodzieniec, który wydaje się być odpowiedzialny za ten wypadek, szybko stara się naprawić koła, lecz nie jest w stanie podnieść przyczepy. Starzec, pewnie jego przełożony, wydziera się na niego pomagając przy tym wyciągnąć z niej arbuzy, by nieco ją odciążyć. “Swojacy” – myślimy sobie i idziemy się przywitać.

Zostaliśmy ciepło przyjęci, ludzie są tutaj mili, aczkolwiek bywa różnie. Dowiedzieliśmy się, że miejsce, w którym się znaleźliśmy, nazywane jest Krainą Arbuzów. Po kilku dniach zrozumieliśmy, że nie bez przyczyny – wioska ta produkuje arbuzy na zamówienie. Głównie dla jegomościów z okolicznych wiosek, ale również z wielkich miast oddalonych o kilka dni drogi na zachód. Pomagamy im w każdej nowej dostawie. Arbuziarze – tak nazywa się tutaj ludzi produkujących arbuzy. Stałem się więc arbuziarzem.

W piątki, po ciężkim tygodniu pracy, wszyscy arbuziarze spotykają się w tawernie. Oczywiście wybieramy się razem z innymi. Jest to nasz pierwszy tydzień pracy, dlatego chcemy pokazać się z dobrej strony. Pijemy piwo. Dużo piwa. Gra muzyka, ludzie się przekrzykują. Jak to bywa na takich ucztach, niewiele potrzeba do bójki.

– Bez dobrego nawozu, arbuz ci nie urośnie. To jest oczywiste! A najlepszy nawóz robię ja! – mówi poddenerwowany Clifford, jeden z arbuziarzy z mojej brygady.
– Ty? Haha! Gówno do nawozu bierzesz pewnie ze swojej głowy! Nic z tego nigdy nie urośnie! Haha! – odpowiada mu Jacob, uderzając kuflem pełnym piwa o drewniany stół i zanosząc się przy tym śmiechem.
– Nic nie wiesz o nawozie!
– Wiem tyle, że twój nawóz jest do niczego! Wszystkie twoje arbuzy od razu można wrzucić do beczek z odpadami! Haha! Na twoim nawozie wyrosną jedynie chwasty! Clifford chwaściarz! Haha!

Wszyscy zgromadzeni w tawernie ryknęli naraz śmiechem. Clifford zaczerwienił się ze złości i rzucił na Jacoba. Ten się tego nie spodziewał i chwilę później leżał na ziemi przygnieciony jego ciałem. Clifford ścisnął pięść i z całej siły uderzył Jacoba w twarz. Drugi raz. Za trzecim złamał Jacobowi nos. Struga krwi trysnęła na drewniane deski parkietu, brudząc przy tym buty siedzących blisko ludzi. Dwóch arbuziarzy nagle łapie Clifforda, odciąga go i rzuca nim w stronę sąsiedniego stołu. Clifford runął na niego z hukiem, tłucząc kufle z piwem i przewracając ludzi przy nim siedzących. Jacob zbiera się z ziemi, podbiega do wstającego Clifforda i uderza go w głowę kolanem z całym impetem. Krew rozbryzguje się po wszystkim, co znalazło się w pobliżu. Kropla krwi zawędrowała na śnieżnobiałą koszulę barmana. Słyszeliśmy o barmanie Rolandzie wiele historii, ale wszystkie wydawały nam się niewiarygodne i przesadzone. Roland, pełen spokoju, kończy wycierać mokry, czysty kufel. Odstawia go, składa ścierkę bardzo starannie i odkłada ją na bok. Schyla się, wyciąga strzelbę. Celuję najpierw do Clifforda – to on zaczął tę bójkę. Mierzy spokojnie i strzela. Kawałki głowy rozbryzgują się po ścianie, ciało bezwładnie pada na ziemię. Muzyka cichnie. Ronald kieruje strzelbę w stronę Jacoba, który błaga o litość i przeprasza. Roland postanawia zlitować się nad nim i odstrzela mu lewą nogę. Jacob ryczy z bólu. Noga leży kilka metrów od niego, a raczej to, co z niej zostało. Koledzy Jacoba wynoszą go z tawerny, aby zawieźć go do lekarza dwie chaty dalej. Roland chowa strzelbę z powrotem pod blat baru. Muzyka zaczyna ponownie grać i wszyscy wracają do swoich dyskusji. Podobno piątek jak każdy inny.

Świętowaniu udanego tygodnia towarzyszą częste wyprawy na kebaba. Jest on popularny w tych stronach. Podczas jednej z wypraw słyszymy dziwną a zarazem intrygującą historię. Otóż dowiadujemy się, że za pomarańczowym wzgórzem – jest tak nazwane ze względu na pomarańczowy odcień krzewów i drzew, które na nim rosną – żyją smoki. Nie takie, o jakich wcześniej słyszeliśmy: czarne, ogromne i ziejące ogniem. Te tutaj właściwie są pomarańczowe i wielkości przeciętnego wilka, takiego do kolan. Mają skrzydła, lecz nie potrafią wzbić się wysoko. Podobno ich lot przypomina raczej skoki na dalekie odległości. Pomimo różnic między smokami z opowieści, a pomarańczowymi smokami, te drugie nadal są niebezpieczne, a przede wszystkim niezwykle złośliwe. Na nasze nieszczęście ich przysmakiem są arbuzy. Zrobią dla nich wszystko i wiele okolicznych wiosek, które również zajmowały się produkcją arbuzów, zostało już przez nie splądrowanych. Na szczęście nie nasza, ta ma się dobrze. Póki co.

Jak co rano, zanim zaczniemy pracę, przechadzamy się po wiosce, żeby w spokoju pooddychać świeżym powietrzem. Jednak podczas tej przechadzki zwracamy naszą uwagę na to, że arbuzy nie są w żaden sposób zabezpieczane. W sumie to chyba nigdy nie były, tylko dopiero teraz to do nas dotarło. Wiele z nich leży na kupach siana, porozrzucanych w różnych miejscach wioski. Znaczna ich część chowana jest w stodołach, lecz stodoły te nie są zamykane, drzwi zawsze są szeroko otwarte. Zdajemy sobie sprawę również z tego, że transport arbuzów z jednego miejsca na drugie lub do dorożek (nie mają tutaj żadnych innych pojazdów), odbywa się w sposób chaotyczny. Niektóre przenoszone są przez arbuziarzy niosących pod pachami po dwa arbuzy, inne przewożone są w misach na osiołkach, jeszcze inne turlane po ziemi. Przy zapakowaniu ich do dorożki, nie ma wyznaczonych żadnych standardów umieszczania ich w odpowiedni sposób, wiele z nich spada, zostaje zgniecionych, pęka. Dorożki są powolne, ich konstrukcja nie pozwala na sprawny transport. Misy, z których korzystają arbuziarze, również nie są już pierwszej młodości, są podziurawione, uchwyty w wielu już poodpadały. Sama wioska nie posiada ogrodzenia, więc każdy mógłby do niej wtargnąć bez większych problemów. Pojawiło się w naszej głowie kilka pomysłów na usprawnienia. Jednak szybko porzucamy te myśli. “Niby kiedy mielibyśmy wprowadzić te usprawnienia? Żyjemy od dostawy do dostawy. Funkcjonujemy tak już od dawna i nic się złego nie dzieje. Widocznie tak musi być.”

Ładujemy arbuzy do dorożki lecz nagle kątem oka dostrzegamy jakiś ruch. “Pewnie liście” – myślimy i wracamy do pracy. Nie minęło kilka chwil, a znowu coś się poruszyło. Tym razem postanawiamy to sprawdzić. Idziemy w stronę głównych straganów – coś szybko przebiegło nieopodal. Skręcamy, a naszym oczom ukazuje się stodoła. Drzwi do niej oczywiście są otwarte. Wchodzimy i zamieramy. Spoglądają na nas trzy pomarańczowe smoki. Wyszczerzają ostre zęby i syczą. Za nimi około dwa tysiące arbuzów – wiemy to, bo składowaliśmy je tam przez ostatnie trzy dni. Wychodzimy przerażeni. Opamiętujemy się jednak szybko i biegniemy do sołtysa. Sołtys słucha nas uważnie. Zawołał dwóch arbuziarzy i razem idziemy do stodoły. Wchodzimy, smoki nadal tam są. Sołtys zastanowił się przez chwilę. Nagle rzekł:

– Moi drodzy, nie mówcie proszę nikomu, że w tej stodole są smoki. Omijajcie ją proszę i wchodźcie tam jedynie wtedy, kiedy naprawdę musicie, najlepiej nie sami.
– Sołtysie, dlaczego ich od razu nie wypędzimy? – zapytałem zdziwiony.
– Kodencjuszu, bardzo podoba mi się twój zapał. Niestety wypędzenie smoków nie należy do prostych czynności. Podczas próby przepędzenia, mogą uciec do innej stodoły, mogą narobić szkód w wiosce. Istnieje wiele niebezpieczeństw. Każdy z arbuziarzy ma zobowiązania względem dostaw i jegomościów. Nie mogę ich tak zwyczajnie odciągnąć od produkcji arbuzów. Dlatego na tę chwilę musimy postarać się żyć ze świadomością, że są w tej stodole.
– Rozumiem. – odparłem nie do końca przekonany. Nie powiedziałem sołtysowi o moich obawach względem jego decyzji. Stwierdziłem, że widocznie tak musi być.

Niestety w ciągu kilku kolejnych miesięcy smoki zaczęły napadać na dorożki z arbuzami, przejmować kolejne stodoły. Sołtysowy nie udało się utrzymać ich obecności w tajemnicy. Smoków było coraz więcej. Nikt nie podjął się próby ich wypędzenia. Nikt nie wiedział jak. Produkcja arbuzów z dnia na dzień była coraz cięższa. Wiele dostaw nie było realizowanych na czas. Arbuziarze musieli pracować dłużej, byli coraz bardziej zmęczeni. Podczas jednej z uczt w tawernie – jednego z niewielu miejsc, które jeszcze nie zostały opanowane przez smoki – zaważamy starszą kobietę siedzącą w rogu. Pali fajkę. Nigdy wcześniej jej nie tutaj nie widzieliśmy, zawsze przesiadywaliśmy z rówieśnikami, znacznie młodszymi od niej. Zaciekawieni jej osobą postanawiamy podejść.

– Witaj starsza kobieto. Jak masz na imię?

Kobieta pyknęła fajkę, buchnęła dymem, podniosła wzrok i spojrzała na nas.

– Jestem Abigail. A ty, jak się nazywasz? – odpowiedziała chrypliwym i skrzeczącym głosem.
– Nazywam się Kodencjusz. Bardzo mi miło.
– Czego chcesz? – zapytała, po czym splunęła gęstą śliną na podłogę.
– Niczego szczególnego. – odpowiedziałem zaskoczony. Postanowiłem poruszyć temat obecnej sytuacji w wiosce – Ostatnimi czasy smoki napadły wiele miejsc w naszej wiosce. Są w stodołach, przejęły dorożki, zniszczyły misy. Nie wiem, jak mamy sobie z tym poradzić i jak mamy produkować arbuzy. Jest to coraz trudniej i jeżeli nic z tym nie zrobimy, wkrótce produkcja stanie się niemożliwa. Jesteś starszą kobietą, pewnie wiele w życiu widziałaś, co myślisz o sytuacji, w której się znajdujemy?

Abigail milczała. Zapadła niezręczna cisza. Nagle uderzyła pięścią w stół i zaczęła się śmiać. Coraz głośniej. W końcu cała tawerna umilkła i słychać było tylko jej donośmy, histeryczny śmiech. Poczuliśmy się niezręcznie, wszystkie oczy zwrócone były w naszą stronę. Spuściliśmy głowę i przeczekaliśmy atak śmiechu. W końcu przestała i rzekła:

– A czego się kurwa spodziewałeś?! Wy, młode fiutki, nic nie wiecie o produkcji arbuzów! – splunęła i kontynuowała – Sołtys nie ma żadnego doświadczenia, jest zbyt młody. A ty? Ile ty w ogóle masz lat?
– 21 – odrzekłem. – Ale ja jestem tu nowy!
– I nie widziałeś, co się tutaj dzieje?! Jak wygląda ta produkcja? Nie zauważyłeś, że nic nie jest zabezpieczone?
– No, widziałem…
– I co zrobiłeś? Hę?
– No, nic, ale…
– Jakie ale? Nic i kropka! Jesteś tak samo winiec jak sołtys i wszyscy inni arbuziarze, którzy nic nie zrobili. To nie jest moja pierwsza wioska młodzieńcze. W twoim wieku również pracowałam nad produkcją arbuzów. Wioski, w których bywałam upadały z tych samych powodów. Ludzie o nich wiedzieli, w każdej jednej wiosce. Wiedzieli również, że można inaczej, że da się to zmienić. Potrzebowali jedynie sprowadzić pandy…
– Pandy? O czym ty mówisz?
– Ha! Niczego innego się po tobie nie spodziewałam. Młody fiutek… Tak, pandy! Zamieszkują odległe krainy, daleko za pomarańczowym wzgórzem. Nazywane są strażnikami arbuzów. Podobnie jak pomarańczowe smoki, pandy uwielbiają arbuzy. Są uczynne, miłe, potrafią współpracować z ludźmi. Nie potrafią arbuzów produkować, ale potrafią nimi zarządzać, pilnować je. Smoki ich nie cierpią i boją się ich! Nie od dziś wiadomo, że pandy potrafią kung-fu i skutecznie radzą sobie w starciu ze smokami. Ludzie mogliby skorzystać z ich pomocy, ale wymaga to nieco wysiłku. Trzeba zrozumieć język pand, potrafić się z nimi dogadać, zrozumieć je, zaproponować współpracę i podzielić między nimi obowiązki.
– To jest fascynujące! Jednakże nie rozumiem… Dlaczego nie korzystamy z ich pomocy? Dlaczego nie wyruszymy jutro i nie namówimy pand, by nam pomogły?
– Młodzieńcze… Doświadczenie podpowiada mi, że wynika to przede wszystkim z trzech powodów. Pierwszy to zwykła nieznajomość języka pand. Nie znasz ich języka, to się z nimi nie dogadasz. Niestety pomimo znajomości języka, do krainy pand trzeba wyruszyć. Trzeba wiedzieć, w czym dana panda się specjalizuje – czy w pilnowaniu arbuzów, czy w przepływie arbuzów z jednej stodoły do drugiej, czy w ładowaniu arbuzów do dorożek, czy może nawet w tworzeniu innych pojazdów niż dorożki, bo to też pandy potrafią. – przerwała by splunąć, po czym kontynuowała – Nawet jeżeli arbuziarz to wszystko wie, to taka wędrówka może być mozolna, ciężka, a przede wszystkim długa. Niestety nie zawsze arbuziarz ma na to czas, rezygnuje z wędrówki i to jest właśnie drugi powód. Arbuziarze żyją od dostawy do dostawy i każda zrealizowana z zyskiem dla wioski jest dla nich małym zwycięstwem, z którego bardzo się cieszą. Wszystko byłoby dobrze, gdyby arbuziarze podczas realizowania danej dostawy, pamiętali o tym, żeby zamykać stodoły, pamiętali o tym, żeby korzystać zawsze z dobrze skonstruowanych dorożek, innych pojazdów, żeby nie uszkadzać arbuzów w pośpiechu w trakcie ładowania. Problem w tym, że nie muszą oni o tym wszystkim pamiętać, nie muszą za każdym razem obawiać się, że coś może pójść nie tak, bo o czymś zapomną, bo zrobili coś w pośpiechu i wyprodukowane arbuzy niestety mogą nie być najlepszej jakości. Mogą to za nich robić pandy…
– Zaczynam rozumieć. Abigail, powiedz mi proszę, jak w takim razie znaleźć czas na sprowadzenie pand do wioski?
– Haha! – kobieta zaśmiała się. Zmrużyła oczy, pyknęła fajką i rzekła – I tutaj dochodzimy do trzeciego problemu. Nie wystarczy znać język pand, żeby je sprowadzić, trzeba również nauczyć się języka jegomościów! Bez współpracy z jegomościami, bez zrozumienia ich potrzeb, bez przedstawienia naszego sposobu produkcji arbuzów, pokazania naszych długofalowych pomysłów na sprawną produkcję, nigdy nie będziemy w stanie sprowadzić pand!
– Abigail! Jak tego dokonać? Jak możemy nauczyć się języka jegomościów?
– Kodencjuszu… Tak jak wszystkiego innego, musisz tego naprawdę chcieć i zabrać się do ciężkiej pracy.

Tutaj nasza historia się kończy. Bo to my zostaliśmy wessani do krainy arbuzów! Pamiętacie? Rzuciliśmy kośćmi! To my często jesteśmy właśnie Kodencjuszami, abuziarzami… a może nawet i sołtysami. Czy ta historia do was przemówiła? Jakie płyną z niej wnioski?

Zamień smoki na pandy

Pomarańczowe smoki są wrednymi stworzeniami. Na pierwszy rzut oka mogą nie być groźne, może nam się wydawać, że nie musimy się ich obawiać. Źle produkujemy arbuzy? Z którymś kolejnym wyprodukowanym bez należytej uwagi, w końcu dorwie się do niego smok. Jasne, można miejsca ze smokami omijać, ale jak długo takie podejście będzie się sprawdzać?

W naszej rzeczywistości smokami jest kod napisany w pośpiechu. Kod bez dobrych praktyk, pełen brzydkich zapachów, niezaprojektowany w odpowiedni sposób i nieprzemyślany.

Pandy z kolei mogą zająć się arbuzami. Potrafią ich pilnować, chronią je, zarządzają nimi. Produkując arbuzy, wiemy, której pandzie go przekazać, w jaki sposób go tej pandzie przekazać, bo wiemy, co ona z nim dalej zrobi. Znamy tę pandę i wiemy, jak z niej korzystać.

Czym są pandy w świecie programistów? Wzorcami projektowymi, zasadami SOLID, testami jednostkowymi i wszystkimi dobrymi praktykami wytwarzania oprogramowania. Zauważcie jednak, że język pand trzeba znać. Wzorców czy testów jednostkowych trzeba się nauczyć, musimy poświęć na to czas. Dopiero wtedy będziemy w stanie z nich skorzystać w odpowiedni i poprawny sposób.

Metafora sprowadzenia pand do Krainy Arbuzów nie tyczy się jedynie umiejętności twardych, technicznych, pisania dobrego kodu. Dogadać się z nimi można znając ich język, tak, ale żeby w ogóle zacząć wędrówkę do krainy pand, musimy znać też język jegomościów, czyli krótko mówiąc biznesu. Bez umiejętności miękkich, bez sprawnego zarządzania projektem, swoim czasem, wsłuchiwania się w priorytety klientów, szczerym szacowaniem czasu kolejnych zadań, artykułowania potrzeb i zagrożeń, nie będziemy w stanie skorzystać z dobrych praktyk, bo nigdy nie będzie na nie czasu. Będziemy żyć od wydania bieżącej wersji, do wydania nowej, projekt będzie w coraz gorszym stanie, aż w końcu smoki się w nim zalęgną do tego stopnia, że jedynym wyjściem będzie jego opuszczenie.

Umiejętności miękkie i rozumienie biznesu są często niedocenianie – przez samych programistów, jak i przez ich przełożonych. Uważam natomiast, że są one kluczem do lepszych umiejętności technicznych i w ogóle do możliwości skorzystania z tych umiejętności w jak najlepszym wydaniu.

Bez umiejętności miękkich nie będziemy w stanie skorzystać z umiejętności technicznych

Pandy w naszym kodzie wynikają zarówno z umiejętności technicznych, jak i z umiejętności miękkich, które pozwoliły z tych pierwszych skorzystać.

Podsumowując, twórzmy oprogramowanie w taki sposób, aby wynikało ono zarówno z dobrych umiejętności miękkich jak i technicznych. Wtedy w naszym kodzie będziemy z dumą mogli dodać komentarz “Here be pandas”.