Plastik ördeğin yazılımcının hayatındaki yeri ve önemi

Yazılımda hata ayıklamanın onlarca yolu var. Gelin özellikle mesleğe yeni başlandığında kendiliğinden keşfedilen ama adı pek bilinmeyen bir yöntem olan Rubber duck debuggering’i tanıyalım.

Safa Gayret
2 min readApr 24, 2023

Bir geliştirme yaparken genellikle her şeyin doğru gittiğine inanır ve büyük bir özgüvenle yazdığımız satırların çalışmasını bekleriz. Ama yazdığımız kodlar her zaman ilk seferde çalışmayabilir. Daha kötüsü anlaşılır bir hata mesajıyla da karşılaşmayabiliriz. Bu sinir bozucu durumdan kurtulmak için kodumuzu defalarca okuruz, küçük düzeltmeler yaparız ve “Artık çalışır” deriz, ama yine çalışmaz :) Özellikle mesleğe yeni başlandığında, kendini kanıtlama baskısı altında yepyeni evrenlere paldır küldür dalındığında çok sık yaşanır bu.

“Çalışmaması için hiçbir neden yok!?”

Çaresiz bir şekilde üstünkörü kodu inceleyip tekrar çalıştırmayı deneriz, deneriz, deneriz. “Ooooff! çalışmıyor anasını satim. Babamın kendi küçük çiftliğimizi kuralım, toprakla doğayla iç içe olalım teklifi o kadar da kötü değildi ya, başlarım teknolojiye!” :) Tüm bu öfke patlamaları içerisinde paşa paşa gidip şirketteki tecrübeli birine danışılır.

Junior: Senior Hanım veya Bey, bir sorun var ama aslında yok, çalışması lazım ama çalışmıyor.

Senior: Tamam, hadi beraber bakalım

Junior’un masasına geçilir. Junior arkadaş ilgili kodu açar, o kodların ne yapması gerektiğini satır satır anlatır. Bu anlatım sırasında Senior sadece arada bir başını sallar ve Junior’un anlatmaya devam etmesini sağlayacak şeyler söyler.

https://en.wikipedia.org/wiki/Rubber_duck_debugging

Junior büyük bir heyecan ve küçücük öfkeyle farkında olmadan debugging yapıyordur. Anlatır, anlatır, anlatır sonunda kendi kendine hatasını bulur.

Junior: Aaa çok basit bir hata yapmışım, x değişkenine bu scope’da erişemem ki…

Senior, hatayı bulmaya yönelik hiçbir ipucu vermemiştir veya yönlendirmemiştir. Junior anlatırken kendi kendine hatasını bulur.

Bu senaryoyu hem Junior iken hem de şimdilerde, bazen anlatan bazen dinleyen tarafta tekrar tekrar deneyimliyorum :) Senaryodaki işlevsiz Senior’u plastik sarı bir ördekle değiştirdiğimizi hayal edelim. “Bak ördek kardeş, bu satırda şunun gerçekleşmesini bekliyorum, sonraki satırda ise şunun gerçekleşmesini bekliyorum…”

Bu yolu izleyerek, bazen sesli bazen sessizce çözüme ulaşabiliyoruz. İşte bu yolun adı “Rubber duck debuggering”

Ördeğinizi yanınızdan ayırmayın :)

--

--