Haskell'in yaratıcılarından Simon Peyton Jones şu aralar okuduğum Coders at Work kitabında "başarıdan mümkün olduğunca sakının" diyor. Bunu programlama dilleri ve özellikle de Haskell için söylüyor ama sanırım başka yazılımlar (ve teknolojiler?) için genellemek çok da yanlış olmaz. İlk bakışta çok anlamsız gelen bir cümle bu, çünkü zaten bunca emeğin amacı popüler olmak, bir sürü insana faydalı olmak ve böylece "başarılı olmak" değil midir?

Simon Peyton Jones bundan sonra nedenlerinden bahsediyor. Yazılımınız popüler olmaya başlayınca insanlar onu daha önce düşünmediğiniz şekillerde kullanmaya başlıyorlar, daha iyi alternatifleri olsa bile. Birçok programcı için popülerlik seçimlerinde yeterli bir sebep. Durum böyle olunca, mimarinize uygun olmasa bile yeni kullanıcılarınızı tatmin edebilmek için yeni özellikler ekliyorsunuz. Ve bu durum neredeyse her zaman kötü birşey. Unix felsefesinin merkezinde "sadece bir işi yapın ama iyi yapın" mantığının olmasının nedeni de bu. Karmaşıklığınız artınca Hoare'nin kuralına da uygun olarak "basitçe görülüyor ki hiç hata yok" durumundan "hiç basit hata yok" durumuna geçiş yapıyorsunuz. Ve kullanıcılara "hayır" demenin zorluğu da işinizi kolaylaştırmıyor doğrusu.

Popüler olmanın diğer bir dezavantajı ise esnekliğinizi götürmesi. Yeni kararlar alırken insanların yazılımınızı nasıl kullandığını da düşünmek zorundasınız. Doğru görünmeyen bir bölümünü değiştirmek artık başlangıçtaki gibi kolay değil. Artık kullanıcılarınız her API değişikliğinde size şikayet edeceklerdir. Var olan yazılımlarının çalışmaya devam etmesi için size yalvaracaklardır. Eğer karmaşıklık yanlış yola sapmak için çok tehlikeli bir tuzaksa, evrimleşememek de bir diğeridir. Bunun nedeni değişimin teknolojinin kalbinde olmasıdır. Eğer değişemezseniz, veya rakibinizden daha hızlı değilseniz o zaman hayatta kalmanız zorlaşır. Eğer gerekli değişiklikleri yapamazsanız birileri sizin yerinize geçecektir.

Sanırım "başarıdan mümkün olduğunca sakının" cümlesinden anladıklarım bunlar. En azından bu fikirlerin önemli bir yer tuttuğuna inanıyorum. Bunların nasıl uygulanacağı ise başka bir şey. Ve bunu öğrenmeye ben de devam ediyorum.