İyi uyku, iyi kodlama, iyi yazılım

Bir yazılımcı için kafein ne anlama gelir?

Uzun saatler boyunca kod yazmamızı sağlayan en önemli yakıtımız dersek heralde kimsenin buna bir itirazı olmaz.

Peki bu önemli yakıtı nasıl sağlarız?

Enerji içecekleri ve kahvelerden…

Onlar biz yazılımcıların çalışma masalarımız üzerinden hiç eksik etmediğimiz ve programlama yolculuğumuz boyunca bizleri hiç yalnız bırakmayan yol arkadaşlarımız. Daha iyi bir programcı olabilmek için ihtiyacımız olan itici gücü onların yardımıyla buluruz.

Değil mi?

Dilerseniz hepinizin yakından tanıyacağı,  okurken “aynı ben” diyebileceğiniz klasik bir yazılımcı hikayesi ile başlayalım.


Teslim tarihi yaklaşıyor…

Ve sen hala planlanan programın gerisindesin. Sana atanan tüm taskları bitirebilmen için daha fazla zamana ihtiyacın var. Daha fazla kod yazman tek çözüm gibi görünüyor. Bunu başaribilmen için geceleri bile uyanık olmalısın. Uykunu programlama için feda etmekten başka bir çaren yok. Eğer daha fazla zaman bulabilirsen, daha iyi bir iş çıkaracağına ve son teslim tarihini kaçırmadan projeni bitirebileceğine inanıyorsun.

11:30 P.M

Biraz uykun var. Bedenin sana uyuman gerektiğini fısıldıyor fakat sen uyanık kalmalısın. En önemli yakıtın olan kafeine tam da şuanda ihtiyaç duyuyorsun. Bir bardak kahve içiyorsun… Ohh, şimdi kendini çok daha iyi hissediyorsun. Kafein sana daha fazla kod yazabilmen için fazladan iki saat daha kazandırdı (uykunu feda etmen karşılığında tabi).

Düzeltmen gereken 10 yazılım hatası daha var. Dakikalar ilerledikçe yakıtın(kafein) yine tükeniyor… Hadi bir bardak daha kahve, yok yok bir enerji içeceği iç, böylece kodlamaya devam edebilirsin.

Saat gece yarısını çoktan geçti ve sen sonunda tüm tasklarını bitirip kodunu comitledin. Rahatlamış hissediyorsun. Verimliydin ve çok iyi bir iş çıkardın. Sana atanan tüm taskları tamamladın. Bonus olarak, takımındaki diğer arkadaşlarının seni çok çalışkan ve verimli bir programcı olarak gördüklerine inanıyorsun. Harika bir programcısın! Sabahın erken saatlerinde bile, kod commitledin.

8:00 A.M.

Telefonun çalıyor. Arayan takım arkadaşın. Gece yarısı gönderdiğin kodlardan sonra yazılımda yeni hatalar ortaya çıktığını söylüyor. Bu nasıl mümkün olabilir? Düzeltmen gereken sadece 10 hata vardı ve sen hepsini düzelttin. Hatta onları düzeltebilmen için gece geç saatlere kadar uyanık kaldın. Peki şimdi neden yeni hatalar ortaya çıktı? Herşeyi planına uygun olarak yapmana rağmen yanlış giden neydi? Sen tıpkı Hollywood filmlerinde gösterilen yazılımcılar gibiydin. Kahve, enerji içecikleri, sabahlayan programcılar…


Her şeyi doğru yaptın. Peki yanlış olan ne?


İzin ver sana neyin yanlış gittiğini söyleyeyim.

Hollywood filmlerindeki hayali programcılar tarafından yanlış yönlendirildin. Kariyerin boyunca yanlış birşeye inandın: Ne kadar çok uyanık kalırsan, o kadar çok kod yazarsın. Ne kadar çok kod yazarsan, o kadar verimli olursun. Uyku; çalışkan ve üst düzey verimli bir progamcı olabilmen için feda edebileceğin şeylerden sadece bir tanesiydi.

Tamam ama, peki ya sağlığın? Ya daha verimli olabilmek için seni daha iyi bir programcı yapacak başka bir yöntem varsa?

Uyku programlama performansını doğrudan etkiliyor

Senin için harika haberlerim var!

Bilim adamları senin daha uzun yaşamanı sağlayacak devrim niteliğinde yeni bir tedavi keşfettiler. Seni sağlıklı yapan ve hafızanı arttıran sihirli bir değnek… Seni daha üretken ve daha yaratıcı yapıyor. Sonunda da, daha iyi bir programcı…

