- Bilişsel psikoloji araştırmalarına göre insanın derin çalışma (deep work) sınırı günde 3–4 saattir; bunun sonrasında odak ve kod kalitesi hızla düşer
- 250 binden fazla geliştiricinin analizine göre gerçek kodlama süresi medyanı günde yalnızca 52 dakika; kalan zaman toplantı, yönetim ve iş birliğine gider
- Tek bir kesintiden sonra asıl işe dönmek 23 dakika sürer; programcılar için tam bağlamı yeniden kurmak 30–45 dakika alır
- Akış durumu (flow state) içinde üretkenlik %500 artar, ancak buna girmek için 15–25 dakikalık kesintisiz odak gerekir
- Engineering manager rolü süreç eklemekten ziyade engel ve dikkat dağıtıcıları kaldırmaya, derin çalışma zamanını korumaya odaklanmalıdır
Bilişsel sınırlar: Derin çalışmanın üst sınırı günde 4 saat
- Cal Newport, derin çalışmayı "dikkat dağılmadan, bilişsel kapasitenin sınırına kadar zorlayan profesyonel faaliyet" olarak tanımlar ve çoğu insan için günlük ortalama üst sınırın 4 saat olduğunu söyler
- K. Anders Ericsson’un kemancılar üzerine yaptığı çalışmada da 4 saatlik yoğun pratikten sonra yorgunluk geldiği görüldü
- Yazılım geliştirme de yaratıcı problem çözme ve sistem tasarımı içeren yüksek yoğunluklu bilişsel iş olduğundan, 3–4 saatten sonra getiride azalma başlar
- Matematikçi Henri Poincaré sabah 2 saat, öğleden sonra 2 saat çalışıyordu; G.H. Hardy yalnızca sabahları çalıştı; Charles Darwin, B.F. Skinner ve C.S. Lewis de 3–4 saatlik çalışma düzenini sürdürdü
- UC Irvine’dan Gloria Mark’ın araştırmasına göre ortalama ekrana odaklanma süresi artık 47 saniye; bu süre 2004’teki 2,5 dakikadan ciddi biçimde düştü
Geliştiricilerin zamanı gerçekte nasıl kullandığı
- Software.com’un 250 binden fazla geliştirici analizi sonucunda, kodlama süresi medyanı günde 52 dakika (haftada yaklaşık 4 saat 21 dakika) çıktı
- Günde 2 saatten fazla kod yazan geliştiriciler yalnızca %10, 1 saatten fazla yazanlar ise %40
- Clockwise’ın 1,5 milyon toplantı analizine göre yazılım mühendislerinin haftalık toplantı süresi ortalama 10,9 saat
- Engineering manager’lar haftada 18 saatini toplantılarda geçiriyor; bu, 40 saatlik çalışma haftasının neredeyse yarısı
- Büyük ölçekli organizasyonlardaki geliştiriciler haftada 12,2 saat, küçük organizasyonlardakiler 9,7 saat toplantıya harcıyor
- Toplantı, yönetim, code review ve iş birliği çıkarıldığında haftalık odaklanılabilir süre 19,6 saat kalıyor; bunun da çoğu kullanılamayan kısa parçalara bölünmüş durumda
- Toplam kodlamanın %45’i öğleden sonra 14:00–17:00 arasında gerçekleşiyor; sabah 09:00–11:00 aralığı ise yalnızca %10
- Bunun nedeni geliştiricilerin doğal olarak gececi olması değil, sabahların stand-up, sync ve seremoniler tarafından işgal edilmesi
Kesintilerin yüksek maliyeti
- Gloria Mark’ın araştırmasına göre, bir kesintiden sonra asıl işe tam olarak geri dönmek 23 dakika 15 saniye sürüyor
- Georgia Institute of Technology araştırmasında programcıların kod düzenlemeye yeniden başlaması 10–15 dakika, tam zihinsel bağlamı yeniden inşa etmesi ise 30–45 dakika sürüyor
- Paul Graham’ın "maker schedule" makalesine göre toplantılar yalnızca görev değişimi değil, çalışma modunun kendisini değiştiren birer exception’dır
- Tek bir toplantı tüm öğleden sonrayı mahvedebilir; hatta öğleden sonra toplantı planlı olması bile sabah iddialı bir işe başlamayı caydırır
Akış durumu: Programcıların üretkenlik çarpanı
- Mihaly Csikszentmihalyi’nin araştırmasında akış durumu, "kişinin yaptığı etkinliğe bütünüyle dalıp benlik hissinin silikleştiği ve zaman algısını yitirdiği durum" olarak tanımlanır
- 10 yıllık araştırma sonucunda, akış durumunda normal duruma kıyasla üretkenliğin %500 arttığı görüldü
- Akışa girmenin anahtarı zorluk seviyesi ile beceri düzeyi arasındaki dengedir; fazla yüksek ya da fazla düşük zorluk akışı bozar
- Yazılım ekiplerinde akışı daha sık yaşayan ekipler, daha yüksek memnuniyetle daha hızlı ve daha fazla değer sunar
- Akış kendiliğinden oluşmaz; onu tüketen etkenlerden korunması şarttır
Kod yazarken akışa nasıl girilir
- Kesintisiz bir ortam yaratın: Slack’i kapatın, bildirimleri sessize alın, derin çalışma modunda olduğunuzu gösteren görünür durum işaretleri kullanın
- Bildirimlere yanıt vermeseniz bile onları yalnızca görmek bile odaklanmayı düşürür
- Kodlama oturumundan önce net hedef koyun: "backend işi" yerine "kimlik doğrulama endpoint’inin uygun hata yanıtı döndürmesini sağlayacak düzeltmeyi yapmak" gibi somut tanımlayın
- Zor problemleri bilişsel zirve saatlerinizde çözün: Sirkadiyen ritim araştırmalarına göre bilişsel performans günün saatine bağlı olarak %9–40 değişir
- Çoğu yetişkin için en iyi problem çözme zamanı sabah 10:00 ile öğleden sonra 14:00 arasıdır
- Sabahçı ("lark") ve gececi ("owl") kişilerde zirve saatleri farklı olduğundan, kişisel zirve zamanını korumak gerekir
- Maker schedule için time blocking uygulayın: Takvimde 2–4 saatlik derin çalışma bloklarını önceden ayırın; toplantıları gün sonuna veya belirli günlere toplayın
- Her çalışma bloğu için tek bir hedef belirleyin ve bunu uygulanabilir üç göreve bölün
- Context switching’i ortadan kaldırın: Anında yanıt yerine günde iki kez iletişim pencereleri belirleyin, mevcut işle ilgisi olmayan tarayıcı sekmelerini kapatın
- Maraton sprintleri değil, yoğun odak seanslarıyla çalışın: 25 dakikalık Pomodoro, karmaşık geliştirme işleri için uygun değildir; çünkü akışa girmek üzereyken zamanlayıcı tarafından kesilir
- Amaç en uzun süre değil, bilişsel kapasite sınırları içinde en yüksek kaliteyi üretmektir
- Düşünme ve öğrenmenin bileşik etkisi: Ericsson’un deliberate practice araştırmasına göre uzmanlığı yaratan şey çalışma süresi değil, yansıtıcı düşünmedir
Cal Newport’un 4 derin çalışma stratejisi
- Monastic strateji: Yüzeysel işleri tamamen ortadan kaldırmak
- Donald Knuth’un 1990’da e-postayı tamamen bırakması bunun tipik örneği
- Bimodal strateji: Haftayı derin çalışma günleri ve yüzeysel iş günleri olarak ayırmak
- Örneğin: Pazartesi–Çarşamba ulaşılamaz olmak, Perşembe–Cuma toplantı ve e-posta işleri yapmak
- Rhythmic strateji: Her gün aynı saatte, istisnasız derin çalışma yapmak
- Jerry Seinfeld’in "zinciri kırma" yaklaşımı
- Journalistic strateji: Ne zaman boşluk bulunursa anında derin çalışmaya girmek
- 30–45 dakikalık aralıklarda da kullanılabilir, ancak pratikte context switching’i derin çalışmayla karıştırma riski vardır
- Çoğu geliştirici için en etkili yaklaşım rhythmic stratejidir; Slack’in tepkisel cazibesine kapılmadan sabahı kodlamaya ayırmak kilit noktadır
Engineering manager’ların neden bunu önemsemesi gerekir
- Geliştiricilerin gerçek günlük kodlama süresi 52 dakikayken, tek bir kesinti 23 dakikadan fazla toparlanma süresi yediği için tek bir mesaj günlük kodlama bütçesinin neredeyse yarısını tüketir
- TechSmith deneyi: Toplantılar tamamen kaldırıldığında algılanan üretkenlik %15 arttı; çalışanların %85’i toplantıları asenkron iletişimle değiştireceğini söyledi
- Microsoft’un 31.000 kişilik anketinde verimsiz toplantılar, iş yeri üretkenliğini bozan 1 numaralı etken oldu
- Yöneticiler için öneriler:
- Kesintisiz sabah saatleri yaratın
- No meeting day uygulaması başlatın (örneğin Çarşamba)
- Varsayılanı senkron yerine asenkron iletişim yapın
- Yaratıcı keşfe alan tanıyan gerçekçi teslim tarihleri belirleyin
- Etkiyi ölçmek için metrikler: cycle time azalması, ekip memnuniyeti, katılım puanları, bug oranı ve rework oranı gibi kalite metrikleri
Sonuç
- Günde 3–4 saatlik derin programlama, alışkanlık meselesi değil bilişsel yükün fiziksel sınırıdır
- Bildirimleri kapatmak, ekibe öğleden sonra yanıt verileceğini duyurmak, haftada iki sabah toplantısız kalmak için pazarlık yapmak gibi kontrol edilebilir unsurları optimize etmek esastır
- 8 saatlik "yarı odak" yerine 4 saatlik derin çalışma her zaman daha iyi sonuç üretir
- Her gün birkaç saat akış durumuna girebilmek; yüksek kaliteli kod, daha düşük bug riski, yenilikçi çözümler ve iş-yaşam dengesi iyileşmesi sağlar
- Kod yazanlar sprinter değil, maraton koşucusudur; enerjilerini korumaları gerekir
AI kodlama asistanlarına dair not
- Copilot, Cursor, Claude gibi araçlar derin çalışma süresini uzatmaz; yalnızca odağın yönünü değiştirir
- Kodu sıfırdan yazmak yerine AI çıktısını gözden geçirmek de aynı bağlamı, muhakemeyi ve odağı gerektirir
- 3–4 saat sınırı yazma hızının değil, beynin yüksek kaliteli karar vermeyi sürdürebilme sınırının sonucu olduğu için, kodun daha hızlı görünmesi bunu değiştirmez
- AI’nin gerçekten yardımcı olduğu alan yüzeysel saatlerdir (shallow hours): doküman taslağı hazırlama, boilerplate üretme, kütüphane kullanımını sorma gibi işler
- Bu işleri AI’ye devrederseniz derin çalışma bütçesini mimari düşünme ve karmaşık problem çözme için koruyabilirsiniz
- Tehlike, AI kullanarak zihinsel olarak işleyebileceğinizden fazla kod üretmektir
- Amaç gün içinde daha fazla satır kod yazmak değil, sınırlı bilişsel kaynakları en önemli kararlara odaklamaktır
13 yorum
Karşılaştırma grubunun kendisi yanlış.
K. Anders Ericsson'un kemancı araştırması, ustalaşmış insanları değil pratiği temel alarak yapılmış bir araştırma. Enstrümanlarda bir parçayı kusursuz biçimde çalışsanız bile kusursuz icra her zaman garanti değildir (her performansta istisnalar vardır). Buna karşılık geliştirme tarafında ihtiyaç nettir ve tamamlandıktan sonra her zaman aynı sonucu üretir. Sonu olan bir şeyi aralıksız yapmakla sonu olmayan bir şeyi aralıksız yapmak arasında çok büyük fark var. Bu nedenle insanın bilişsel kapasitesini ortalama 3-4 saat diye belirlemenin kendisi de sorunlu; ayrıca başkasının talimatıyla 3-4 saat geliştirme yapmakla gönüllü olarak 3-4 saat geliştirme yapmak arasında da başka bir fark ortaya çıkar. Bu yazı, her şeyi genelleyip 3-4 saatin insan bilişsel kapasitesinin sınırı olduğu fikrine kulağa makul gelecek şekilde ikna etmeye çalışan bir yazı gibi hissettiriyor. Onların odaklanma süresi 3-4 saat diye herkesin odaklanma süresi 3-4 saat olmak zorunda değil. Hatta daha çok, sınırı baştan koyup "hadi 3-4 saat çalışalım" diye uzlaşmaya çağıran bir yazı gibi görünüyor.
Kesinlikle doğru~! Gerçekten işini çok iyi yapan pek çok insan var.
Kariyerinizdeki en yüksek odaklanma performansınızı alıp “ben böyle biriyim” diye kendinizi tanımlamamanız gerektiğini düşünüyorum. Bu yazı,
deep workü ideal çalışma durumu olarak koyup oraya girmek için gereğinden fazla çabalıyor. Elbette ilginç bir problem çözme fikri ve deneme yönü görüldüğündedeep workortaya çıkar ve verim artar. Ama bunlar görünmüyorken “aslında beynim bundan daha dahiyane” diye inanıp sürekli memnuniyetsizlikle yaşarsanız, sonuçta kendinizinflowdurumuna girme olasılığını çok daha fazla azaltırsınız. Metabiliş ne kadar zayıfsa, beynimin bana ait olduğu için tamamen benim eserim olduğunu düşünmek o kadar kolaydır; ama o beyin kondisyonunu asla tek başınıza oluşturmazsınız. O odaklanmanın ortaya çıkmasına kadar çevreden alınan yardımı kabul etmek gerekir (sadece sizi rahat bırakmaları ya da para vermeleri değil; çeşitli uyaranlar vermeleri ve bunların bir noktada tek bir yönde incelikle birleştiği bir olayın yaşanması da odaklanma hâlidir). Sonuç ne olursa olsun içinizden minnet duymak ve bunu karşınızdakine ifade etmeniz gerekmese bile kendi içinizde makul bir çizgide tatmin olup kendinizi olumlu görmeniz, uzun vadeli odaklanmayı ve kondisyonu artırır.Sabah 3 saat çalışıp öğle yemeğinden sonra öğleden sonra tekrar 3 saat çalışılan (toplam 7 saat, haftada 4 gün) bir şirkette çalışıyorum. Sadece bu bile psikolojik olarak çok daha rahat hissettiriyor.
Güzel bir şirketmiş!
Herkes mesai bitince ortalıkta kimse yokken tek başına kod yazdığında neden daha iyi gittiğinin sebebi bu.......;;;
Bu yüzden başkaları fazla mesai yapınca ben aksine erken çıkıyorum.
Eğitim, dinlenme ve uygun bir ortamla bunun biraz daha artırılabileceğini düşünüyorum, ama bu insanı öğüten bir düzen olduğu için uzun süre dayanmak zor. Şirketler insanları sonuna kadar zorlamak için bastırıyor ve üstünü örtüyor; ama ilaç kullanarak (antidepresanlar, ADHD ilaçları) çalışan mühendisleri de sık sık görüyorum.
Evet, Pangyo'da psikiyatri işinin iyi yapıyor olması rahatsız edici bir gerçek.
Bence günde bir saat kodlama yeterli. Yapay zekadan önce de aslında kod yazmaya ayrılan süre çok fazla değildi; şimdi ise daha da azaldı.
Benim yapmak istediğim geliştirme, oyun ya da okuma söz konusu olduğunda, saatlerce, o iş bitene kadar odaklanabiliyor gibiyim.
Buradaki 4 saat muhtemelen "yapmak istemiyorum ama mesleğim olduğu için yaptığım" işe yönelik konsantrasyondan bahsediyordur (buna pasif odaklanma mı demek gerekir?).
Basit. Oyun oynarken bütün gece boyunca odağını koruma deneyimini hemen her erkek yaşamıştır.
Kişisel deneyimime göre, yapmak istediğim geliştirmeyi yaparken aralıksız birkaç saat çalışsam bile özellikle yorulduğumu pek hissetmiyorum.
Birden fazla oturumu yürütmenin kendisi de çoklu görev hâline gelerek odaklanmayı düşürüyor olabilir.