Bir yazılımcının bilgisayarına göz attığınızda genelde iki şey görürsünüz: hâlâ üzerinde çalışılan bir proje ve “bir ara devam ederim” diye bırakılmış onlarca klasör. İsimleri bile umut doludur; final, son, yeni, gerçekten bitti.
Ama çoğu, aylarca hatta yıllarca açılmadan durur. Çünkü yazılımcının en büyük sorunu çoğu zaman hata yapmak değil, başladığı işi yarım bırakmaktır.
Her proje aynı duyguyla başlar. Güzel bir fikir, kısa bir heyecan, “bunu rahat yaparım” özgüveni… İlk kodlar yazılır, sistem çalışır, her şey yolunda gider. Ta ki iş detaylara girene kadar. Ufak sorunlar birikir, çözülmesi gereken konular artar, proje büyür. O noktada iş keyifli olmaktan çıkar, sorumluluk haline gelir. İşte tam orada birçok proje sessizce rafa kalkar.
Yarım bırakmanın sebebi çoğu zaman bilgisizlik değildir. Aksine, ne kadar çok şey bildikçe işin ne kadar zahmetli olduğunu daha net görürsünüz. Kullanıcı senaryoları, performans kaygıları, olası hatalar… Hepsi zihni yorar. Bir noktadan sonra yeni bir fikir, mevcut projeden daha cazip gelir. Çünkü yeni fikir henüz sorun çıkarmamıştır.
Bir de mükemmeliyetçilik meselesi vardır. “Biraz daha düzenleyeyim”, “şu kısmı da iyileştireyim”, “böyle paylaşılmaz” derken proje hiçbir zaman yeterince hazır hissettirmez. Oysa çoğu iş, kusursuz olduğu için değil, tamamlandığı için değer kazanır. Ama bunu kabul etmek yazılımcı için zordur.
Yarım kalan projeler zamanla sadece diskte değil, kafanın içinde de yer kaplar. Farkında olmadan insan kendine şunu demeye başlar: “Ben zaten bitiremiyorum.” Bu düşünce yeni projelere başlarken hevesi kırar. Her yeni fikir, eskiden bırakılmış işlerin gölgesinde başlar.
İşin ilginç yanı şu: Yazılımcılar başkasının yarım projesini devralıp toparlayabilir ama kendi işini bitirmekte zorlanır. Çünkü kendi projesinde net bir sınır yoktur. Ne bir müşteri vardır ne de gerçek bir teslim tarihi. Özgürlük başta güzel gelir, sonra disiplinsizliğe dönüşür.
Belki de sorun büyük projeler seçmekte. “Tam teşekküllü bir ürün” yapmak yerine küçük ama bitmiş işler hedeflemek gerek. Çalışan bir özellik, yayınlanmış küçük bir uygulama… Bitirmek, insana devam etme gücü verir. Çünkü tamamlanan her iş, bir sonrakinin önünü açar.
Yazılımcının asıl düşmanı bilmediği teknoloji değildir; onu öğrenir. Asıl sorun, başlamaya alışıp bitirmemeye alışmaktır. Çünkü bitirmek teknik değil, zihinsel bir beceridir. Ve o alışkanlık kazanıldığında, kod zaten kendiliğinden akar.