İlgini çekti mi?

Kulağa abartılı gibi gelse de, bu hayali reklam ile ilgili hiçbirşey yanlış değil. Eğer bu yeni bir ilaç olsaydı, insanlar bunu sorgulamadan kucaklarlardı. Bunu kabul eden insanlar küçücük bir doz için bile hiç düşünmeden yüklü miktarlar da para ödeyebilirlerdi. Tabi ki, bu “reklam” mucizevi birşeyi veya her derde deva olan bir ilacdan bahsetmiyor. Tam aksine kaliteli bir gece uykusunun faydalarını ve ne kadar önemli olduğundan bahsediyor.

Bu iddiaları destekleyen kanıtlar, bugüne kadar 17.000’den fazla detaylı bir şekilde incelenen bilimsel raporla belgelenmiş. Reçete maliyetine gelince, tek bir kuruş bile ödemek zorunda değilsin. Bedava! Yine de çoğu zaman, tek bir doz uykuyu hayatındaki diğer geçici zevkler veya çok da önemli olmayan amaçlar uğruna feda edebiliyorsun.

Evet arkadaşım. Doğru cevap, başından beri önündeydi — ya da daha doğrusu, yatağındaydı. Daha önce bahsettiğim gibi, uyku hafızanı güçlendirir. Beynini yeni şeyler öğrenmeye hazırlar. Deneyler, uyku yoksunluğunun öğrenme yeteneğini etkilediğini göstermektedir. Ne kadar az uyursan, hafızan o kadar zayıflar. 16 saat uyanık kaldıktan sonra beynin karar mekanizmalarında zayıflamalar başlar ve bu da seni başarısızlığa götürecek yanlış kararlar vermene neden olur. Eğer gün içerisinde daha aktif bir rol oynamak istiyorsan, her gün 7–8 saat uyumalısın.

Bilimsel araştırmalar ne diyor?

Araştırmalara göre uyku kaliten ve stres düzeyin, takip ettiğin en iyi programlama pratiklerinden çok daha önemli. Ne temiz kod yazma kuralları, ne programlama dili seçimleri, ne de Test-Driven Development, bunlardan hiçbiri kaliteli bir yazılım geliştirmede veya seni daha iyi bir programcı yapma konusunda sağlam kanıtlar sunmuyor.

Fakat uykunun bir yazılımcının programlama hayatına katacağı olumlu faydalar konusunda kanıtlar çok fazla.

Örneğin, uykunun acemi programcıların performanları üzerine etkileri konusunda yapılan bu bilimsel çalışamaya bir göz atın.

Araştırmacılar 45 lisans öğrencisini denek olarak ele aldılar ve bir programlama görevini yapmalarını istediler. Katılımcılar arasında 23’u önceki gece uyanık kalırken, 22’sı normal bir gece uykusu aldılar. İşte sonuçlar:

Bir gecelik bir uyku yoksunluğu yazılımcılar üzerinde zarar verici etkilere sahip. Özellikle, uykudan mahrum bırakılmış yazılımcılar daha düşük kaliteli yazılımlar üretiyorlar.

Başka bir çalışma, 7 saatten daha az uyku almanın tüm bilişsel performans ölçütlerinde dramatik bir bozulmaya neden olduğunu gösteriyor.
Peki ya fazla çalışma saatleri? Seni daha üretken yapacağını düşündüğün uykusuz geceleri hatırlıyor musun?

Haftada 50 saat ve üzerin de çalışan bir kişi, 8–10 haftanın ardından haftada 40 saat çalışan bir kişiye göre çok daha az verimli bir performans sergiliyor.

Daha fazla kanıt ister misin? “Why we sleep” isimli kitabı okumanı şiddetle tavsiye ederim. Bu kitap uyku hakkında birçok bilimsel gerçeği okuyucularına sunuyor ve benim de bu makaleyi yazma da ilham kaynağım oldu.

Hiçbir programlama dili, aracı, tekniği veya yöntemi, kendi zihinlerimizin sağlık durumu kadar önemli değil. Daha iyi bir programcı olmak istiyorsak, iyi kod yazmak istiyorsak, öncelikle insan olmalıyız. Sağlıklı olmalıyız. Başka hiçbir şey sağlıklı bir beynin bize katacaklarının yanına yaklaşamıyor.