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
Cykl AI Blog_h57ausmm

Sektor cyber szuka humanistów

Człowiek, tu leży problem  Klasyczny obraz hakera w czarnej bluzie, zacięcie wstukującego zielony kod na czarnym ekranie, nadaje się wyłącznie do filmów sensacyjnych. Współcześni przestępcy nie marnują czasu na szukanie dziur w zaawansowanych firewallach, skoro mogą po prostu pukać do cyfrowych drzwi tak długo, aż ktoś sam je otworzy.  Gole dane rynkowe obnażają tę brutalną mechanikę:  ▪ 94% wszystkich ataków cyfrowych ma swój początek w phishingu, czyli podszywaniu się pod zaufane Sektor cyber szuka humanistów

Moja propozycja jak można by było zrobić tę grafikę _) (2) (1)

Kwantowy skok (w bok od krzemu). Czym jest quantum computing?

Bit kontra kubit, czyli rewolucja stanów skupienia Klasyczny komputer, na którym czytasz ten tekst, jest do bólu przewidywalny. Działa w systemie binarnym. Każdy bit informacji to albo zero, albo jeden – jak światło, które jest albo włączone, albo wyłączone. Trzeciej drogi nie ma. Komputery kwantowe porzucają tę nudną dychotomię na rzecz kubitów (bitów kwantowych). Dzięki dwóm zjawiskom z pogranicza fizyki i metafizyki – superpozycji oraz splątaniu – kubit może być Kwantowy skok (w bok od krzemu). Czym jest quantum computing?

grafa do artykułu o teście (1)

Pierwsza edycja IT Talent Index: Najczęstszym profilem Polaków nie jest programista. To współczesny człowiek renesansu.

Przez lata branża technologiczna była opowiadana w bardzo prosty sposób. Sukces w IT miał należeć do osób technicznych, świetnych z matematyki, logicznych i skoncentrowanych na programowaniu. W efekcie wiele osób z góry wykluczało siebie z myślenia o rozwoju w nowych technologiach. Dziś ten obraz jest już nieaktualny. Rozwój sztucznej inteligencji to tylko jeden z procesów zmieniających rynek pracy. Równolegle organizacje mierzą się z automatyzacją, cyberbezpieczeństwem, analizą danych, transformacją chmurową oraz rosnącą potrzebą Pierwsza edycja IT Talent Index: Najczęstszym profilem Polaków nie jest programista. To współczesny człowiek renesansu.

quantum-co-potrafisz

Dlaczego banki powinny już dziś budować kompetencje quantum-ready?

Dla banków oznacza to jedno: dziś kluczowe staje się zbudowanie quantum readiness, gotowości organizacyjnej, kompetencyjnej i technologicznej do świadomego podejmowania decyzji, gdzie quantum ma realny sens biznesowy i bycia gotowym na wdrożenia rozwiązań opartych o technologie kwantowe. W najprostszym ujęciu quantum computing to nowy sposób przetwarzania informacji, oparty nie na klasycznych bitach (0 albo 1), lecz na zjawiskach fizyki kwantowej. Dzięki temu komputery kwantowe mogą w wybranych klasach problemów analizować Dlaczego banki powinny już dziś budować kompetencje quantum-ready?

future-collars_nagroda-soda_3

Women in IT Day 2025 z pierwszą nagrodą SoDA Awards: kiedy konferencja staje się momentem zmiany dla tysięcy kobiet w technologii

Women in IT Day to organizowane od siedmiu lat przez Future Collars – szkołę kompetencji cyfrowych – międzynarodowe wydarzenie wspierające rozwój kobiet w technologiach i ich wejście na rynek pracy w IT.   SoDA Awards – nagroda od branży dla projektów zmieniających rzeczywistość SoDA (Software Development Association Poland) to ogólnopolska organizacja zrzeszająca ponad 200 firm technologicznych, software house’y i organizacje tworzące rozwiązania IT dla klientów z Polski Women in IT Day 2025 z pierwszą nagrodą SoDA Awards: kiedy konferencja staje się momentem zmiany dla tysięcy kobiet w technologii

Our suspicious is lying. Polygraph examiner works in the office with his detectors equipment.

Czy analityk danych to zawód dla Ciebie? Jak wygląda praca, jakie są wymagania i jak zacząć

OBEJRZYJ: Czy Analityk Danych to zawód dla Ciebie?   Czy to jest moment na zmianę? Jeśli zastanawiasz się nad wejściem do IT, bardzo możliwe, że temat analityki danych pojawił się u Ciebie już nie raz. I trudno się dziwić. Dane są dziś wszędzie, w bankowości, e-commerce, marketingu, medycynie czy logistyce. Firmy zbierają ich ogromne ilości, ale same dane niczego jeszcze nie rozwiązują. Kluczowe jest to, co jesteśmy w stanie z nich wyciągnąć. Tu właśnie pojawia Czy analityk danych to zawód dla Ciebie? Jak wygląda praca, jakie są wymagania i jak zacząć