Jaki jest programista, z którym każdy lubi pracować
My, programiści, chcemy rozwijać się zawodowo. Przede wszystkim jest to coś, co napędza nas wewnętrznie, a do tego dochodzi nasza ciekawość i chęć poznawania nowych rzeczy. Uczymy się nowych technologii nie dlatego, że ktoś nam kazał, ale dlatego, że sami tego chcemy. I szczerze mówiąc, w tak szybko zmieniającym się świecie, trudno nie nadążać za najnowszymi aktualizacjami. Nie da się opanować na 100% jednej rzeczy i trzymać się tego w nieskończoność; technologie informatyczne z roku na rok są coraz lepsze, a więc i my musimy być najlepsi.
Jednak nie każdy potrafi korzystać z nowych doświadczeń nauki. Będąc w branży już jakiś czas, odkryłem, że tylko niektórzy inżynierowie są w stanie rozwiązać problemy łatwo i przyjemnie, podczas gdy innym zajmuje to trochę więcej czasu. Nie jest to związane z doświadczeniem, pochodzeniem, czy byciem inteligentnym. To coś zupełnie innego.
Bez wahania
Dobrzy inżynierowie wiedzą, w jaki sposób rozwiązywać problemy i jednocześnie nie utknąć w martwym punkcie. Będą próbowali obejść zadanie w różny sposób, aby tylko je wykonać. Nie będą od razu zagłębiać się w problem, ale przede wszystkim postarają się zrozumieć wymagania. Kiedy wszystko staje się jasne, wyznaczają cel i wystrzeliwują swoje działa w jego kierunku.
I to jest pierwsza rzecz, która ich odróżnia. Niektórzy programiści mogą poprowadzić kilka rund tej samej dyskusji. Czy ta funkcja jest na pewno potrzebna? Czy to na pewno błąd w implementacji? Później pytania te mogą nawet przerodzić się w kłótnie między stronami, prowadzące do konfliktu interesów. Wynika to z faktu, że niektóre szczegóły techniczne są dość skomplikowane, a jednak ludzie lubią prostotę i zawsze będą unikać trudności.
W pogoni za ową prostotą lub złożonością, twórcy oprogramowania mogą spędzić całe dnie na poszukiwaniu doskonałych rezultatów. Jednak komu potrzebny jest ideał, skoro rozwiązanie robocze jest i tak o wiele korzystniejsze.
„Done is better than perfect.” ― Sheryl Sandberg
Liczba książek uczących i zachęcających do mówienia “nie” jest ogromna. Niektórzy inżynierowie i menedżerowie produktu mogą inaczej interpretować ten komunikat. To z kolei rodzi problem, ponieważ każdy zaczyna mówić “nie” w pierwszej kolejności. Z takim nastawieniem coraz trudniej jest o rozwiązanie jakiegokolwiek problemu oraz o szybkie wprowadzenie produktu na rynek. Czasami sięga to o wiele dalej i wydaje się nie mieć końca.
Dlatego pozytywne nastawienie i gotowość do szybkiego dostarczenia rezultatu są umiejętnościami pierwszej potrzeby. Członkowie zespołów są zachwyceni możliwością pracy z osobami posiadającymi te umiejętności.
Bez granic
Dobrzy programiści nie mają granic w swoich umysłach. To jest powód, dla którego Google jakiś czas temu zadawało logiczne pytania podczas rozmowy kwalifikacyjnej. Na przykład, dlaczego pokrywy włazów są okrągłe? Jak odmierzyć cztery litry wody, mając do dyspozycji tylko trzy i pięciolitrowe słoiki? Możesz się zastanawiać, jak te pytania mają się do rozwoju oprogramowania.
Głównym założeniem było określenie, czy kandydat jest w stanie myśleć nieszablonowo. Jest to testowanie logicznego myślenia i poziomu IQ, a nie umiejętności inżynierskich. Google chciało mieć pracowników o niezwykłym sposobie myślenia. Ich celem jest budowanie innowacyjnych produktów, a bez kreatywnego myślenia wiele rozwiązań nie istniałoby w dzisiejszych czasach.
Dlatego też korzystna jest współpraca z inżynierami o nieograniczonych horyzontach myślowych. Jeśli będą mieli do czynienia ze sprzętem bez SDK, to na pewno się nie poddadzą, podczas gdy inny inżynier nawet nie pokusiłby się o spróbowanie innego rozwiązania. Kreatywne umysły będą próbować dalej. Będą badać wszystkie możliwe opcje, jakie oferuje system operacyjny. Końcowe rozwiązanie może wyglądać nienaturalnie, z hackami i podejściami, których nigdy byś nie wykonał, ale jednak jakoś to działa. Dla tego typu inżynierów zawsze istnieje plan B. Zanim powiedzą “nie wiem”, przemyślą kilka razy, co mogą zrobić w konkretnej sytuacji.
Posiadają oni odpowiednią mieszankę ciekawości i kreatywności, a zespoły uwielbiają programistów z takimi mocami. W ich otoczeniu będziesz czuł się pewnie, wiedząc, że zawsze znajdzie się rozwiązanie. Firmy nie są zainteresowane problemami. Zatrudniają one ludzi, żeby właśnie te problemy rozwiązywali. Pragną talentów, które będą wiedziały jak poradzić sobie z niebagatelną sytuacją. Musisz tylko powiedzieć im, jakiego efektu końcowego oczekujesz, i właśnie taki efekt otrzymasz.
Posłowie
Dziedzina inżynierii oprogramowania stale się rozwija i przyciąga coraz więcej osób. Jak w każdej innej branży, firmy chcą pozyskiwać najlepszych pracowników. Jest to zrozumiałe, dlatego z pomocą przychodzą długie, wieloetapowe procesy rozmów kwalifikacyjnych. Firmy chcą lepiej poznać kandydatów i móc ocenić ich umiejętności, i nie jest to również łatwe zadanie.
Większość organizacji chciałoby mieć w swoich zespołach pozytywnych pracowników z umiejętnością rozwiązywania problemów. Jeśli posiądziesz taką wiedzę i umiejętności, być może staniesz się odnoszącym sukcesy inżynierem.
Oryginał tekstu w języku angielskim przeczytasz tutaj.