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ą?

W 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
Fundusz Druga Edycja

Wyłoniliśmy 12 stypendystów drugiej edycji funduszu Różnorodność w IT

Wybór osób, które otrzymają stypendium, wiązał się dla nas z trudnymi decyzjami. Za każdą aplikacją stała przejmująca historia i osoba, którą chcielibyśmy wesprzeć. Dziękujemy za wszystkie zgłoszenia i zapraszamy do udziału w przyszłej, trzeciej już edycji funduszu.  Wyłonieni stypendyści będą mogli wybrać następujące bootcampy: Product Owner, Frontend Developer, UX Designer i Python Developer oferowane przez Future Collars. Dzięki finansowemu zaangażowaniu partnerów funduszu – Wyłoniliśmy 12 stypendystów drugiej edycji funduszu Różnorodność w IT

Rynek pracy w cybersecurity: specjalizacje, ścieżka kariery i zarobki

Rynek pracy w cybersecurity: specjalizacje, ścieżka kariery i zarobki

Co to jest cyberbezpieczeństwo?   Cyberbezpieczeństwo to są wszelkie techniki, procesy, metody i narzędzia służące ochronie przed atakami w cyberprzestrzeni. Pracownicy w obszarze cybersecurity projektują, wdrażają i monitorują procedury związane z blokowaniem nieautoryzowanego dostępu lub reagują na wszystkie naruszenia w sieci. Podobnie jak pozostałe gałęzie IT, bezpieczeństwo sieci ma wiele specjalizacji, a tym samym oferuje szeroki wybór ścieżek rozwoju dla każdego, kto zdecyduje się na wejście w świat cybersecurity. Choć rozeznanie Rynek pracy w cybersecurity: specjalizacje, ścieżka kariery i zarobki

Bizneswoman Roku

Beata Jarosz i Joanna Pruszyńska-Witkowska zostały laureatkami XIII edycji konkursu Bizneswoman Roku w kategorii „Przeciwdziałanie wykluczeniu cyfrowemu”

To ogromne wyróżnienie i zaszczyt, że zaangażowanie Beaty i Joanny na rzecz poprawy sytuacji zawodowej kobiet i osób pochodzących ze środowisk marginalizowanych, zostało docenione przez Jury konkursu i znalazły się w tak wspaniałym gronie laureatek! W ciągu 5 lat istnienia na rynku, skutecznie przeszkoliliśmy 3300 absolwentów. Powiększył się też nasz zespół i grono mentorów. Obecnie na naszej innowacyjnej platformie edukacyjnej, uczy się 250 kursantów i kursantek w różnym wieku i z różnorodnym doświadczeniem zawodowym. Beata Jarosz i Joanna Pruszyńska-Witkowska zostały laureatkami XIII edycji konkursu Bizneswoman Roku w kategorii „Przeciwdziałanie wykluczeniu cyfrowemu”

Maja Rekutacj

Oswajamy rekrutację – czyli jak dostać swoją pierwszą pracę na stanowisku juniorskim?

Cześć! Tu znowu Majka. Dziś przychodzę do Was z porcją wskazówek, które mam nadzieję pomogą Wam dostać pierwszą wymarzoną pracę na stanowisku Tester Junior, ale i nie tylko. Na wstępie nieskromnie powiem, że już nie jedna osoba skorzystała z tych tipów i pracę dostała i nie byli to tylko testerzy. Jeśli masz ochotę poczytać „recenzje” tych osób, to wszystkie znajdziesz na moim profilu. Natomiast historie absolwentów Future Collars przeczytasz tutaj. Tyle tytułem wstępu i zapraszam do konkretów! Oswajamy rekrutację – czyli jak dostać swoją pierwszą pracę na stanowisku juniorskim?

Cybersecurity 1

Firma, która nie dba o cyberbezpieczeństwo, naraża się na ogromne straty

Firmy, które padają atakiem cyberprzestępców, muszą liczyć się z ogromnymi wydatkami i stratami. Jak podaje organizacja Plain Concepts koszt, jaki firmy na całym świecie ponoszą za cyberprzestępczość, wynosi 1,79 mln dol. na minutę. Ataki ransomware w 2021 r., kosztowały polskie przedsiębiorstwa średnio 7,6 mln zł. To o ponad 6 mln zł więcej w porównaniu z zeszłym rokiem. Skala cyberprzestępczości ciągle rośnie. Szacuje się, że zyski pochodzące Firma, która nie dba o cyberbezpieczeństwo, naraża się na ogromne straty

Cybersecurity Dlaczego Warto Zainteresować Się Pracą W Tym Obszarze

Cybersecurity — dlaczego warto zainteresować się pracą w tym obszarze?

Cybersecurity — moda czy realna potrzeba? Rynek cybersecurity rozwija się dynamicznie i będzie wzrastać. Wynika to z tego, że ostatnie dwa lata spowodowały przyspieszenie gospodarki cyfrowej, a organizacje, które przed 2020 roku opierały się cyfryzacji, musiały w przyspieszonym trybie przejść do świata online. Główna wartość firm — dane — znajdują się w przestrzeni cyfrowej, a ta nie jest chroniona wystarczająco. W 2020 roku aż 87% organizacji miało do czynienia z próbami cyberataku (dane Check Point Cybersecurity — dlaczego warto zainteresować się pracą w tym obszarze?