|
İnsan · Karmaşıklık ile mücadele ederken, en önemli faktör programcıların kullandığı araç ve teknikler değil, programcıların kalitesidir. · "Bireysel farklılıklar" konusundaki araştırmalara göre, iyi programcılar sıradan programcılardan 30 kat kadar iyi olabilir. Kalite · Kalite niteliklerin toplamıdır. Bu nitelikler değişik kişiler tarafından farklı yorumlanmakla birlikte, ortak kabul görmüş olanları; taşınabilirlik, güvenilirlik, etkinlik, mühendislik, test edilebilirlik, anlaşılabilirlik ve değiştirilebilirliktir. · Kalite; kullanıcı memnuniyeti, gereksinimlerin karşılanması, maliyet ve takvime uygunluk ile aynı şey değildir. Ancak, bütün bunlar birbiri ile ilişkilidir: Kullanıcı memnuniyeti = Kaliteli ürün + Karşılanan gereksinimler + Zamanında teslim + Uygun maliyet. · Çünkü kalite, basitçe güvenirlikte değildir, yazılım kusurlarından çok daha fazlasıdır. · Kalite niteliklerinden birini iyileştirmeye çalışmak, genellikle bir diğerinde düşüşe yol açar. Örneğin; etkinliği iyileştirmeye çalışınca, değiştirilebilirlik niteliği azalır. Bakım · Kalite ve bakım arasında ilginç bir ilişki var. · Tipik olarak bakım, yazılım masrafları %40 ile %80 (ortalama %60) oranında bakıma gidiyor. Bu nedenle bakım en önemli yaşam döngüsü aşamasıdır. · Yazılım bakım masraflarının ise kabaca %60'ı iyileştirmeye harcanıyor. Hata düzeltme, yaklaşık %17 civarında. Buna göre bakımın yazılımın düzeltilmesi/hataların giderilmesinden çok ağırlıklı olarak yeni fonksiyon ve yeteneklerin ilavesi olduğunu söylemek daha doğru olacaktır. Kaynak: Robert L. Glass, "Frequently Forgotten Fundamental Facts about Software Engineering", IEEE Software, May/June 2001
|