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
Jak Zdobyc Specjalistow Cybersecurity

Jak zdobyć specjalistów Cybersecurity i ograniczyć koszty rekrutacji?

Cybersecurity — paląca potrzeba biznesu Według prognoz rynek cybersecurity wzrośnie z poziomu 240.27 mld USD w 2022 roku do 345.38 USD w 2026 roku (Markets&Markets). Przyczyny skoku rozwojowego to:  wzrost częstotliwości i wyrafinowania cyberataków rosnący popyt na rozproszone usługi cyberbezpieczeństwa coraz większa świadomość w zakresie cyberbezpieczeństwa.  W tej chwili już każda firma ma szkolenia i procedury związane z cyberbezpieczeństwem. Pracownicy są instruowani, jak zachować się na wypadek ataku, prób wyłudzania Jak zdobyć specjalistów Cybersecurity i ograniczyć koszty rekrutacji?

Cybersecurity

Praca specjalisty Cybersecurity w pigułce

Czym jest Cybersecurity?    Cybersecurity jest to obszar branży IT związany stricte z bezpieczeństwem, a dokładnie z zapewnieniem bezpieczeństwa w sieci.  Nie jest sekretem, że technologia IT weszła już do naszego życia. Wiele aspektów naszego życia codziennego, ale również działalności firm stało się cyfrowe. Co za tym idzie, zagrożenia związane z cyberprzestępczością jedynie rosną. Cybersecurity wychodzi naprzeciw potrzebom, które mają firmy, jak i osoby prywatne, aby chronić się Praca specjalisty Cybersecurity w pigułce

Ux Hybrydowy

Kurs UX Designer Hybrydowy- ucz się, gdzie i kiedy chcesz!

Czym jest UX i czym zajmuje się UX Designer?  Zacznijmy od podstaw, czyli co to dokładnie jest UX. Z języka angielskiego User Experience to inaczej doświadczenie użytkownika, czyli jakie wrażenia odczuwa użytkownik odwiedzając stronę internetową, bądź aplikację.  Osoba zajmująca się UX-em, a dokładnie UX Designer sprawuje pieczę nad tworzeniem aplikacji i serwisów internetowych w taki sposób, aby doznania użytkownika były na najwyższym poziomie. Podczas projektowania stron Kurs UX Designer Hybrydowy- ucz się, gdzie i kiedy chcesz!

Reskilling

Program “Reskilling Ukrainian Women to Tech and IT Jobs”

17 sierpnia wystartował kompleksowy program wsparcia zawodowego dla Ukrainek, które w wyniku wojny znalazły się w trudnej sytuacji życiowej i zawodowej.  Jego głównym celem jest zdobycie przez uczestniczki podstaw analityki biznesowej i modelowania danych, a tym samym przygotowanie ich do podjęcia pracy na stanowisku Analityczki Danych / BI Developerki. W ramach programu beneficjentki wezmą udział w bezpłatnym 12-tygodniowym kursie online Business Intelligence w języku angielskim, otrzymają wsparcie Program “Reskilling Ukrainian Women to Tech and IT Jobs”

Scrum Master Dlaczego Warto

Scrum Master – dlaczego warto?

Scrum – co to jest?  Scrum jest narzędziem, które pomaga zespołom rozwiązywać problemy, aby dostarczyć produkty najwyższej jakości. Metodyka Scrum to inaczej ramy postępowania, dzięki którym realizuje się pracę zespołu. Narzędzia wykorzystywane w tym sposobie pracy i zasady, na których opiera się Scrum pozwalają na pełne wykorzystanie potencjału zespołu i zwiększenie organizacji i kontroli pracy zespołu scrumowego. Model Scrum jest często stosowany w firmach, które chcą usystematyzować Scrum Master – dlaczego warto?

GO4IT

Izabela Wilczyńska, Maja Malinowska i Robert Dziekański w rozmowie z dr. Maciejem Kaweckim opowiadają o swoim przebranżowieniu

W cyklu rozmów GO4IT dr Maciej Kawecki rozmawia z osobami, które z sukcesem przebranżowiły się i podęły pracę w branży IT. Wśród gości programu byli absolwenci kursów Future Collars — Izabela Wilczyńska, Maja Malinowska i Robert Dziekański. Iza, Maja i Robert, wcześniej niezwiązani z obszarem technologii, po bootcampach znaleźli wymarzoną pracę i rozwijają karierę w IT. Poznaj ich historie i zainspiruj się. Izabela Wilczyńska, Campaign Manager & Growth Analyst, Izabela Wilczyńska, Maja Malinowska i Robert Dziekański w rozmowie z dr. Maciejem Kaweckim opowiadają o swoim przebranżowieniu