CMMI Basamaklı Modeli ile Yazılım Firmalarının Değerlendirilmesi
Transkript
CMMI Basamaklı Modeli ile Yazılım Firmalarının Değerlendirilmesi
YKGS2008: Yazılım Kalitesi ve Yazılım Geliştirme Araçları 2008 (9-10 ekim 2008, İstanbul) CMMI Basamaklı Modeli ile Yazılım Firmalarının Değerlendirilmesi için Bir Yöntem ve Uygulama A Method and an Application for Evaluation of Software Companies with the CMMI Staged Model Fatih Yücalar Bilgisayar Mühendisliği Bölümü Maltepe Üniversitesi, İstanbul Şenol Zafer Erdoğan Bilgisayar Mühendisliği Bölümü Maltepe Üniversitesi, İstanbul [email protected] [email protected] Özet Son yıllarda, yazılım yöneticilerinin yazılım süreçlerindeki performans, maliyet ve zaman tahmini gibi konularda yaşadığı sıkıntıları gidermek ve yazılımda kalite sertifikasyonunu sağlamak amacıyla çeşitli süreç iyileştirme ve yetenek belirleme modelleri geliştirilmiştir. Bu modeller içerisinde en önemlilerinden biri, Tümleşik Yetenek Olgunluk Modeli (Capability Maturity Model Integration – CMMI)’dir. CMMI, her organizasyon için yazılım geliştirme yeteneğini değerlendirmek ve aynı zamanda yazılım kalitesini arttırmak için kullanılan bir modeldir. CMMI, Carnegie Mellon Üniversitesi Yazılım Mühendisliği Enstitüsü (Software Engineering Institute – SEI) tarafından geliştirilmiştir. CMMI modeli, basamaklı ve sürekli olmak üzere iki gösterime sahiptir. Bu çalışmada CMMI basamaklı modeli kullanılarak bir anket tabanlı kendini değerlendirme yöntemi önerilmektedir. Önerilen yöntem Türkiye’deki iki yazılım firmasına uygulanmış ve sonuçlar değerlendirilmiştir. Abstract In recent years, several process improvement and capability determination models have been developed to improve software management in such issues as performance of software processes, cost and time prediction and to provide the quality specification of software. One of the most important models in current use is CMMI (Capability Maturity Model Integration). CMMI is used for each organization to appraise the software development capability and also to increase the software quality. CMMI has been developed by SEI (Software Engineering Institute, Carnegie Mellon University). CMMI model has two representations: staged and continuous. In this study, a questionnaire based self assessment method using CMMI staged model is proposed. The proposed method has been applied in two software organizations in Turkey and the results have been evaluated. 1. Giriş Günümüzde yazılım sistemleri birçok iş alanının temel bileşenleri içersinde yer almaktadır. Artan rekabet, gelişen teknoloji ve yazılım kuruluşlarının artan kabiliyetlerinin de etkisiyle gelişmiş yazılım sistemlerine olan ihtiyaç her geçen gün artmaktadır. Yazılım sektöründe kaliteli yazılım projeleri; kabul edilebilir düzeyde hatasız, planlanan bütçe ile zamanında bitirilip dağıtılabilen, gereksinimleri veya beklentileri karşılayabilen ve sürdürülebilir özelliklere sahip yazılımlar olarak değerlendirilebilir. Tüm hataları oluşmadan önlemek, proje koşulları ve maliyetleri içerisinde olanaklı değildir. Yazılımda ürünün kalitesini, ağırlıkla onu üreten sürecin kalitesi belirlemektedir. Bu nedenle, yazılım sektöründe ürün odaklı kalite yönetiminden çok süreç odaklı kalite yönetimi hâkimdir. Müşteriye sağlanan ürün veya hizmet, yönetilen süreçlerin çıktılarıdır. Süreç yönetimi tabanlı düşünce, yazılım geliştirme faaliyetleri yürüten firmalarda metodolojilerin kullanımını avantaj ve zorunluluk olarak öne çıkartmaktadır. Son on beş yılda yazılım geliştirmede kullanılan kalite sistemlerini ve süreçlerini değerlendirmek, yazılımda kalite sertifikasyonunu sağlamak, süreçleri iyileştirmek ve yetenek belirlemek için, CMM, CMMI, ISO 15504 gibi çeşitli modeller geliştirilmiştir [1]. CMMI süreç iyileştirme ve yetenek belirleme modelidir. CMMI Ürün Grubu, süreç iyileştirme modellerini, değerlendirme metotlarını ve eğitim materyallerini içerir [2]. CMMI modeli, bir kurumun ya da kurum içindeki bir sürecin olgunluğu hakkında bilgi verir [3]. YKGS2008: Yazılım Kalitesi ve Yazılım Geliştirme Araçları 2008 (9-10 ekim 2008, İstanbul) Çalışmanın 2. bölümünde CMMI ve CMMI’ın yapısı, 3. bölümünde CMMI değerlendirmesi, 4. bölümünde sunulan yöntem ve uygulaması, son bölümünde ise çalışmanın sonucu verilmektedir. 2. Tümleşik Yetenek Olgunluk Modeli (CMMI) Yetenek Olgunluk Modelleri, en genel anlamda organizasyonların insan kaynaklarını, süreçlerini, teknolojilerini ve organizasyonun iş yapabilme performansını uzun vadeli geliştirecek şekilde olgunlaştırmasını sağlayan modellerdir. SEI, organizasyonların iş süreçlerini geliştirip bu süreçler üzerine odaklanabilmesi için kişiler, prosedür ve metotlar, araç ve gereçler olmak üzere üç farklı boyut belirlemiştir. Organizasyon içinde kullanılan süreç, bu üç boyutu bir arada tutar [4]. Süreçler iş eğilimlerinin incelenmesi ve kaynakların irdelenmesi için olanak sağlar. Bir sürece odaklanmak; rekabet ortamında personel ve teknolojiyi en yüksek noktaya çıkarmak ve daima değişen dünya ile ilgilenebilmek için gerekli altyapının oluşturulmasını sağlar [4]. SEI, süreç yönetiminin dayanak noktası olarak; “bir sistemin veya ürünün kalitesi, onun bakımı ve geliştirilmesi için kullanılan sürecin büyük oranda kalitesinden etkilenir” prensibini ele alır [1]. Bu dayanak noktasının eklenmesi ile yetenek olgunluk modelleri tanımlanmıştır. Yazılım için Yetenek Olgunluk Modeli (SW-CMM), Sistem Mühendisliği Yetenek Modeli (SECM) ve Tümleşik Ürün Geliştirme Yetenek Olgunluk Modeli (IPD-CMM) olmak üzere üç kaynak model vardır. Sözü edilen modeller pek çok organizasyon için faydalı olmuş olmakla birlikte, modellerin birbirlerinden farklı ve entegre olmamış olmaları uygulama aşamasında çeşitli sorunlar yaratmıştır. Karşılaşılan sorunları çözmek ve bu üç kaynak modeli birleştirmek amacıyla, Amerikan Savunma Bakanlığı’nın desteğiyle Carnegie Mellon Üniversitesi’nde kurulan Yazılım Mühendisliği Enstitüsü (Software Engineering Institute – SEI) tarafından bir yazılım geliştirme standardı olarak CMMI geliştirilmiştir. Basamaklı modele ait olan olgunluk düzeyleri, tanımlanmış bir grup süreç alanı karşısında bir organizasyonun yazılım geliştirme yeteneğini kapsar. Beş olgunluk düzeyi olup, bu düzeyler 1 ile 5 arasında numaralandırılmıştır [4]. Süreç alanı (process area), kollektif olarak uygulandığında bir alan içindeki ilişkili uygulamalar (practices) kümesidir. Bu alan içinde belirgin iyileştirmeler yapmak için, önemli olarak görülen hedefler (goals) kümesi yerine getirilir. CMMI’da 25 süreç alanı mevcuttur [4][5]. Süreç alanı içindeki hedefler genel ve özel olmak üzere ikiye ayrılır. Bir genel hedef, bir sürecin kurumsallaştırılması için olması gereken karakteristikleri tanımlar. Bir özel hedef ise, bir süreç alanının temel uygulamalarının sağlanıp sağlanmadığının tespit edilmesinde kullanılmaktadır[4]. Uygulamalar, hedefleri yerine getirmede beklenen bileşenlerdir. Uygulamalar, genel ve özel olmak üzere iki sınıfa ayrılır. Bir genel uygulama, ilgili genel hedefi başarmada önemsenen bir aktivitenin tanımıdır. Bir özel uygulama ise, ilgili bir özel hedefi başarmada önemsenen bir aktivitenin tanımıdır [4]. 2.1.1. Basamaklı Gösterim CMMI’ın basamaklı gösterimi, başlangıç (initial), yönetilen (managed), tanımlı (defined), nicel yönetilen (quantitatively managed) ve eniyileşen (optimizing) olmak üzere 5 olgunluk seviyesine ayrılmaktadır. Basamaklı gösterim, ilk olarak hangi süreçlerin iyileştirileceğini bilmeyen organizasyonlar için en uygun gösterim modelidir. Çünkü basamaklı gösterim her olgunluk seviyesi için uygulanabilir süreç alanları önerir [5]. Basamaklı gösterimin yapısı Şekil 1’de verilmektedir. 2.1. CMMI’ın Yapısı CMMI, tek model olmakla birlikte sürekli ve basamaklı olmak üzere iki gösterim şekli kullanmaktadır. Sürekli (continuous) gösterim yetenek düzeylerini tanımlarken, basamaklı (staged) gösterim olgunluk düzeylerini tanımlar. Sürekli modele ait olan yetenek düzeyleri, ayrı tanımlanmış her süreç alanı içinde bir süreç geliştirme başarısını kapsar. Altı yetenek düzeyi vardır, 0 ile 5 arasında numaralandırılmıştır [4]. Şekil 1:Basamaklı Gösterim 2.1.2. Sürekli Gösterim CMMI’ın sürekli gösterimi, bir organizasyonun belirli bir süreç alanındaki başarısını ölçmek üzere, 6 yetenek YKGS2008: Yazılım Kalitesi ve Yazılım Geliştirme Araçları 2008 (9-10 ekim 2008, İstanbul) seviyesi kullanır. Bu yetenek sevileri 0 ile 5 arasında numaralandırılıp; eksik (incomplete), başlangıç (initial), yönetilen (managed), tanımlı (defined), nicel yönetilen (quantitatively managed) ve eniyileşen (optimizing) olarak adlandırılır. Sürekli gösterimde CMMI’ ın 25 süreç alanı, süreç yönetimi, proje yönetimi, mühendislik ve destek olmak üzere 4 süreç alanı kategorisine ayrılmaktadır. Sürekli gösterim, süreç alanları içinden iyileştirmek istediğimiz süreç alanlarının tek tek seçilmesine izin veren bir yaklaşımdır. Bu gösterimi kullanmak için hem kurumun hem de süreç alanlarının ve süreç alanları arasındaki ilişkilerin çok iyi bilinmesi gerekir [3]. Sürekli gösterimin yapısı Şekil 2’de verilmektedir. 3. CMMI değerlendirmesi Yazılım süreç kalitesini iyileştirmek isteyen bir firmanın dikkat etmesi gereken en önemli konulardan biri: “değerlendirme ve denetleme” dir. Şirketin hali hazır durumunun raporlandığı bir süreç olan değerlendirme, şirket dışından bir kuruluş tarafından ya da bir devlet kurumu tarafından gerçekleştirilir ise denetleme adını alır. [6] Değerlendirme raporu, şirketin ulaşılmak istenen “Süreç Kalitesi Seviyesine (örneğin CMMI L2)” göre hangi eksiklerinin “önem sırası ile” listelendiği bir dokümandır. Süreç iyileştirme çalışmalarına yön verir ve çalışmaların başarısının ve gelişmelerin takibinde kullanılır. Süreç iyileştirme çalışmalarının temelini oluşturacak olan bu raporun iyi hazırlanması hayati derecede önemlidir. [7] CMMI denetimlerinde, Süreç İyileştirme için Standart CMMI Değerlendirme Yöntemi (SCAMPI) kullanılmaktadır. SCAMPI değerlendirmesi, değerlendirmeyi yapan ekibin tecrübe ve birikimlerine göre A, B ve C olmak üzere 3 sınıfa ayrılır. Bu sınıflar ve karakteristikleri aşağıdaki Tablo 1.’de görülmektedir. Tablo 1: Değerlendirme sınıfları karakteristikleri A 8–10 kişi 10 gün B 3–4 kişi 3–4 gün Yüksek Yüksek Üretilir Yüksek Orta Üretilmez Düşük Düşük Üretilmez A sınıfı bir SCAMPI değerlendirmesi, yüksek maliyetli, zaman alan ve yoğun kaynaklı bir değerlendirmedir. Bununla beraber A sınıfı bir değerlendirme sonunda elde edilen bulgular yüksek düzeyde güvence sağlar. B sınıfı bir SCAMPI değerlendirmesi, düşük maliyetli, zaman alan ve yoğun kaynaklı bir değerlendirmedir. B sınıfı değerlendirmede daha az uzman kullanılır ve daha az proje değerlendirilir. C sınıfı bir SCAMPI değerlendirmesi, en düşük maliyetli ve gerçekleştirilmesi en kolay değerlendirmedir. Basit bir anket yapısı olarak ele alınabilir. Tüm değerlendirmeler, organizasyonun yeteneği hakkında elde edilen bulguların bir rapor olarak sunulmasını sağlar. A sınıfı değerlendirmeler organizasyonun CMMI düzeyini gösteren bir rapor sunar [8]. 4. CMMI 2. Düzey Olgunluk Değerlendirmesi için Bir Yöntem ve Uygulama Şekil 2: Sürekli Gösterim Değerlendirme Sınıfı Değerlendirme Ekibi Değerlendirme Süresi Geçerlilik Güvenilirlik Genel Ölçüm Sonuçları C 1–2 kişi 1–2 gün CMMI değerlendirmesi yaptıracak firma için iki durum söz konusudur; • Firma resmi bir değerlendirme belgesi almak istemez. Firma sadece, organizasyonunu süreç ve kalite bakımından ölçmek ister. • Firma resmi bir değerlendirme belgesi almak isteyebilir. Bu belgeyi ilk denetlemede almak için bir ön hazırlık yapar. CMMI resmi değerlendirmesi ayrıntılı bir değerlendirme olanağı sağlar, oldukça pahalıdır ve bir uzman kişi (lead appraiser) tarafından yapılması gerekir. Firmalar CMMI değerlendirmesini belirli bir ücret ödeyerek yaptırabilirler. Değerlendirme maliyeti, birçok firmanın resmi CMMI değerlendirmesinden kaçınmasına yol açmaktadır. Bu çalışmada, firmaların kendi öz denetimlerini yapabilmeleri için CMMI 2. düzey süreçleri incelenerek, sorular dizisi geliştirilmiştir. Büyük oranda 2. düzey süreç alanlarını kapsayacak şekilde toplam 39 adet soru hazırlanmıştır. Bir C sınıfı değerlendirmeye eşdeğer olan bu sorular, CMMI 2. düzey olmak isteyen bir firma için yol gösterecektir. Tüm sorular için verilecek yanıtlar aynı formattadır. Büyük oranda 2. düzey süreç alanlarını kapsayan bu sorular belirli bir işin yapılıp yapılmadığını sormaktadır. Cevaplar 5 şık olup, her şıkka verilen puan değeri aşağıda gösterilmiştir. • Kesinlikle evet = 4 puan, YKGS2008: Yazılım Kalitesi ve Yazılım Geliştirme Araçları 2008 (9-10 ekim 2008, İstanbul) • • • • Çoğu zaman = 3 puan, Düşündük ama uygulamadık = 2 puan, Emin değilim = 1 puan, Hayır = 0 puan. Soruların ve puanlandırmanın yapısı nedeniyle çok puan alma ilerilik/olgunluk düzeyinin yüksekliğini gösterir. Aşağıda bu 39 sorudan üç tanesi örnek olarak verilmektedir. • Soru 1: Proje yaşam döngüsü adımlarını tanımlıyor musunuz? • Soru 2: Yazılım gereksinimlerindeki değişiklikleri kontrol etmek için bir mekanizma var mı? • Soru 3: Yazılım projeleri için kalite güvence aktiviteleriniz var mı? 4.1. Uygulama Firmaların, CMMI 2. düzeyde olup olmadığının değerlendirilmesi amacıyla hazırlanan bu sorular, Türkiye’de süreç odaklı kalite yönetimi anlayışına sahip yazılım geliştiren 2 firmaya yöneltilmiştir. Firmalardan alınan yanıtlar, süreç bazında 4 üstünden aldığı kaba notlara ve düzey bazında lineer ağırlıklandırma yöntemiyle aldığı notlara göre değerlendirilmiştir. Değerlendirilen yazılım firmalarının kuruluş yılı ve çalışan sayısı Tablo 2’de verilmektedir. Bu yazılım firmaları farklı sektörlerde kullanılmak üzere ticari amaçlı paket yazılım programları geliştirmektedirler. Firmaların verdiği yanıtlara göre, süreç bazında 4 üstünden almış oldukları not ortalamaları aşağıdaki Tablo 3’te verilmektedir. Tablo 3: Firmaların süreç bazında 4 üstünden almış olduğu not ortalamaları Firma A B REQM 3,00 3,33 CMMI 2. Düzey Süreçler PP PMC SAM MA PPQA 1,67 3,00 1,50 2,40 0,20 3,22 3,80 3,75 3,60 3,80 Ayrıca firmaların CMMI 2. düzey için yeterli olgunluğa sahip olup olmadığını belirlemek amacıyla lineer ağırlıklandırma yöntemi kullanılmıştır. 2. düzey süreç alanları kendi aralarındaki önemine göre ağırlıklandırılmıştır. Buna göre; • REQM (3 soru), PP (9 soru), PMC (5 soru), CM (8 soru) süreçlerinin ağırlığı : %18 • PPQA (5 soru) sürecinin ağırlığı : %14 • SAM (4 soru), MA (5 soru) süreçlerinin ağırlığı : %7 olarak belirlenmiştir. Buna göre şöyle bir başarı oranı tanımlanmıştır; Ağ.Top.: Süreç ağırlığı ile o sürece ait sorulara verilen yanıtların toplamı çarpılır. Her bir süreç alanı için elde edilen sonuçların toplamı, ağırlıklı toplamı verir. m Ağ.Top. = 0,18* n ∑ REQM i i + ∑ SAM i + ∑ PPQA + i =1 p Kuruluş Yılı 1992 1984 Çalışan Sayısı 15 260 0,18* q ∑ PMCi + 0,07* i =1 i =1 r 0,07* 2. düzey olgunlukta 7 tane süreç alanı vardır. Bunlar; • REQM: Gereksinimlerin Yönetimi (Requirements Management) • PP: Proje Planlama (Project Planning) • PMC: Proje İzleme ve Kontrol (Project Monitoring and Control ) • SAM: Tedarikçi Sözleşme Yönetimi (Supplier Agreement Management) • MA: Ölçüm ve Analiz (Measurement and Analysis) • PPQA: Süreç ve Ürün Kalite Güvencesi (Process and Product Quality Assurance) • CM: Konfigürasyon Yönetimi (Configuration Management) ∑ PP + 0,18* i =1 Tablo 2: Firmaların kuruluş yılı ve çalışan sayısı Firma A Firması B Firması CM 1,00 3,75 s ∑ MA i i =1 + 0,14* i i =1 t 0,18* ∑ CM i (1) i =1 m=3, n=9, p=5, q=4, r=5, s=5, t=8, (soruların sayısı) T.Not: Firmanın bütün yanıtlara, “kesinlikle evet” demesi durumunda alacağı ağırlıklı toplam nottur. Sorulara verilen yanıtlara göre alınabilecek en fazla puan 23,32’dir. Başarı % = Ağ.Top. *100 T .Not (2) ’den hesaplanmaktadır. YKGS2008: Yazılım Kalitesi ve Yazılım Geliştirme Araçları 2008 (9-10 ekim 2008, İstanbul) İki yazılım firmasından alınan yanıtlar doğrultusunda, lineer ağırlıklandırma yöntemine göre CMMI 2. düzey süreçleri için almış olduğu notlar Tablo 4’de verilmiştir. YKGS2008: Yazılım Kalitesi ve Yazılım Geliştirme Araçları 2008 (9-10 ekim 2008, İstanbul) Tablo 4: Firmaların 2. düzey ağırlıklandırma yöntemiyle aldığı notlar CMMI 2. Düzey Süreçler REQM PP PMC SAM MA PPQA CM Ağırlıklı Toplam Tam Not Başarı Yüzdesi A Firması 1,62 2,70 2,70 0,42 0,84 0,14 1,44 9,86 23,32 42,28 bazında lineer B Firması 1,80 5,22 3,42 1,05 1,26 2,66 5,40 20,81 23,32 89,24 Tablo 4’de de görüldüğü üzere lineer ağırlıklandırma yöntemi kullanılarak yapılan değerlendirmeye göre, B firması kesinlikle CMMI 2. düzeyi sağlamaktadır. Yapılan görüşmelerde, B firmasının CMMI 3. düzeyi de sağlamış olduğu saptanmıştır. Gerçekleştirilen çalışma ile görüşme sonucunda elde edilen bulguların uyumlu olduğu ortaya çıkmıştır. A firması için ise, CMMI 2. düzeyi sağladığı söylenemez. Bu firmanın süreçlerini yeniden gözden geçirmesi ve bünyesi içinde bir kalite güvence sistemi oluşturması gerekmektedir. 5. Sonuç Bu çalışmada, firmaların kendilerini CMMI 2.düzey değerlendirmesi için bir yöntem sunulmuştur. Yazılım firmaları büyük paralar harcayarak yaptıracakları değerlendirme yerine; firma içerisinde sunulan bu yöntemi kullanarak kendilerini değerlendirebilirler. 6. Kaynaklar [1] Yücalar, F., “Süreç Odaklı Kalite Yönetimi Anlayışına Hakim Yazılım Sektöründeki Firmaların CMMI Basamaklı Modeli ile Değerlendirilmesi (Yüksek Lisans Tezi)”, Maltepe Üniversitesi, İstanbul, 2006 [2] Zubrow, D., “Current Trends in the Adoption of the CMMI Product Suite”, COMPSAC ’03: Proceedings of the 27th Annual International Conference on Computer Software and Applications, ISBN: 0-7695-2020-0, IEEE Computer Society, Washington, DC, USA, 2003 [3] Kalaycı, O., “CMMI: Yöneticiler için Doğru Sorular”, Shamrock Process Improvement and Innovation, ISBN: 978-0-9783530-0-1, Toronto, Kanada, 2007 [4] Chrissis, M. B., Konrad, M., Shrum, S., “CMMI: Guidelines for Process Integration and Product Improvement”, Addison Wesley, 2005 [5] Yoo, C., Yoon, J., Lee, B., Lee, C., Lee, J., Hyun, S., Wu, C., “An Integrated Model of ISO 9001: 2000 and CMMI for ISO Registered Organizations”, APSEC ’04: Proceedings of the 11th Asia-Pacific Software Engineering Conference (APSEC’04), ISBN: 0-7695-2245-9, IEEE Computer Society, Washington, DC, USA, 2004. [6] Aytaç T., “Appraisal Requirements for CMMI” (Teknik Rapor), Logo Business Solutions, İstanbul, Türkiye, 2002. [7] Bush M., Dunaway D., “CMMI Assessments: Motivating Positive Change”, Addison Wesley, Boston, USA, 2005. [8] Staples, M., Niazi, M., Jeffery, R., Abrahams, A., Byatt, P., Murphy, R., “An exploratory study of why organizations do not adopt CMMI”, J. System Software, Elsevier Science Inc., Vol: 80, Number: 6, Pages: 883-895, New York, NY, USA, 2007.
Benzer belgeler
Orchis morfolojik özellikleri
CMMI bir yazılım üretme metodu değildir, süreç değerlendirme modelidir. XP ise, bir yazılım üretme
metodudur. Bir firma hangi metodu uygularsa uygulasın CMMI tarafından değerlendirilebilir. Hâlbuki...
Mersis Tanıtım
İki temsil biçimi arasındaki Eşdeğerlik (equivalent staging)
ilişkisi ile olgunluk notu, belirli süreçlerde alınan yetenek
notlarından elde edilebilir.