Yetenek Olgunluk Modeli (CMM)


Bilgi teknolojisi organizasyonlarında, yazılım süreçlerini iyileştirme amaçlı bir model olarak Carnegie Melon Üniversitesi, Yazılım Mühendisliği Enstitüsü (SEI) tarafından geliştirilmiştir. Organizasyonların; insan kaynaklarını, süreçlerini ve teknolojilerini geliştirip daha iyi çalışır hale getirebilmelerini sağlayan uzun vadeye yayılmış bir olgunlaştırma planıdır.

Yetenek Olgunluk Modelleri ilk olarak 1986 yılında Amerikan Savunma Bakanlığı'nın (DOD) isteği ve yardımlarıyla birlikte, Yazılım Mühendisliği Enstitüsü (SEI) bünyesinde Carnegie Melon Üniversitesi tarafından yürütülmeye başlanmıştır.

CMM, yazılımı geliştirme alanında çalışan kuruluşların iş süreçleri olgunluğunu belirleme ve
İyileştirmeyi amaçlar. Burada “olgunluk” sözcüğü, “Bu kez ne kadar iyi yapılacak?” sorusunun
daha az sorulduğu (tahmin edilebilirliğin) ve bilinmeyenin (riskin) düşük olduğu bir çevrenin
oluşturulması anlamında kullanılmıştır. Süreçlerde olgunluk düzeyinin artması, belirsizliklerin
ve tahmin edilebilirlik düzeyinin azalması anlamına gelmektedir.

İlk olarak yazılım üzerine 1991 yılında yayınlanan model, daha sonra pek çok konuda yapılan çalışmalarla geliştirilmiştir. 1997 yılında farklı alanlara dağılmış olan olgunluk modellerinin tek bir çatı altında toplanmasına ve böylece denetimin daha kolay yapılabileceğine karar verilmiştir. Bu durumu sağlamak için SEI aşağıda belirtilen üç modeli Entegre Yetenek Olgunluk Modeli (CMMI) adı altında birleştirmiştir:

·         Yazılım Yetenek Olgunluk Modeli (SW-CMM)
·         Sistem Mühendisliği Yetenek Olgunluk Modeli (SE-CMM)
·         Entegre Ürün Geliştirme Yetenek Olgunluk Modeli (IPD-CMM)

Yazılım Yetenek Olgunluk Modeli (SW-CMM)
Yazılım yetenek olgunluk modeli adından da anlaşılabileceği üzere organizasyonlardaki yazılım süreçlerinde, bu organizasyonun yazılım konusunda bulunduğu olgunluk seviyesi ve bu seviyeyi yukarı taşıyabilmek için bu organizasyonların sahip olması gereken temel unsurları belirten modeldir.

Yazılım olgunluk modelinin genel olarak beş seviyesi bulunmaktadır:

·       Başlangıç (Initial)
Başarının bireysel gayretlere dayandığı, çok az sayıda sürecin tanımlı olduğu seviyedir. Bu seviye hariç diğer bütün seviyelerde o seviyelerin ilgilendiği belirli konular olmasına rağmen bu seviyede yoktur. 

·       Tekrarlanabilir (Repeatable)
Bu seviyede, ilk olarak yazılım gereksinimleri yönetilir ve bu gereksinimler ile ilgili ürünler oluşturulur. Daha önceden hizmet verilen organizasyona karşı verilen taahhütler, bu seviyede yine bu organizasyonun istek ve revizyonlarına uygun şekilde tesis edilir, iki taraf arasında gözden geçirilip kontrol edilir.

·       Tanımlanmış (Defined)
Bu seviyede, isminden de anlaşılacağı üzere tüm süreçler, artık iyice tanımlanmış standartlar, prosedürler, araçlar ve metotlar ile anlatılmıştır. Ayrıca yazılım ile ilgili olan tüm projelerde tam anlamıyla CMMI standartları uygulanmaya başlanır. Bu seviyedeki tüm süreçler, 2. seviyeye göre daha kapsamlı ve detaylı olarak tanımlanmıştır.

·       Yönetilen (Managed)
Bu seviye yazılım süreçlerinin, iyileştirmeler öncesi son şeklini almadan, tam anlamıyla yönetildiği ve tamamlandığı yerdir. Bu seviyede çeşitli istatistiksel ve nicel ölçüm teknikleri kullanılarak süreçlerin performansları kontrol edilir ve bu süreçlerin ileri zamanlardaki performansları öngörülebilir. Bu olay 4. seviyeyi 3. seviyeden ayıran en önemli unsurdur.

·       Optimize Edilen (Optimizing)
4. seviyede elde edilen veriler ve projelerin tamamlandığı süreçte gelişen teknoloji ile bu seviyede sonuçlandırılan tüm projeleri iyileştirmeye ve projelerden maksimum fayda sağlamaya çalışılır. Bu süreçte tüm organizasyon projeleri iyileştirmeye odaklanmıştır.

Kaynaklar:
    http://bidb.itu.edu.tr/seyir-defteri/blog/2013/09/08/entegre-yetenek-olgunluk-modeli-(cmmi)
    http://www.emo.org.tr/ekler/b927d5224306de1_ek.pdf
    http://securitynotes.org/software-capability-maturity-model
    http://arihantonlineacademy.com/cmm-model-capability-maturity-model-levels-of-cmm-kpas-software-engineering