Yazılımcı Konsantrasyonu, Beyin Akış Modu ve Bölünmeler


Giriş

Yazılım geliştirme yaratıcı bir iş çıkartmayı hedefleyen bir süreç olup, mutlak dikkat ve konsantrasyon gerektirir. Chicago Üniversitesi Psikoloji Bölüm Başkanı Mihaly Csikszentmihalyi tarafından yapılan bir çalışmada yazılımcıların beyinlerinin sanatçıların çalışma tarzına sahip olduğu görülmüştür. Programlama sırasında beyin bir “akış” (flow) moduna geçmekte, etrafla ilişkisini kesmekte ve bir probleme günlerce konsantre olabilmektedir. Ciddi bir çevresel izolasyon gerektiren akış moduna girildiğinde, üretkenlik maksimum düzeydedir ve tüm kritik kodlamalar bu seviyede yapılır.

Akış moduna giriş, zaman alan ve karmaşık bir süreç olup, çözülmesi gereken problemle veya yapılması gereken işle ilgili gerekli bilgiler toplanır. Örneğin:

  • Olası çözümler
  • İlgili metotlar
  • Değişkenler
  • Parametreler
  • Kullanıcı ara yüzleri
  • Nesneler ve veri yapıları
  • İş akışları

Bu süreçte bu bilgiler beynin kısa süreli hafızasında (short term memory space) biriktirilir, harmanlanır ve çalışmaya hazır hale gelinir. Yapılan farklı çalışmalara göre yazılımcının beyninin “akış” moduna geçmesi yaklaşık 15 dakika zaman almaktadır. Tam akış moduna girmiş ve programlamaya devam ederken yazılımcının herhangi bir nedenden dolayı bölünmesi (interruption) beyninin kısa süreli hafızasındaki topladığı bilgilerin silinmesine neden olur. Dolayısı ile yazılımcının tekrar işe dönüp çalışması yine 10-15 dakika daha zaman alacaktır.

Bölünme (Interruption) Nedir?

Akış modunda olsun veya olmasın, yazılımcının dikkatinin dağılmasına ve konsantrasyonunun bozulmasına neden olan her şey bölünmedir? Bölünmeler değişik türlerde ve zamanlarda gerçekleşebilirler. Tipik bölünmeler:

  • Odaya bir kişinin girmesi
  • Odada gürültü olması
  • Tam bir işin ortasındayken başka acil bir işin gelmesi (Daha sonra ondan da acil işin gelmesi)
  • Telefon gelmesi
  • Acil konulu e-posta gelmesi
  • Anlık mesajlaşmalar
  • Arkadaş soruları
    • Bu fonksiyon tam olarak nasıl kullanılıyor anlamadım?
    • Bir hata aldım debug etsem de çözemiyorum. Evet dediğin yerlere baktım ama yine de işin içinden çıkamıyorum. Sonrasında daha üzerimde bekleyen çok acil hatalar var. Yardım edebilir misin? (Klasik ama etkili 🙂 )
    • Kalemini alabilir miyim?
    • Çay alacağım sen de ister misin?
    • Şurada indirim var duydun mu?
    • Tatildeki fotoğraflarıma bakalım mı?
    • Dünkü maçı izledin mi?

Gerçek hayattan bir örnek: Akış sürecine girmiş bir yazılımcının yanına gidip soru ile onu bölmeye çalıştığınızda; öncelikle size bir süre (5-10 saniye) garip garip bakabilir. Tam da bu noktada yazılımcının beyni akıştan çıkmamak için direnç göstermeye başlamıştır. Öncelikle olabildiğince sizi uzaklaştırabilecek basit cevaplar verir (Evet, Hayır, 2 dakika sonra vb.). Bu cevapları üretip tekrar kaldığı yerden devam etmesi bile 2-3 dakika zaman almaktadır. Baktı ki karşısındaki kişi tatmin olmuyor ve sormaya devam ediyorsa, yazılımcı pes edip akış modunu keser ve ciddi bir zaman kaybı yaşanır.

Bazı Çalışmalar

Parnin [1] tarafından yapılan çalışmada Eclipse ve Visual Studio kullanan 86 programcının yaptığı 10,000 programlama oturumu ve 414 programcının anket analizi sonrasında aşağıdaki sonuçlar ortaya çıkmıştır.

  • Bir yazılımcının herhangi bir bölünme sonrasında tekrar kodlamaya başlaması yaklaşık (ortalama) 10-15 dakika sürmektedir.
  • Yazılımcılar günde sadece 2 saatlik kesilmeden çalışabilmektedirler.

