Uwaga! Trwają prace nad nową wersją serwisu. Mogą występować przejściowe problemy z jego funkcjonowaniem. Przepraszam za niedogodności!
⛔ Potrzebujesz wsparcia? Oceny CV? A może Code Review? ✅ Dołącz do naszej społeczności na Discordzie!
Jeżeli jesteś początkującym programistą, być może sen z powiek spędza Ci wizja programowania i opowiadania o kodzie pod okiem rekrutera technicznego. Dzięki lekturze tego artykułu lepiej poznasz czekający Cię pair programming lub live coding i zdołasz się do nich przygotować!
Jest to dosłownie programowanie w parze, podczas którego dwóch programistów korzysta z jednego komputera i pracuje nad jednym zagadnieniem. Przyjmują oni jednak dwie różne role: nawigatora (ang. navigator) i kierowcy (ang. driver).
Nazwy nie są przypadkowe. Podział ról rzeczywiście nawiązuje do rajdu samochodowego – nawigator-pilot pilnuje trasy, ostrzega przed trudniejszymi momentami. Kierowca – słucha pilota i reaguje na to, co ma przed sobą.
Kierowca – to on trzyma kierownicę, czyli klawiaturę i myszkę, i tylko on jest odpowiedzialny za pisanie kodu. Do jego obowiązków należy:
Nawigator – jak już wspomniałem, to „mózg operacji”. Do niego należy planowanie logiki i przewidywanie kolejnych kroków. Jego rolą jest:
Dodatkowo obaj programiści powinni jasno się komunikować i reagować, gdy druga strona milczy, oraz być otwarci na pomoc swojego partnera: dopytywać o niejasne zagadnienia czy prosić o radę.
Jeżeli jesteś już członkiem zespołu developerów i czeka Cię pierwsza sesja programowania w parze – zapytaj kolegę, team leadera lub managera, czy macie już jakieś przyjęte praktyki dla pair programmingu. To pozwoli Ci się lepiej przygotować.
W każdej firmie przygotowanie do sesji może być bardziej lub mniej szczegółowe. Może tylko omówicie swoje spojrzenie na problem, może rozpiszecie go na samoprzylepnych kartkach, a może wrzucicie taski na tablicę kanban.
Tak czy inaczej, warto zaplanować sobie pracę:
Podstawą programowania w parze są 2 elementy:
Ilość sesji, czas jednej sesji i przerwy ustala się zależnie od preferencji developerów lub zasad panujących w zespole. Programowanie w parze, jeśli poświęcamy się swojej roli w 100%, jest dość wyczerpujące: wymaga nieustannego skupienia, ciągłej komunikacji i czujności. Dlatego początkujący programiści pewnie lepiej odnajdą się w krótszych okresach.
Do regulowania czasu można wykorzystać technikę Pomodoro, czyli system:
Gdy programiści są doświadczeni, mogą wydłużyć czas sesji nawet dwukrotnie: 50-10-50.
Podział na role, zwłaszcza gdy programujemy w parze zdalnie i mamy dostęp do edycji kodu w tym samym czasie co partner (np. dzięki rozszerzeniu do VS Code – Live Share Extension Pack), rodzi co najmniej dwie pokusy:
Dlatego programowanie w parze może być frustrujące i na pewno nie każdy się do niego nadaje. Wymaga samodyscypliny: trzymania języka za zębami i rąk przy sobie 😉
Dla nawigatora:
Dla kierowcy:
Dla obu partnerów:
Programowanie w parze ma działać w myśl zasady „co dwie głowy to nie jedna”, by zwiększyć wydajność tworzenia sprawnego oprogramowania i zmniejszyć ryzyko powstania błędów. Ale czy rzeczywiście jest to optymalny sposób pracy?
Wielu developerom, którzy od samego początku kodują „sam na sam z komputerem”, może nie mieścić się w głowie programowanie w parze. I tak jak wyżej napisałem: nie każdy będzie się do tego nadawał.
Często powtarzanym zarzutem dla pair programmingu jest brak swobody pisania kodu: programiści są przyzwyczajeni do tego, że sami planują, analizują i piszą kod – a nie: dyktują go, czy odtwarzają to, co dyktuje osoba obok.
Drugi zarzut to zepsucie relacji między partnerami: nie każdy potrafi tolerować „narzucanie mu” sposobu pracy i będzie irytował się w roli kierowcy. Ktoś inny z kolei może słabiej radzić sobie z mówieniem o kodzie i ciągłe precyzowanie poleceń w roli nawigatora będzie go okropnie frustrowało. W obu przypadkach irytacja może się przenieść na programistę z pary.
Trzeci zarzut to oczywiście kwestionowanie opłacalności takiego rozwiązania. Dwóch programistów mogłoby przecież pracować niezależnie od siebie nad dwoma zadaniami, a w pair programmingu – pracują nad jednym zadaniem i każdy z nich nadal otrzymuje swoje wynagrodzenie.
Czy pair programming ma zatem jakieś plusy?
Z pewnością nie ma sensu go stosować zawsze i wszędzie. Jednak daje on oszczędność czasu i większą efektywność pracy. Sprawdzi się więc tam, gdzie musimy coś zrobić szybko i dokładnie. Czyli gdzie? Na przykład gdy goni nas deadline – a wdrażane rozwiązanie wpływa na wydajność całego programu – lub gdy na produkcję przedrze się błąd.
Pair programming może być więc dobrym narzędziem do zażegnywania kryzysów – a takie narzędzie warto znać i umieć z niego korzystać.
Na rozmowie technicznej częściej pewnie spotkasz się z tzw. live codingiem. Live coding to sytuacja, w której kandydat rozwiązuje zadanie, opowiada o swojej koncepcji i na bieżąco omawia tworzony kod, a rekruter obserwuje działania kandydata i zadaje pytania odnośnie do wybranych rozwiązań.
Rekruter może jednak zechcieć sprawdzić Twoje umiejętności z zakresu programowania w parze – zwłaszcza jeśli jest ono często stosowane w zespole.
Po lekturze tego artykułu wiesz już, czego wymaga się od roli nawigatora i kierowcy, i prawdopodobnie wyczuwasz, co może sprawić Ci problem.
Ponieważ zwykle jest to komunikacja, to na niej się skupię – zwłaszcza, że przyda Ci się ona także podczas live codingu czy opowiadania o kodzie w którymś z projektów w portfolio. Jak ją ćwiczyć?
Metodą pośrednią jest mówienie do samego siebie czy do gumowej kaczki. Na głos – nie w myślach, nie szeptem. Im lepiej odtworzysz mogącą Cię spotkać sytuację, tym lepiej się w niej odnajdziesz, gdy już nastąpi (tak działa nasz mózg).
Jednak po takich ćwiczeniach nadal będziesz mieć obawy, czy wyrażasz się wystarczająco jasno, czy nie robisz błędów, czy nie sprawiasz wrażenia osoby, która „plącze się w zeznaniach”.
Dlatego najlepszym rozwiązaniem jest znalezienie osoby do współpracy. Dzięki temu:
Jeśli masz już kogoś do wspólnych ćwiczeń, ale nie wiesz, jak zorganizować pierwszy pair programming, możesz zainspirować się artykułem o pair programmingu dla początkujących.
🎧 Posłuchaj, co o pair programmingu mówi doświadczony PHP developer w odcinku podcastu „Czym jest pair programming i jak skutecznie go stosować”. Na stronie odcinka znajdziesz również transkrypcję.
Choć pair programming nie jest dla każdego i nie jest do wszystkiego, stanowi cenne narzędzie podczas radzenia sobie z sytuacjami wymagającymi ostrożności, dobrego przewidywania i szybkiej realizacji zadania. Dlatego warto się go nauczyć. Nie musi to być Twój ulubiony sposób programowania, lecz jak można odmówić dobremu narzędziu do zażegnywania kryzysów w projekcie?
Udostępnij ten artykuł:
Potrzebujesz cotygodniowej dawki motywacji?
Zapisz się i zgarnij za darmo e-book o wartości 39 zł!
PS. Zazwyczaj rozsyłam 1-2 wiadomości na tydzień. Nikomu nie będę udostępniał Twojego adresu email.
Mam coś dla Ciebie!
W każdy piątek rozsyłam motywujący do nauki programowania newsletter!
Dodatkowo od razu otrzymasz ode mnie e-book o wartości 39 zł. To ponad 40 stron konkretów o nauce programowania i pracy w IT.
PS Zazwyczaj wysyłam 1-2 wiadomości na tydzień. Nikomu nie będę udostępniał Twojego adresu e-mail.