Metoda gumowej kaczuszki

Autor:
Zespół Future Collars
Metoda gumowej kaczuszki

Błędy w kodzie zdarzają się bardzo często i są wpisane w pracę programisty. Choć często powodują frustrację i wpływają na wydłużenie czasu realizacji projektu, to jednak ich odnalezienie i poprawa są kluczowe. W procesie tym pomóc może metoda gumowej kaczuszki. Na czym ona polega?

 

Jak działa metoda gumowej kaczuszki?

Czasami błędy w kodzie odnoszą się do szczegółów, które łatwo jest pominąć ze względu na szybkość programowania. Wystarczy jedna źle wprowadzona zmienna, literówka czy niepoprawnie określony warunek, by tworzony program czy aplikacja nie działały poprawnie. Na szczęście z pomocą programistom przychodzi metoda gumowej kaczuszki, oparta na idei myślenia na głos. Na czym ona dokładnie polega?

 

Rubber duck debugging

Rubber duck debugging to metodologia programowania, odnosząca się do debugowania kodu. Nazwa jest odniesieniem do historii przedstawionej w książce The Pragmatic Programmer autorstwa Andrew Hunta oraz Davida Thomasa wydanej w 1999 roku. Metoda gumowej kaczki polega na weryfikacji napisanego kodu linijka po linijce w celu znalezienia błędów. Proces weryfikacji przebiega jednak w sposób nieco niestandardowy, gdyż podczas wyszukiwania defektów programista objaśnia stojącej obok niego, żółtej kaczce, sposób działania czy zakres funkcji poszczególnych elementów w aplikacji, witrynie czy w programie. Mówiąc wszystko na głos, programista wyjaśniania więc wiersz po wierszu co wykonał oraz dokładnie opisuje problem. W trakcie takiej inspekcji kodu o wiele łatwiej można znaleźć błąd. Metoda gumowej kaczuszki bardzo dobrze sprawdza się także podczas nauki programowania oraz w trakcie kursów dla programistów.

 

Skąd biorą się błędy w kodzie?

Przede wszystkim musimy zdać sobie sprawę z faktu, że komputer „myśli” inaczej niż ludzie. Tam, gdzie używa się tylko logiki i faktów, ludzki umysł jest zdecydowanie znacznie bardziej złożony i wykorzystuje wszystkie pięć zmysłów do podejmowania decyzji. Kiedy dochodzi do zablokowania prac z powodu błędu w kodzie, najczęstszym powodem zaistniałej sytuacji jest to, że programista nie użył umysłu w sposób, w jaki „myśli” komputer do rozwiązywania problemów związanych z inspekcją kodu.

Aby napisać idealny kod, trzeba być tak precyzyjnym, jak to tylko możliwe, ponieważ komputery nie rozumieją niejasnych instrukcji. W związku z tym większość błędów, z którymi programista boryka się w swoim kodzie, wynika z braku dostarczenia jasnych informacji i instrukcji.

 

Ask the duck – czyli jak rozmawiać z kaczką?

metodzie gumowej kaczuszki cały proces inspekcji kodu rozpoczyna się od stwierdzenia faktu, że w napisanym kodzie jest błąd. Na wstępie nie wdrażamy naszego partnera, żółtej kaczuszki, w szczegóły. Staramy się jedynie nakreślić ogólny problem.

W kolejnym kroku przechodzimy do szczegółowej weryfikacji kodu, opisując na głos kaczce, linijka po linijce, co zostało napisane, dlaczego i w jakim celu. Należy przy tym pamiętać, że im bardziej szczegółowe jest wyjaśnienie, tym łatwiej będzie znaleźć błąd.

Efektem rubber duck debugging jest znalezienie rozwiązania problemu. Literówka, niewłaściwa zmienna lub nieprawidłowa składnia zostają wówczas naprawione, a przeprowadzony z kaczuszką monolog można uznać za skuteczny.

 

Aspekt psychologiczny w metodzie gumowej kaczuszki

Choć wiele osób na myśl o rozmowie z kaczką zaczyna się uśmiechać, to jednak metoda ta bazuje na solidnych, naukowych filarach.

Zaobserwowano, że podczas wyjaśniania komuś koncepcji lub problemu w mózgu zachodzą dwie subtelne, ale przełomowe zmiany.

Pierwsza z nich spowalnia myślenie. Podczas opowiadania jesteśmy w stanie opisać szczegóły dokładniej, nie pomijając żadnych informacji. Druga zmiana dotyczy z kolei percepcji postrzegania rozmówcy, z którym mamy do czynienia. Rozmawiając z gumową kaczką, traktujemy ją poniekąd z automatu, jako mniej doświadczonego w programowaniu przeciwnika, przez co wszystkie elementy kodu objaśniamy dokładniej, jak dla laika.

Zakładając, że kaczka nie zna szczegółów problemów tak dobrze, jak my, jesteśmy zmuszeni opisać nawet te najdrobniejsze fragmenty kodu, przez co szansa na znalezienie błędu wzrasta. Ten psychologiczny aspekt metody gumowej kaczuszki dla programistów jest tak naprawdę częścią teorii rozwoju poznawczego Piageta.

Reasumując, metoda gumowej kaczuszki to dla programistów szybka droga do przeprowadzenia skutecznej inspekcji kodu. Czasem zatrzymanie się, czy nawet wykonanie kroku wstecz, daje lepszy pogląd na całą sytuację. W przypadku debugowania kodu kwestie te są kluczowe. Bez znalezienia błędu i poprawy nie można przejść bowiem do kolejnych etapów projektu. Warto więc porozmawiać z kaczuszką, aby za pomocą właściwych pytań, samemu udzielić sobie odpowiedzi na nurtujące nas problemy.