Yazılımcılar bu bölünmelerle baş etmek ve tekrar hızlıca kodlamaya dönebilmek için aşağıdaki yöntemleri denemektedirler.

  • Kağıtlara notlar alırlar
  • Derleme hatasına neden olacak hatırlatıcılar veya breakpoint’ler koyarlar
  • Son kaldıkları kod satırından devam etmeye çalışırlar (Genelde başarısız olurlar, bu satıra nasıl geldiklerini hatırlamak veya işlerini garantiye almak için başa dönerler)
  • Kaynak kod tarihçesine dönerler ve kaynak kod farklarına bakarlar (30 dakika önce yaptıklarını hatırlamak için)

Konuyla ilgili bundan sonraki yazılarımızda “Yazılımcı bölünme maliyeti” ve “Yazılımcıların bölünmesine karşı önlemler” üzerinde duracağız.

Kaynaklar

  1. http://blog.ninlabs.com/

Dr. Deniz KILINÇ

Advertisements

41 Responses to Yazılımcı Konsantrasyonu, Beyin Akış Modu ve Bölünmeler

  1. Mükemmel olmuş hocam, devamını sabırsızlıkla bekliyorum.

  2. Harika bir araştırma. Bunun eziyetini çok çektim. İddia ediyorum, personeline istediği ortamı sağlayanlar daha performanslı çalışanlara kavuşacaklar.

    Performans arttırmak isteyen yöneticilere duyurulur.
    Lanet olası federaller 🙂

    • Teşekkürler Yiğit. Aslında bu konuda sıkıntı yaşamayan yazılımcı yok 🙂 Kayıp ise milyonlarca TL/dolar. Ancak çözümler de mevcut. Yeter ki bu problem kabul edilsin ve üzerine gidilsin…

      • Benim bir ara çalıştıgım bir ofiste, bir abi, ara ara gelip, “Peynir geldi, peynir isteyen var mı?” diye bağırırdı. Kimse de demiyor ki, “Burada konsantrasyon en önemli şey, bağırma” 🙂 En azından peynirci abiyi uzaklaştırsalar, başlangıç için yeterli olur sanırım 🙂

      • Bak bu iyiymiş Yiğit 🙂 Bu adam yazılımcı değildir inşallah 🙂

      • Yok değildi, memleketinden peynir gelince almak isteyenlere satan bir abiydi. Ofisin ortasına gelir ve bağırırdı. Seni görür, kulağında kulaklık mesela, el sallar, peynir istiyormusun der gibi gözüne bakardı 🙂

  3. Vereceğim derslerde bu olayı mutlaka kullanacağım, çok iyiymiş 🙂

  4. Pingback: Yazılıma ve Programlamaya Yeni Başlayanlar için Tavsiyeler | Yrd. Doç. Dr. Deniz KILINÇ Blog Sitesi

  5. Pingback: Yazılıma ve Programlamaya Yeni Başlayanlar için Tavsiyeler | Algoritma ve Programlama Bilgi Kaynağı

  6. secgincaner says:

    Çok güzel bir yazı olmuş daha detaylı ve daha çok öneri sunan yazılarınızı bekliyom.Emeğinize sağlık.

    • Teşekkürler Furkan, Pomodoro teori olarak bildiğim ancak bir fiil tecrübe etmediğim bir teknikti. Özellikle gönderdiğin linkteki Pomodoro yazılımını çok beğendim. Basit ve kullanışlı.

      Müsait olursan bana pratikte edindiğin tecrübelerin artı ve eksi yollarını mail atabilir misin? İstersen burada da paylaşabilirsin.

  7. Pingback: Yazılıma ve Programlamaya Yeni Başlayanlar için Tavsiyeler – Fatih Ç.

  8. serkanyarbas says:

    2 saat kesilmeden çalışabildiğim gün şükredecem 😀

  9. Hocam süper tespit olmuş
    Her cümleyi okuduğumuzda kendimizi bulduk 😀
    Devamını bekliyoruz 🙂

  10. ismailkocacan says:

    Hocam süper tespit olmuş
    Her cümlede kendimizi bulduk 😀
    Devamını bekliyoruz 🙂

  11. Konu o kadar güzel özetlenmiş ki tebrik ederim 🙂 Proje yöneticilerinin okuması gereken bir konu :p

  12. Hocam çok güzel olmuş 🙂 Her ne kadar okuldaki yazılım sınavlarımız da da aynı durum olsa da gerçekten çok doğru. 🙂

  13. mirza alkazar says:

    çok güzel bir makale olmuş fakat motivasyonun önemli olduğunun farkında olan bazı mecralar, motivasyon vermek yerine antimovitasyon verdiklerinin farkında değiller…

    • Teşekkür ederim Mirza. Haklısın insanların/yöneticilerin bu yanlışa düşmesinin sebebi, öncelikle karşısındaki kişiyi insan yerine koymamalarından kaynaklanıyor diye düşünüyorum. Biraz tanımaya bile tenezzül etmeyebiliyorlar. Dolayısıyla daha işin teknik boyutuna giremeden, çuvallıyoruz. Öncelikle karşımızdakini tanımak belirli özelliklerini bilmek sonrasında ilgili motivasyon tekniğini şeffaf bir şekilde uygulamak gerekiyor. Tabi bunlar büyük zahmet ve zaman kaybı olarak da görülebilir 🙂 Anlayana 🙂

  14. Emre Kıyak says:

    Harika bir araştırma. Bilişim sektörü iş verenleri bu konuda mutlaka fikir sahibi olmalılar. Bir yazılımcı olarak günde ortalama 3 saatlik bir çalışma gerçekleştirdiğimizi söylediğimde sebebini kavrayamayanlar için cevap niteliğinde.

  15. Pingback: Yazılıma ve Programlamaya Yeni Başlayanlar İçin Tavsiyeler | yakupad

  16. Pingback: Yazılıma ve Programlamaya Yeni Başlayanlar İçin Tavsiyeler | Yakup Ad

  17. Mesut Yılmaz says:

    Okulda en çok sıkıntı çektiğim sorun.Üniversite yurdunda 4 kişilik odada kalıyorum ve sırf kendime kod yazabilecek alan,sessizlik yaratılabilmek için çevremdekilerle muhattabı kesiyorum hatta bazen sevilmeyen kişi olabiliyorum.Hatta bazen oda da bir kaç günlük küs havası yaratıp o bir kaç günün sessizliğini kod yazmak için kullanıyorum, yetiyor mu tabi ki yetmiyor yine istediğim notların altında kalıyorum, çok daha iyisini yapabileceğimi bildiğim halde.O yüzden yazdığınız şeyleri kendi üzerimde coğu defa tespit etmiş bu dertten son derece muzdarip bir mühendis adayıyım.Çoğu zaman kendimi bu bölünmeler ve dikkat dağıtan insanlar, sesler yüzünden patinaj çekiyor gibi hissediyorum, çalışıyorum ama ilerleyemiyorum, % 30-40 verimle çalışıyorum. %60-70 verime çıkabildiğim günler ise benim için nimet. 🙂

    • Selam Mesut, Bazı öğrencilerim de aynı durumdan müzdarip olmuş ve senin gibi denemeler yaptıktan sonra anlaşabilecekleri dört arkadaş eve çıkmışlardı. Belki denemişsindir ama kulaklık takarak (müzik dinle veya dinleme) çalışmak senin adına bir çözüm olabilir. Basit ama etkilidir. Firmalarda birçok yazılımcıyı ortam çok sesli olmasa dahi kulaklıkla çalışırken görebilirsin, şimdiden alışmış olursun 🙂

  18. Pingback: Yazılımcı Konsantrasyonu, Beyin Akış Modu ve Bölünmeler | Arif Kibrit

  19. uur says:

    Deniz bey , çok güzel bir makale olmuş, keyif alarak okudum. Bahsettiğiniz durumları çok sık yaşamıyorum. Çok şükür odada tek başıma çalışma imkanım var . Bahsettiğiniz gibi, biri gelip soru sorduğunda soran kişinin yüzüne boş boş baktığım anlar gözümün önüne geldi :). Yazdıklarınızın hepsi yazılımla uğraşan insanların başından geçmiştir. Mükemmel tespit.

  20. Arda says:

    dört farklı hepsi de ilk 30 da yer alan büyük perakende şirketlerinin e-ticaret projesinin ana yazılımcısıyım, müşterinin ofisinde çalışıyorsa, pomodoro, timer vs… sökmüyor. Günde 1 saat iş çıkıyorsa şükrediyoruz. Mecburen akşam evimizde, caffe nero da, starbucksta , sessiz bir yerde işi bitirip gündüz de müşteriye bildiğin goygoy yapmaya gidiyoruz 🙂 Work – life balance denen denge bozuluyor, alınan 20+ kilo, yetişmeyen işler … İşi sevmesem bu kadarına katlanamam. Spor, arkadaşlarla gezmek , kitap okumak ki bunlar büyük bir hayal oldu artık.

  21. Pingback: Yazılıma ve Programlamaya Yeni Başlayanlar için Tavsiyeler | 3Y zamanı

  22. Anlayan varmış demek ki, özellikle odaya birinin girmesi ve sorular..

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

w

Connecting to %s

%d bloggers like this: