Yazılıma ve sistem yönetimine ilk başladığım heyecanlı yıllarda, bir problemle veya karmaşık bir hatayla (bug) karşılaştığımda onu çözmenin tek bir yolu olduğunu sanırdım: Ekrana daha sert, daha odaklanmış ve çok daha uzun süre bakmak.

Bazen bir veritabanı optimizasyon sorunu, bazen de içinden çıkılmaz hale gelen asenkron bir JavaScript hatası için masadan saatlerce hiç kalkmadan, su bile içmeden aralıksız kod yazdığım olurdu. Ekrana o kadar uzun süre bakardım ki artık kod satırları birbirine girmeye başlardı. Ve genelde ne olurdu biliyor musunuz? O 5 saatin sonunda yazdığım karmaşık spagetti kodu, ertesi sabah uyandığımda tamamen siler ve 10 dakikada çok daha sade bir şekilde baştan yazardım.

Zamanla, kariyerim ilerleyip Suku Tech gibi büyük projelerin mimarisini kurmaya başladıkça çok garip, neredeyse sihirli bir örüntü fark ettim.

Ne zaman masadan kalkıp kendime bir kahve yapmaya gitsem, ne zaman sıcak bir duşa girsem veya bilgisayarı tamamen kapatıp dışarıda hiçbir şey düşünmeden boş boş yürüyüşe çıksam... O bilgisayar başında saatlerce kan ter içinde kalarak çözemediğim problemin cevabı aniden, saniyeler içinde zihnimde beliriveriyordu. "Aha!" anı dedikleri bu olsa gerekti.

Bunun aslında nörobilimde (sinirbilim) çok net bir bilimsel açıklaması var. Biz ekrana bakıp bir bug'ı çözmeye odaklandığımızda beynimiz "Odaklanmış Düşünme" (Focused Mode) denilen analitik, dar bir çerçeveye geçer. Bu mod, detayları görmek ve basit mantık hatalarını bulmak için harikadır. Oysa sistem mimarisi tasarlamak, soyut düşünmek veya karmaşık algoritmik problemleri çözmek "Dağınık Düşünme" (Diffuse Mode) dediğimiz geniş açılı, yaratıcı bir zihin yapısı gerektirir. Siz bilgisayar başından kalkıp beyninizi rahatlattığınızda, aslında arka planda beyniniz o sorunu işlemeye (background processing) devam eder. Tıpkı bir sunucunun, siz ekrana bakmasanız bile arka planda logları okuyup veritabanını indekslemesi (cron jobs) gibi.

Artık bir kod bloğunda veya mimari bir kararda takıldığımda, kendimi masaya zincirleyip zorlamıyorum. 15-20 dakika içinde çözemiyorsam, bir şeylerin yanlış olduğunu kabul ediyor ve ekranı kapatıyorum. Çıkıp yürüyorum. Kulaklığımı takıp alakasız bir müzik dinliyor ya da sadece duvarı izliyorum.

Çünkü kod yazmanın aslında "hızlıca klavye tuşlarına basmak" değil, bütünüyle "düşünmek, tasarlamak ve sistem mühendisliği yapmak" olduğunu çok net bir şekilde anladım. Bugün, beş yıl öncesine kıyasla klavye başında geçirdiğim zaman çok daha az. Eskisinden çok daha az satır kod yazıyorum, kütüphaneleri daha az kullanıyorum. Ancak kurduğum sistemler eskisinden yüzlerce kat daha hızlı, daha güvenli ve daha ölçeklenebilir.

Çünkü asıl mimari, o karanlık kod editöründe parmaklarınızla değil; siz pencereden dışarı bakıp kahvenizi yudumlarken, zihninizin derinliklerinde inşa ediliyor. Eğer daha iyi bir yazılımcı olmak istiyorsanız, ellerinizi klavyeden çekin ve düşünmeye başlayın.