Programcı Tıkanıklığı

21-8-2007

CoderDilemma Writer's Block - Yazar Tıkanıklığı yazarın bir noktaya gelip ondan sonra yazamaması, aklına bir şey gelmemesine verilen terim. Tasarımcılar genelde ilham gelmediğine suç atarlar, yazarlar ise yeni fikirler veya romanın devamını üretemezler, vs...

Bir de programcı tıkanıklığı denilen bir durum var ki onlar kadar ciddi sayılmayabilir belki ama bir çok açıdan insanın başına gelen bir olay.

Eğer on dakika boyunca salak salak kodun çeşitli yerlerinde sörf yapmaya başladıysanız bu sorun sizde de baş gösteriyor olabilir. Diğer bir semptomu ise bütün hayat enerjinizin on dakika içerisinde yok olup, ölümüne uyku ve kendinden geçme isteğidir. Eğer bu ikinci noktaya ulaştıysanız hemen en yakında psikiyatriste (veya psikiloga, özetle psik* -yay, wildcardlar yani vahşi kartlar (TDK 2005) bir defa daha günü kurtardı-) gitmenizi tavsiye ediyorum (işe yararsa bana da haber verin), ya da kendinize yeni bir iş edinin...

Bu tip tıkanmanın genelde genelde dört ana nedeni var :

KellePaca Görüldüğü üzere programcı tıkanıklığı Yazar veya Tasarımcı ya da benzer ilhamımsı bir şey bekleyen kişilerin tıkanıklığından genel olarak farklı, onlar bir sonraki olayın ne olduğunu beklerken genelde programcılar bir sonraki hareketi bilmelerine rağmen onu yapmak istemiyorlar. Yazarlar veya tasarımcılarda nadir olarak diğer sorunları yaşıyor tabii ki ama genel olarak durumu bu şekilde gruplandırabileceğimizi düşünüyorum.

Bu sorunlara nacizane basit çözümler ve çözüm fikirleri.

Konsantrasyon bozukluğu, Odak Sorunu

Pardon bunun için çözümümüz yok sıradaki...

Projenin çok sıkıcı olması

Evet öyle oluyorlar. Eğer kendi kişisel projeniz ise bırakın, başka bir şeyler yapın. Eğer ben başladığımı bitiririm, tuttuğumu koparırım, istediğimi alırım diyenlerdenseniz Steve Pavlina falan okuyun size ancak o yardımcı olabilir, benim vereceğim öğüt ise şu şekilde :

Bu kesinlikle gelmiş geçmiş en rezil öğütlerden biri olsa gerek ama bunu "tembel ve keyif insan 3 yılda nasıl program geliştirir" kitabından bir pasaj olarak kabul edin. İşin gerçeği ben az olarak yaptığım işleri genelde bu şekilde yapıyorum, tavsiye etmiyorum ama sonuç veriyor. Hiç bir şey yapmamaktan iyidir.

Tabii ki eğer bu sizin işinizse sorununuz daha büyük, ona beni bulaştırmayın...

Projenin dağılmış olması

Üstteki kategoriye giriyor, çok kötü bir durum. Eğer proje çok kötü bir hale geldiyse yenilikçi bir şeyler yapabilir ve tekrar projeyi canlandırabilirsiniz. Mesela en sorunsal parçaları merkezi bir şekilde tekrar yazma, projeye unit testler ekleyerek parçaları refactor ede ede projeyi keyifli bir hale getirmek vs.

hauntedcoderBundan önce tabii ki projeyi en başından sıkı tutmak gerekli. Adam gibi kod yazmak, kaynak kod kontrol sistemi kullanmak, unit testleri yazmak, dokumantasyon yapmak, copy - paste yerine adam gibi merkezi fonksiyonlar yazmak vs.

Bunların hepsi projeyi kodlama açısından daha verimli hale getirecektir, hiç kimse her dokunduğundan 30 dk. debugging gerektirecek bilinmeyen hatalar üretmeye başlayan bir proje için yeni kod yazmak istemez.

Bir sonraki hareketin ne olduğunu bilmemek

Ah sevgili dostum, eğer bunu yaptıysan yazılım geliştirmenin 7 büyük günahının en büyüklerinden birini işliyorsun demektir. Bir sonraki hareketinin ne olduğunu bilmemek, ne yapacağını bilmemek demek o da bir projenin sonu demek.

Kendinize bir yapılacaklar listesi (halk arasında to-do list olarakta bilinir) oluşturun ve ona sadık kalın. Her zaman bir sonraki adımınız belli olsun, eğer belli değilse uzun uzun düşünün, yazılımı planlayın adımları oluşturun ve ondan sonra devam edin. Planlama ve adım oluşturma süreci ölümcüldür, dolayısıyla hakkını verin iki defa biçip bir defa kesin, nitekim kestikten sonra düzeltme yapmak serbest!

Yapılacaklar listesi yönetimi başlı başına bir konu ama bir kaç ipucu :

Genel olarak en programcı tıkanıklığına karşı en büyük çözüm olan 10' dan geriye saymayı ve sorun çözmek için hata ile yaşamayı unutmayın.

Son olarak programcı tıkanıklığı hakkında bir makale Skindeep' de var, muhtemelen orada biraz daha pratik öneriler bulabilirsiniz.

Recent Blog Posts

See all of the blog posts