Miałem ostatnio przyjemność mieć rozmowę rekrutacyjną. Rekruterka napisała mi na Linkedin, że rozwijają kolejny projekt. Mają naprawdę ludzkie podejście do pracowników. Od słowa do słowa umówiliśmy się na kolejną rozmowę z liderem zespołu. I… tu się zaczęło.
LIDER (7 lat w jednej pracy w jednym projekcie). Opowiada, a ja słucham. Twigi, jquery, esi, czyli jednym słowem spaghetti. Oczywiście struktura monolitów. Zadaję pytania o architekturę, ale nie dostaję żadnej odpowiedzi. Pytam o SCRUM. Okazuje się, że pracuje sam z kolegą, ale jest drugi zespół i razem z tym drugim zespołem mają jeden SCRUM (???).
Kod okazało się, że jest taki od tych 7 lat i w sumie nie ma po co zmieniać, bo działa. Ale symfony dołożyli.
Myślę sobie dotrwam do końca, żeby nie być niemiłym, już tylko 20 minut do końca spotkania. I… zaczynają się pytania techniczne.
LIDER: “Napisz mi, takie, a takie zapytanie do bazy danych”.
Myślę sobie, ok, napiszę. Co prawda od 2 lat używam głównie ORMa, ale ok. Mówię, że będę pisał pseudokodem, żeby pokazać rozwiązanie problemu, bo nie pamiętam teraz składni. Napisałem pseudokod.
LIDER: “To nigdy nie zadziała, to nie jest prawdziwa składnia do żadnej bazy!”
JA: “Mówiłem, że będę pisał pseudokodem, żeby pokazać w jaki sposób rozwiązałbym problem”
LIDER: “Ale my tu ciągle piszemy sqle i wyciągamy raporty z bazy danych i trzeba umieć pisać zapytania”
Myślę sobie, dlaczego oni ciągle piszą sqle do bazy danych i czemu robią raporty na podstawie ręcznie napisanych sqli? Ale nawet gdybym musiał je też pisać to przecież to jest jak jazda na rowerze. No, ale dla LIDERA jak ktoś nie pamięta składni na pamięć to się nie liczy.
Padło jeszcze pytanie o napisanie regexpa, ale skończył się planowany czas rozmowy.
Na koniec powiedziałem liderowi, że ja bym zadawał pytania, które sprawdzają jak developer myśli, jak podchodzi do rozwiązania problemu, czy zna zasady clean code i dobre praktyki. Prosiłbym o opisanie w praktyce wzorców, na przykładach jak zastosował je w poprzednich projektach i w jakich architekturach pracował. Każdy z nas zna wiele, technologii, ale nie wszystkie używamy na co dzień. Jak czegoś się aktualnie nie używa to trudno, żeby mózg idealnie pamiętał jakąś konkretną składnię. Tak już jesteśmy zbudowani.
Dla mnie najważniejsza jest umiejętność myślenia abstrakcyjnego i samodzielnego rozwiązywania problemów. Ja osobiście nie potrzebuję w zespole klepacza kodu, który robi copy/paste i w kółko pisze tylko sql i wyciąga raporty.
Usłyszałem jeszcze, że każdy developer uczy się na pamięć wzorców i regułek i każdy mu je mówi. SOLID, clean code, KISS czy inne zasady nic dla niego nie znaczą.
Dla mnie, nie było sensu kontynuować tej rozmowy, zrezygnowałem.
Moim zdaniem to nie jest problem z SOLIDEM i pryncypiami, tylko z błędnie zadawanymi pytaniami o regułki. Może jak ktoś nie rozumie idei SOLIDA to nie potrafi zadać odpowiedniego pytania? Nie wiem.
Autor:
Rafał Żebrowski
Senior PHP developer
.
.
Ps. Jeśli macie podobne doświadczenia, napiszcie do nas na marketing@it-leaders.pl 🙂