Yazılım Kalite Yönetimi
Yazılım kalite yönetimi, kalite hedeflerini tanımlayan, süreçlerin ve ürünlerin bu hedeflere ulaşmasını sağlayan ve kaliteli yazılım sunma yeteneğini sürekli olarak geliştiren organizasyonel ve proje faaliyetlerinin bütünüdür.
Tanım
Yazılım kalite yönetimi, uygun süreçlerin tanımlanmasını ve takip edilmesini sağlayan kalite güvencesini ve iş ürünlerinin gereksinimlerini karşıladığını doğrulayan kalite kontrolünü, zaman içinde kalite yeteneğini artırmak için ölçüm ve süreç iyileştirme ile birlikte içermektedir.
Kapsam
Bu konu, yazılım kalite modellerini ve niteliklerini; kalite planlamasını, güvencesini ve kontrolünü; yazılım ölçümünü ve metriklerini; incelemeleri, denetimleri ve süreç uyumluluğunu; CMMI ve ISO/IEC 15504 gibi süreç olgunluğu ve iyileştirme çerçevelerini; ve yazılıma uygulanan ISO/IEC 25010 ve ISO 9001 dahil olmak üzere kalite standartlarını kapsamaktadır.
Temel sorular
- Yazılım kalite hedefleri nasıl tanımlanır ve ölçülebilir hale getirilir?
- Kalite güvencesi ve kalite kontrol odak noktaları açısından nasıl farklılık gösterir?
- Süreç olgunluğu nasıl değerlendirilir ve iyileştirilir?
- Hangi metrikler ürün ve süreç kalitesini anlamlı bir şekilde göstermektedir?
Temel kuramlar
- Kalite güvencesi ve kalite kontrol karşılaştırması
- Kalite güvencesi süreç odaklı olup, uygun uygulamaların mevcut olmasını ve takip edilmesini sağlarken, kalite kontrol ürün odaklıdır ve teslim edilebilirlerin gereksinimleri karşıladığını doğrular; her ikisi de gereklidir ve farklı noktalarda işlev görmektedir.
- Süreç olgunluğu ve iyileştirme
- Humphrey'nin çalışmalarından türeyen CMM ve CMMI gibi çerçeveler, organizasyonel süreç olgunluğunu aşamalar halinde modellemekte ve bir kuruluşun yazılım yeteneğinin sistematik, ölçülebilir iyileştirilmesine rehberlik etmektedir.
Klinik önem
Kalite yönetimi, kalite hedeflerini açıkça belirleyerek, uygunluğu izleyerek ve süreçleri iyileştirerek mühendislik uygulamasını iş sonuçlarına bağlamaktadır; olgun, ölçülmüş süreçler, özellikle büyük veya düzenlenmiş yazılım kuruluşlarında önem arz eden kusurları ve değişkenliği azaltmaktadır.
Kanıt ve kılavuzlar
ISO/IEC 25010 ürün kalite özelliklerini tanımlamaktadır, CMMI ve ISO/IEC 33000 (önceden 15504) süreç değerlendirme ve iyileştirme çerçeveleri sunmaktadır ve ISO 9001 genel kalite yönetimini yazılım kuruluşlarına uygulamaktadır.
Tarihçe
Üretimden gelen kalite yönetimi fikirleri, özellikle Deming ve Crosby'nin yaklaşımları, 1980'lerin sonlarında Humphrey tarafından yazılıma uyarlanmış, bu da Yetenek Olgunluk Modeli (Capability Maturity Model) ve onun halefi CMMI'ya yol açmıştır; uluslararası standartlar daha sonra ürün kalite modellerini ve süreç değerlendirmesini resmileştirmiştir.
Tartışmalar
- Süreç olgunluğu ve çeviklik karşılaştırması
- CMMI gibi ağır süreç olgunluğu çerçevelerinin sonuçları iyileştirip iyileştirmediği veya çevik değerlerle çelişen bir bürokrasi dayatıp dayatmadığı tartışılmaktadır; uygulayıcılar, ölçülebilir süreç disiplinini çevik yanıt verebilirlikle birleştirmeyi giderek daha fazla aramaktadır.
Öne çıkan isimler
- Watts Humphrey
- Philip Crosby
- W. Edwards Deming
- Barry Boehm
İlgili konular
Temel eserler
- humphrey1989
- iso25010
- swebok2014
Sıkça sorulan sorular
- Kalite güvencesi ile kalite kontrol arasındaki fark nedir?
- Kalite güvencesi proaktif ve süreç odaklı olup, kusurları önlemek için doğru uygulamaların tanımlanmasını ve takip edilmesini sağlarken, kalite kontrol reaktif ve ürün odaklıdır, kusurları tespit etmek için teslim edilebilirleri denetler ve test eder; her ikisi de kalite yönetiminin bir parçasıdır.
- Daha yüksek süreç olgunluğu daha iyi yazılımı garanti eder mi?
- Daha yüksek olgunluk, değişkenliği ve kusur oranlarını azaltma eğilimindedir ve öngörülebilirliği artırır, ancak bu bir garanti değildir; olgunluk çerçeveleri mantıklı bir şekilde uygulanmalı ve aşırı süreç, kuruluşun ihtiyaçlarına göre uyarlanmadığı takdirde yardımcı olmaktan çok engelleyici olabilir.