Büyük emekler sarf ettiğiniz bir projenin başarısız olması, özellikle bir yazılımcı iseniz sizi hayal kırıklığına uğratabilecek en önemli konudur. Peki, bir projenin başarılı veya başarısız olmasını etkileyen faktörler nelerdir? Hangi proje başarılı hangisi başarısız olarak değerlendirilmelidir? Her şeyiyle mükemmel çalışan bir yazılımda küçük bir değişikliği yapmak bir sene sonra ne kadar zamanımızı alacak? Müşterinin gelecekte isteyebileceği şeylere ne kadar hazırlıklıyız?
Bu sorular uzadıkça uzar ve belirli bir süre sonra başarılı sayılabilecek proje yapanları bile şüpheye düşüreceği için daha fazla devam etmek istemedim.
Tüm projelerin analiz süreçlerinden sonra başladığını göz önünde bulundurarak makalede analiz süreçlerinin proje başarı üzerindeki etkilerine yoğunlaşmak istedik. Tabi ki, bir projede başarı ve başarısızlığı etkileyecek bir çok faktörler vardır. Bu makaleyi okurken diğer durumların ideal olduğu varsayarak okumanız konunun anlaşılması için anahtar niteliktedir. Analizden kastım ise isterlerin, yani müşteri isteklerinin doğru analizi olduğunu belirtmek istiyorum.
Standish Group, yazılım projelerindeki başarı ve başarısızlıkları araştıran bir kurum. Bu kurum 1986 yılından bu yana Chaos Report adı altında yürüttüğü bu çalışmalarda incelediği projeleri 3 kategoriye ayırmıştır:
Başarılı Projeler,
Başarısız Projeler
ve
Kısmen Başarılı projeler.
Zamanında, bütçesinde biten ve belirlenen kapsamı gerçekleştiren yazılım projeleri başarılı kabul ediliyor. Eğer bir proje tamamlanmadan iptal ediliyorsa başarısız sayılıyor. Geri kalan projelerse kısmen başarılı olarak değerlendiriliyor. Yani ya zamanında bitmemiş ya ek bütçe kullanmış ya da beklenen özelliklerin tamamını yerine getirmemiş projeler olarak karşımıza çıkıyor.
2014 yılında yayınlanan kaos raporuna göre başarılı yazılım projeleri için belirlenen parametrelerde ilk üç sırada yer alan faktörler şöyle:
Kullanıcıların projeye dahil olması
Üst yönetim desteği
Açık ve net olarak belirtilmiş gereksinimler
Üst yönetim desteğini dışarıda bırakırsak 1 ve 3. maddeler direkt olarak proje analizi işaret ediyor.
Aynı araştırmanın başarısız yazılım projeleri için belirlediği parametrelerden ilk üç sırada yer alan faktörler ise şöyle:
Tamamlanmamış, eksik gereksinimler
Kullanıcıların projeye yeterince dahil olmaması
Kaynak yetersizliği
Burada da üç maddenin ilk ikisi yine analiz süreçlerini işaret ediyor ve detaylı incelendiğinde başarılı projeler için belirlenen parametrelerin negatif yansıması.
Kısmen başarılı projelerde ilk üç faktörse şöyle:
Kullanıcı girdilerinin eksikliği
Tamamlanmamış, eksik gereksinimler
Gereksinimlerin değiştirilmesi
Müşterinin, iş biriminin ya da kullanıcının ne istediğini net bir şekilde anlamadan geliştirilecek bir yazılım ne kadar iyi kodlanırsa kodlansın başarılı bir yazılım olamayacaktır. Tabii ki yazılım geliştirme sürecinin her bir adımı, analiz, mimari tasarım, geliştirme, test, devreye alma, ayrı ayrı değerlidir. Ama analiz en başta geldiği ve diğer bütün adımların burada tarif edilenin netliğine, doğruluğuna bağlı olması nedeniyle analize daha bir önem vermek gerektiğine inanıyorum.
Şöyle bir düşünelim. Diyelim ki analizi yanlış yaptık. Müşteriyi yanlış anladık. Ama sürecin geri kalanı çok iyi çalışıyor. Bu bizi kaliteli ama yanlış ürüne götürür. Müşteri memnun olur mu? Kesinlikle hayır. Peki, tersini düşünelim. Müşteriyi doğru anladık. Ama yazılımımız yeterince kaliteli değil. Bu durumda ortaya kör topal bir yazılım çıkar. Canlıda epey bir sıkıntı çıkartır ama belki çalıştığı kadar kısmıyla müşteri için kabul edilebilir olur.
Tabii ki ideal olan müşteriyi doğru anlayıp ortaya kaliteli bir yazılım koymaktır. Ama iyi yazılım için önce iyi analiz yapmak gerekir.
Yorumlar
Yorum Gönder