Blog: İyi Yazılım

gölge
İyi Yazılım” başlığını literatürde araştırdığınızda karşınıza “Yazılım Kalitesi”, “Yazılım Kalite Modelleri”, “Yazılım Kalite Nitelikleri” gibi kavramlar gelir. Deming, Feigenbaum, Juran, Ishikawa, Swethart kaliteyle ilgili genel tanımlamalar yaparken McCall, Boehm ise yazılım kalitesi üzerinde çalışma yapan en bilinen isimler olarak karşımıza çıkarlar. Sonuçta herkesin söylediğinin özet şudur:

  • Yazılım, kendinden beklenen temel işlevsel gereksinimleri yerine getirmelidir
  • Yukarıdakine ek olarak her yazılımın sahip olması gereken (performans, kullanışlılık, taşınabilirlik, vb.) bir takım nitelikler vardır.

Birincisi analiz disiplininde işlevsel gereksinimler (functional requirements) olarak tanımlanırken ikincisi ise işlevsel olmayan gereksinimler (non-functional requirements) olarak ortaya konulmaktadır.

İş iyi yazılımı tanımlamak için yazılım kalitesine ya da diğer adıyla işlevsel olmayan gereksinimlere geldiğinde farklı paydaş gruplarının açısından farklı perspektifler devreye girer. Örneğin bir yazılım uzmanı açısından yazılıma yeni bir modül eklemenin kolaylığı ya da hatalı bir kodu düzeltebilmek için kodun okunabilirliği önemliyken, son kullanıcı açısından uygulamanın kolay kullanılabilirliği ya da hata yapmaya izin vermemesi gibi nitelikleri daha ön plana çıkar. Aynı yazılım kalitesi, o yazılımı canlı ortamda kesintisiz bir biçimde çalıştırmakla sorumlu olan operasyon ekibi için farklı, destek ekibi için farklıdır.

İyi yazılımı tanımlarken üzerinde durulması gereken başka bir boyut da ürün olarak yazılım kalitesini incelemenin ötesinde, o kaliteyi ortaya koyacak olan sürecin de tartışılması gerektiğidir. Ardından takımı konuşmak gerekir. Ve daha birçok şeyi…

Literatür böyle diyedursun, bir de bakalım sektörün içinden yazılım projeleri deneyimleriyle sahadan insanlar neler diyorlar.

  • İyi yazılım, kodu gördükten sonra “ne kadar basit düşünülmüş, ben de yazabilirdim” denilendir.
  • İyi yazılım iki tarafında mutlu olmasıdır. Bir geliştirme yapan taraf, iki ürünü kullanan taraf.
    • Geliştirme yapan tarafından bakılırsa, kişisel kahramanlıkların değil, takım olarak geliştirilen yazılımlar iyidir. Basit ve anlaşılır kod önem arz eder.
    • Kullanıcı tarafından bakılırsa, istediği sonuca kolay ve basit ulaşımı iyi yazılımların en büyük özelliğidir. Yeni isteklere cevap verebiliyor olması kullanıcı tarafından önemlidir.
  • İyi bir yazılım kodun doküman gibi okunabildiği bir yazılımdır.
  • Standartları olmayan bir yazılım her ne kadar çalışır gözükse de sonunda silinmeye mahkumdur.
  • İyi yazılım müşterinin yaptığı işe değer katan yazılımdır.
  • İçerisinde kötü pratikler ve öğeler barındırmaya yazılım iyi yazılımdır. Elbette müşterinin ihtiyacını karşılamayan ve kullanılamayan her müthiş fonksiyon kötüdür.
  • Müşteriyi memnun eden her yazılım iyidir. Hangi platformda, hangi metotlarla, hangi dil ile geliştirilmiş hiç önemli değildir.
  • İyi yazılım, sürekli değişen ihtiyaçlara cevap verecek şekilde esnek olmalıdır.
  • Kullanıcının bakış açısıyla hareket eden ve onun alışkanlıklarını ön planda tutacak şekilde tasarlanan yazılımdır.
  • Yazılım bir fildir. Hortumundan boruya, bacağından sütuna, kulağından yelpazeye, kuyruğundan fırçaya benzer.
  • Bir işi sadece bir yerden yapabildiğiniz yazılım iyidir…
  • İyi Analiz + İyi Geliştirme + İyi Test = İyi Yazılım

Yukarıdaki tarifler “İyi Yazılım” linked-in grubundan.(Dahası da var tabii ki. Devamını okumak isteyenler ve yorum yazmak için grubumuza bekleriz.) Sonuç olarak temelde bütün bunları özetleyecek olursak iyi yazılım,

  • Nereden baktığınıza
  • Yazılımın hangi aşamada olduğuna (fizibilite, geliştirilme, bakım)
  • Kalite anlayışınıza

bağlıdır.

gölge
Yorum Yaz
Ad Soyad:
Yorum:
gölge

Benzer Yazılar

Apple, bazı yeni özellikler içeren ve hataları düzelten iOS 8.3 sürümünü yayınladı. Detaylarını yazının devamında bulabilirsiniz. Önemli... 
Popüler sabit disk şifreleme yazılımı TrueCrypt özellikle Windows XP kullanıcıları arasında çok popülerdi. Ancak Microsoft bir yıl kadar... 
Popüler sabit disk şifreleme yazılımı TrueCrypt özellikle Windows XP kullanıcıları arasında çok popülerdi. Ancak Microsoft bir yıl kadar... 
Apple, bazı yeni özellikler içeren ve hataları düzelten iOS 8.2 sürümünü yayınladı. Detaylarını yazının devamında bulabilirsiniz. Önemli... 
gölge

Çeşitli Yazılar

Şu sıralar ayda 70 milyon dolar kaybeden Kodak, bazılarına göre yürüyen bir ölü. Ancak 1888’de tüketicilere bir kamera sahibi olma şansı... 
Gerçekçi fizik motoru ve sürükleyici yapısıyla sizi de etkisi altına alacak muhteşem bir basketbol oyunu. BasketballMaster oyununda zamana karşı... 
Siberya’nın, “Dünya’nın sonu” anlamına gelen, Yamal Peninsula bölgesi, her an daha “çukurlu” bir hale gelebilir.... 
Ugly Animal Preservation Society (Çirkin Hayvanları Koruma Topluluğu) tarafından maskot seçimi için düzenlenen bir oylama, dünyanın en çirkin... 
gölge