Skorzystaj również z naszych kursów online:

Przeczytaj jeszcze więcej
AI zrewolucjonizuje Twój zawód.png

AI zrewolucjonizuje Twój zawód! Odkryj, jak PRZETRWAĆ i ZAROBIĆ w nowej erze rynku pracy!

Dla psychologów takie systemy mogłyby stanowić nieocenioną pomoc w utrzymaniu ciągłości terapii pacjentów, obejmując swoim zakresem od coachingu, przez plany dietetyczne, aż po monitorowanie przyjmowania leków – powiedziała Joanna Pruszynska-Witkowska na antenie radia RDC w audycji „Sztuczna inteligencja nie zabierze ci pracy, ale…” (16.04) prowadzonej przez Piotra Pilewskiego (android.com) w ramach cyklu „Technologicznie mówiąc”. Dynamiczny rozwój sztucznej inteligencji rewolucjonizuje rynek pracy, stawiając przed nami nowe wyzwania, ale i otwierając AI zrewolucjonizuje Twój zawód! Odkryj, jak PRZETRWAĆ i ZAROBIĆ w nowej erze rynku pracy!

Reskilling w cyberbezpieczeństwie.png

Jak świadome firmy zbroją się w kompetencje na przyszłość? czyli reskilling w cyberbezpieczeństwie

Ten alarmujący wzrost zagrożeń nie tylko wskazuje na rosnącą aktywność cyberprzestępców, ale również generuje realne koszty dla firm. Średni koszt cyberataku dla małej i średniej firmy w Polsce może sięgać kilkudziesięciu tysięcy złotych, a w przypadku dużych przedsiębiorstw straty mogą być liczone w milionach. Do tego dochodzą koszty związane z przestojami w działalności, utratą reputacji i karami za naruszenie przepisów o ochronie danych. Do tego alarmującego wzrostu zagrożeń dochodzi problem niedoboru Jak świadome firmy zbroją się w kompetencje na przyszłość? czyli reskilling w cyberbezpieczeństwie

Czy boty zabiorą ci pracę? Rewolucja AI na rynku pracy

Czy boty zabiorą ci pracę? Rewolucja AI na rynku pracy

OBEJRZYJ: Kluczowe kompetencje i zawody jutra | Webinar z prof. Markiem Kowalkiewiczem Dynamiczne zmiany na rynku pracy, wpływ AI na różne zawody Rewolucja technologiczna, napędzana sztuczną inteligencją, stawia przed nami nowe wyzwania. Czy wskoczymy do pociągu przyszłości, czy zostaniemy na peronie przeszłości? Profesor Kowalkiewicz nie ma wątpliwości: adaptacja jest kluczem do przetrwania i sukcesu. „Wejście w erę sztucznej inteligencji to nie opcja, lecz konieczność. Pamiętam, jak lata temu programy księgowe czy arkusze kalkulacyjne budziły Czy boty zabiorą ci pracę? Rewolucja AI na rynku pracy

Sztuczna inteligencja nie zabierze Ci pracy

Sztuczna inteligencja nie zabierze Ci pracy, ale … kto inny może to zrobić

Sztuczna inteligencja rewolucjonizuje świat, stawiając przed nami nowe wyzwania. Zmiany zachodzą w tempie, które jeszcze niedawno wydawało się niemożliwe, wymagając od nas nieustannej gotowości do nauki i adaptacji. Czy wskoczymy do pociągu przyszłości, czy zostaniemy na peronie przeszłości? Prof. Marek Kowalkiewicz nie ma wątpliwości: kluczem do sukcesu w nadchodzącej erze jest rozwijanie kompetencji, które pozwolą nam efektywnie współpracować z nowymi technologiami.   OBEJRZYJ: Kluczowe kompetencje i zawody jutra | Webinar z prof. Markiem Sztuczna inteligencja nie zabierze Ci pracy, ale … kto inny może to zrobić

IT Support wciąż na topie

Nie taki straszny rynek IT, jak go malują! IT Support wciąż na topie

OBEJRZYJ: Jak zostać specjalistą IT Support i skutecznie rozpocząć karierę w branży IT IT Support w akcji IT Support odgrywa kluczową rolę w każdej organizacji, szczególnie w dużych korporacjach, gdzie technologie IT są podstawą działania. Specjalista ds. wsparcia technicznego nie tylko monitoruje infrastrukturę IT, ale także dba o to, aby systemy, sieci i urządzenia działały sprawnie, a pracownicy mieli odpowiednie warunki do wykonywania swoich obowiązków. Ta rola obejmuje szerokie spektrum Nie taki straszny rynek IT, jak go malują! IT Support wciąż na topie

Jak AI rewolucjonizuje HR?

Jak AI rewolucjonizuje HR? Praktyczne zastosowania i realne korzyści dla firm.

Automatyczna selekcja CV – mniej manualnej pracy, lepsze wyniki Każdy rekruter wie, ile czasu pochłania przeglądanie CV. AI analizuje aplikacje w ułamku sekundy, wybierając najlepszych kandydatów na podstawie kluczowych kompetencji i doświadczenia. Unilever wdrożył AI do selekcji kandydatów, redukując czas rekrutacji o 75%. Goldman Sachs używa AI do analizy tysięcy aplikacji w kilka minut, nie tylko na podstawie umiejętności, ale także potencjału rozwojowego. Efekt? Rekruterzy mogą Jak AI rewolucjonizuje HR? Praktyczne zastosowania i realne korzyści dla firm.