REKLAMA
  1. Spider's Web
  2. Technologie

Sekretny trik programistów. Po co im gumowe kaczki i pluszowe misie?

Na biurku programisty nierzadkim widokiem są gumowe kaczuszki, pluszowe misie czy zabawkowe figurki - i nie są one jedynie dodatkiem. Bowiem trik, który w pracy wykorzystują programiści, może nas całkiem sporo nauczyć.

12.12.2023
6:06
Sekretny trik programistów. Po co im gumowe kaczki i pluszowe misie?
REKLAMA

Kiedy mówimy o programiście, przeciętna osoba przed oczami widzi prawdopodobnie mężczyznę w okularach, ubranego albo w schludną koszulę, albo w t-shirt i bluzę, któremu równolegle do wpisywanego tekstu na czarnym ekranie pokazują się zielone znaki, niczym w scenie wyjętej z filmu lat 90. W scenariuszu trochę większego obeznania z technologią, oczami wyobraźni programistę widzimy jako osobę siedzącą przy komputerze, która przeklikuje się pomiędzy oknami i wpisuje dość długie fragmenty kodu, zrozumiałego dla komputera.

Gdzie tu miejsce na kaczki i pluszowe misie?

REKLAMA

Co ma gumowa kaczuszka do programowania? Wyjaśnię, ale zacznijmy od podstaw

Abyśmy się rozumieli, wyjaśnię specyfikę pracy programisty w najprostszy możliwy sposób. Rolą programisty jest tworzenie programów i aplikacji programów komputerowych, które wykonują pewne określone zadania. Są to zarówno bardziej zaawansowane systemy, dzięki któremu działają inne aplikacje i/lub sprzęt poprawnie komunikuje się z innymi urządzeniami, jak i prostsze aplikacje, z które instalujesz na swoim telefonie czy komputerze. Proces tworzenia aplikacji i programów to programowanie, czyli tworzenie instrukcji dla komputera, które określają jakie czynności, w jaki sposób i w jakiej kolejności ma wykonywać.

Kodowanie jest jednym z elementów programowania, bowiem jest ono niczym innym jak wpisywaniem linijek kodu w języku programistycznym zrozumiałym dla komputera. Jednak jak w przypadku wielu innych rzeczy pisanych (czy po prostu tworzonych) przez człowieka, w kod programistyczny wkradają się chochliki, niewiedza czy po prostu ludzkie błędy. Kod zawierający błędy nie działa poprawnie i wymaga kolejnego procesu stanowiącego część programowania - debugowania.

Debugowanie to proces analizy kodu, rozpoznawania błędów i ich naprawiania. Jednak pomimo istnienia debuggerów - programów pomagających w debugowaniu, proces ten jest wyzwaniem dla programistów. A to ze względu na konieczność odnalezienia wśród dziesiątek tysięcy znaków fragmentu kodu, który nie działa poprawnie, a problem pogłębia się gdy trzeba debugować kod napisany przez innego programistę lub jest się pod presją czasu.

Tu do akcji wchodzi gumowa kaczuszka, albo pluszak. Zależy, z kim wolisz rozmawiać.

"Kwak kwak" - wtedy zrozumiał, co zrobił źle

Metoda gumowej kaczuszki - czy jak kto woli, rubber duck debugging - to metoda debugowania polegająca na wyjaśnianiu w języku naturalnym (czyli takim, którym ludzie porozumiewają się pomiędzy sobą na co dzień) zaistniałego problemu (błędu) w kodzie. Gumowa kaczuszka jest tu jedynie symbolem, bowiem może być zastąpiona zarówno przez pluszaka, jak i osobę niemającą pojęcia o programowaniu, której próbuje się wyjaśnić niepoprawne lub niezamierzone działanie kodu. Jednak zabawkowe zwierzątko jest najpopularniejsze, bowiem mówienie do kaczuszki lub pluszaka jest mniej stresujące, a i zabawka zawsze będzie mieć dla ciebie czas.

Ale wróćmy do problemu: dlaczego w ogóle programiści potrzebują komuś - zabawce czy laikowi - wyjaśnić, że ich kod nie działa tak, jak powinien? Bowiem objaśnienie tego samego problemu za pomocą języka naturalnego pozwala programistom zyskać nową perspektywę, spojrzeć na problem oczami innymi niż profesjonalista, ale też odświeżyć umysł przeskakując z profesjolektu (ale i często z języka angielskiego) na najbliższy i najprostszy rodzaj języka.

Kiedy zakładasz ignorancję swojej gumowej kaczki, musisz wyjaśniać dokładniej i precyzyjniej, niż prawdopodobnie myślałeś o tych konkretnych linijkach kodu w swojej głowie. [...] Kiedy wyjaśniasz, "a potem prawdopodobnie tak się stanie, ponieważ zwykle tak się dzieje" wydaje się dość kiepskim wyjaśnieniem. Jesteś więc zmuszony do głębszego zrozumienia i pełniejszego wyjaśnienia

- w tych słowach psychologiczne tło działania metody gumowej kaczuszki swego czasu wyjaśnił programista David B. Hayes.

Działanie metody gumowej kaczuszki potwierdza zarówno doświadczenie, jak i nauka. W badaniu przeprowadzonym w 2021 roku przez amerykańskich naukowców na 201 uczestnikach wykazano, że słowne opisywanie przez ludzi przedstawionych im problemów sprawia, że są oni lepsi w rozwiązywaniu problemów w porównaniu do osób, które problemy rozwiązywały w "swojej głowie".

Sama metoda nie jest jakkolwiek nowa, bowiem jej historia sięga roku 1999, kiedy to Andrew Hunt oraz David Thomas w książce "The Pragmatic Programmer" opisali mówienie do gumowej kaczki jako skuteczny sposób odnajdywania źródła problemu.

[...] Bardzo prostą, ale szczególnie przydatną techniką znalezienia przyczyny problemu jest po prostu wyjaśnienie go komuś innemu. Druga osoba powinna patrzeć przez ramię na ekran i nieustannie kiwać głową (jak gumowa kaczka podskakująca w wannie). Nie musi nic mówić; prosta czynność wyjaśnienia, krok po kroku, co kod powinien robić, często powoduje, że problem wyskakuje z ekranu i sam się ujawnia.

Dlatego następnym razem gdy zobaczysz kaczuszkę na biurku programisty - nie wyrzucaj jej. Jeżeli kiedyś przejdziesz obok grupy programistów gadających do pluszaków - nie bój się, oni nie zwariowali.

Ale może my także - niezależnie od profesji - powinniśmy mieć własną gumową kaczuszkę?

REKLAMA

Może zainteresować cię także:

REKLAMA
Najnowsze
Aktualizacja: tydzień temu
Zobacz komentarze
REKLAMA
REKLAMA
REKLAMA