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
Premiera pierwszego w Polsce poradnika o reskillingu i upskillingu

Premiera pierwszego w Polsce poradnika o reskillingu i upskillingu – „Upskilling Reskilling. Czas na przyspieszenie”

„Upskilling Reskilling. Czas na przyspieszenie” to pionierskie opracowanie, które jako pierwsze kompleksowo ujmuje zagadnienia wypełnienia luki kompetencyjnej w firmach i analizuje wyzwania polskiego rynku pracy związane z brakiem specjalistów IT. Powstała na bazie wniosków z raportu „Wielki reset umiejętności” oraz warsztatów z radą programową ds. reskillingu prowadzonych przez Tinę Sobocińską. POBIERZ EBOOK: https://futurecollars.com/raport-upskilling-reskilling-czas-na-przyspieszenie/ https://reskilling.pl/raporty/   O ebooku „Upskilling Reskilling. Czas na przyspieszenie” Twórcy poradnika, zdając sobie sprawę z przełomowego Premiera pierwszego w Polsce poradnika o reskillingu i upskillingu – „Upskilling Reskilling. Czas na przyspieszenie”

Future Collars i Amazon: razem na trzech nowych rynkach

Future Collars i Amazon: razem na trzech nowych rynkach

– Nie zwalniamy tempa! Po wejściu na Bliski Wschód i nawiązaniu współpracy ze Zjednoczonymi Emiratami Arabskimi rozszerzamy działalność o kolejne kierunki ekspansji. Czechy, Słowacja i Irlandia, a dokładnie uprawieni pracownicy Amazon w tych krajach, wezmą udział w naszych dedykowanych kursach – komentuje Beata Jarosz, CEO Future Collars. Future Collars od kilku lat jest aktywnym partnerem programu Amazon Career Choice, który umożliwia pracownikom podnoszenie kwalifikacji do ról zarówno w firmie Future Collars i Amazon: razem na trzech nowych rynkach

Future Collars i Amazon Web Services łączą siły

Future Collars i Amazon Web Services łączą siły, aby zainspirować polską młodzież do rozpoczęcia kariery w sektorze IT

Szkoła kompetencji cyfrowych Future Collars rozpoczyna współpracę z programem Amazon Web Services (AWS) GetIT. Inicjatywa ta ma na celu zaznajomienie uczniów w Polsce, w wieku 12-14 lat – szczególnie dziewcząt oraz przedstawicieli społeczności niedostatecznie reprezentowanych – z umiejętnościami związanymi z chmurą obliczeniową. Projekt aspiruje do zainspirowania młodzieży do rozważenia kariery w branżach STEM (nauka, technologia, inżynieria, matematyka). Program AWS GetIT będzie realizowany przez cały rok szkolny 2023/2024, edukując Future Collars i Amazon Web Services łączą siły, aby zainspirować polską młodzież do rozpoczęcia kariery w sektorze IT

Maciej Paczuła

Refleksje Absolwenta: Nauka i rozwój nawet w trudnej sytuacji zdrowotnej

Co skłoniło Cię do zgłoszenia się na kurs w Future Collars w ramach Fundacji Ergo Hestia? I który kurs wybrałeś? To sama fundacja zgłosiła mnie bezpośrednio na kurs w Future Collars. Skorzystałem z doradztwa zawodowego w fundacji, gdzie zadeklarowałem, że chciałbym zostać Testerem. Dzięki temu przedstawiono mi kurs Tester Oprogramowania, który udało mi się pomyślnie zrealizować.   Jakie korzyści odniosłeś dzięki ukończeniu kursu? Czy pomogło Ci to w codziennej pracy lub w przebranżowieniu się? Ukończenie kursu Refleksje Absolwenta: Nauka i rozwój nawet w trudnej sytuacji zdrowotnej

Anna Niejełow

“Dostałam solidne podstawy, wiem także w jakim kierunku dalej się rozwijać, by być coraz lepszym Testerem” – rozmowa z Anną, absolwentką kursu Tester Oprogramowania

Co skłoniło Cię do zgłoszenia się na kurs w Future Collars? Który kurs wybrałaś i dlaczego? Po urodzeniu trzeciego dziecka wiedziałam, że muszę coś zmienić w swoim życiu zawodowym. O przebranżowieniu się do IT i zostaniu Testerem Oprogramowania myślałam już od pewnego czasu. Namawiał mnie do tego mój mąż oraz mój kolega, programista. Uważali, że poradzę sobie i że mam predyspozycje do tej pracy. Dlaczego akurat w Future Collars? Spodobała mi się agenda kursu, dostęp do kursu języka angielskiego w IT “Dostałam solidne podstawy, wiem także w jakim kierunku dalej się rozwijać, by być coraz lepszym Testerem” – rozmowa z Anną, absolwentką kursu Tester Oprogramowania

Moc Reskillingu Wykorzystanie korzyści biznesowych

Moc Reskillingu: Wykorzystanie korzyści biznesowych

W dzisiejszym zmieniającym się środowisku biznesowym, reskilling stał się bardzo ważnym pojęciem. Wiele firm na całym świecie ma trudności z znalezieniem pracowników posiadających nowe i niezbędne umiejętności np. specjalistów od cyfrowego bezpieczeństwa danych czy z innej branży specjalistów od Compliance. Dlatego coraz częściej sięgają po reskilling, czyli przekwalifikowanie swoich obecnych pracowników, co pozwala na odblokowanie ich potencjału i przynosi wiele korzyści biznesowych. Przedstawiam przykładową firmę o nazwie Innovatech Solutions, która pokazuje, Moc Reskillingu: Wykorzystanie korzyści biznesowych