Web Tabanlı CMMI Süreç Yönetimi Uygulamalarının Süreç ve Yazılım Geliştirme Performansına Pozitif Etkileri Y. Müh. Cemalettin Öcal Fidanboy1, Meral Yücel1, Prof. Dr. Mehmet Reşit Tolun2 1 TÜBİTAK, Ulusal Elektronik ve Kriptoloji Araştırma Enstitüsü, Ankara 2 Çankaya Üniversitesi, Bilgisayar Mühendisliği Bölümü, Ankara [email protected], [email protected], [email protected] Özet: Bütünleşik Yetenek Olgunluk Modeli (CMMI), geliştirme süreçlerinin iyileştirilmesi amacıyla kullanılan en popüler süreç iyileştirme yetenek olgunluk modellerinden birisidir. CMMI, geliştirme, teslimat ve bakıma kadar olan tüm ürün yaşam döngüsü için kullanılabilecek en iyi pratikleri içerir. Temel amaç, etkin bir süreç yönetimi altyapısı oluşturmak, süreçleri etkin bir şekilde kullanmak ve sürekli olarak iyileştirmektir. Bu kapsamda, süreçler doğru bir şekilde tasarlanmalı ve süreç değişiklikleri zamanında yapılmalıdır. Aynı zamanda, süreçlerdeki değişiklikler ilgili personele bildirilmeli ve süreçlerin tüm personel tarafından etkin bir şekilde kullanılması sağlanmalıdır. Kurumsallaşma için, sağlam bir süreç yönetimi mekanizması gereklidir. Bu makalede, web tabanlı uygulamaların CMMI tabanlı süreç yönetimi faaliyetleri için katkısı araştırılmış ve bahsedilen uygulamaların, süreç ve yazılım geliştirme performansına sağladığı pozitif etkiler vurgulanmıştır. Bu amaçla, öncelikle, süreç yönetimi için web tabanlı uygulamaların sağladığı katkılar, CMMI süreç alanları temel alınarak incelenmiştir. Sonra, CMMI 2. Seviye süreç alanlarından birisi olan Proje İzleme ve Kontrol Süreç Alanı için bir uygulama örneği verilmiştir. Yapılan çalışma sonucunda, CMMI Modeli kullanılarak yapılan süreç yönetimi çalışmalarındaki web tabanlı uygulamaların, yazılım geliştirme yapan kuruluşlara, geliştirme personelinin performansı, yazılım kalite güvence denetimlerin etkinliğinin arttırılması, proje izleme ve kontrol faaliyetlerine etkisi, süreç eğitimlerine etkisi, projeye özgü olarak uyarlanmış süreç dokümantasyonun etkin bir şekilde kullanılması ve süreç yönetimi uygulamalarında basılı dokümantasyonun azaltılması açısından önemli katkılar sağladığı değerlendirilmiştir. Anahtar Sözcükler: CMMI, Yazılım Kalitesi, Yazılım Süreç İyileştirme, Web Tabanlı Uygulamalar The Positive Effects of Web-Based CMMI Process Management Applications for Process and Software Development Performance. Abstract: Capability Maturity Model Integration (CMMI) is one of the most popular process improvement maturity models that are used for improving development processes. CMMI consists of best practices that cover the product lifecycle through development, delivery and maintenance. The main purpose is to create an effective process management infrastructure, using the processes effectively and improving processes continually. In this context, processes and procedures must be designed correctly and the process changes must be made on time. At the same time, process changes should be forwarded in time and should be used effectively by all staff. For institutionalization, robust process management mechanism is a must. In this paper, the investigation of web-based applications for CMMI-based process management activities is aimed. The positive effects of web-based CMMI process management applications for software process and development performance are emphasized. For this purpose, first, the contributions of web-based applications are investigated from the point of CMMI. Then, an example about web-based Project Monitoring and Control (PMC) Process Area application was given. As a result of this work, it is observed that applications of webbased process management activities using CMMI process areas can make significant contributions to process management efforts of companies by increasing the development personnel performance, effectiveness of software quality assurance audits, the positive effects of projects monitoring and control activities, process trainings and process documentation. Keywords: CMMI, Software Quality, Software Process Improvement, Web-Based Application 1. Giriş Günümüzde, yazılım ve sistem geliştirme konularında üretilen kalite ve süreç yönetimi model ve standartlarına duyulan ihtiyaç günden güne artmaktadır. Özellikle, yazılım geliştirme projeleri kapsamında yaşanan başarısızlıklar, bu konuda faaliyet gösteren kurum ve kuruluşları, etkin bir yazılım kalite yönetim sistemi kurma, kuruluş süreçlerini tanımlama, tanımlanan süreçleri etkin bir şekilde yönetme ve bu süreçleri sürekli olarak iyileştirerek sistemin sürekliliğini sağlama yoluna itmiştir. Bütünleşik Yetenek Olgunluk Modeli (CMMI), özellikle bilgi teknolojileri alanında kullanılan en önemli süreç iyileştirme ve kalite yönetim modellerinden birisidir. [1]. CMMI temel alınarak yapılan süreç iyileştirme çalışmalarındaki temel amaç, etkin bir süreç yönetimi altyapısı oluşturmak, projelerde bu süreçleri etkin bir şekilde kullanmak ve yapılacak süreç iyileştirme faaliyetleri ile kuruluş süreçlerini sürekli olarak iyileştirmektir. Mühendislik, proje yönetimi, süreç yönetimi ve destek süreçlerin doğru bir şekilde tasarlanması, süreç dokümantasyonundaki değişikliklerin zamanında ve yeterli bir şekilde gerçekleştirilmesi, yapılan bu değişikliklerin süreçleri kullanacak olan personele zamanında iletilmesi ve süreçlerin ilgili tüm personel tarafından etkin bir şekilde kullanımının sağlanması ile kuruluşların kurumsal iş yapış biçimlerinin şekillenmesi, standartlaşması ve tanımlı süreçlerin kontrollü bir şekilde iyileştirilmesi mümkün hale gelmektedir. Bu makalede, CMMI süreçleri temel alınarak gerçekleştirilecek süreç yönetimi faaliyetlerinde, web tabanlı uygulamaların katkısı ve bahsedilen web tabanlı uygulamaların, süreç ve yazılım geliştirme performansına sağladığı pozitif etkiler araştırılmıştır. Bununla birlikte, CMMI 2. Seviye süreç alanlarından birisi olan Proje İzleme ve Kontrol Süreç Alanı için bir uygulama örneği verilmiştir. Yapılan çalışma sonucunda, CMMI Modeli kullanılarak yapılan süreç yönetimi çalışmalarındaki web tabanlı uygulamalarının, geliştirme personelinin performansı, yazılım kalite güvence etkinliğinin arttırılması, proje izleme ve kontrol faaliyetlerine etkisi, projeye özgü olarak uyarlanmış süreç dokümantasyonun kullanılması, süreç eğitimlerinin etkinliğinin arttırılması, denetimlerin süreç varlıklarının bakımında sağladığı kolaylıklar ve süreç yönetimi uygulamalarında kullanılan dokümantasyonun azaltılması açısından yazılım geliştirme yapan kuruluşlara katkılar sağladığı değerlendirilmiştir. 2. CMMI (Bütünleşik Modeli ) Yetenek önemli Olgunluk CMMI, dünyaca kabul görmüş en iyi pratiklerin sistematik şekilde tanımlandığı bir süreç yönetimi modelidir. Bu model, savunma endüstrisi başta olmak üzere, bilgisayar yazılımı/donanımı, bankacılık, telekomünikasyon ve otomobil üretimi gibi bir çok teknoloji alanında kullanılmaktadır. CMMI, kuruluşların güçlü ve zayıf yönlerinin analiz edilmesi amacıyla kullanılmakta olup, birçok disiplinin, tek bir süreç iyileştirme çatısı altında entegre edilmesine imkan veren bir modeldir. Bu model, kuruluşların mevcut süreçlerinin, ideal durumla kıyaslanmasını sağlayan bir araç niteliğindedir. [1]. CMMI, en iyi pratikleri vurgulamakla birlikte, bu pratiklerin kuruluşlarda nasıl uygulanacağına ilişkin bir bilgi içermez. Kuruluşlar, en yüksek süreç kalitesine ulaşmayı hedeflediklerinde, CMMI kapsamındaki gereksinimleri, kendi süreç ihtiyaçlarına göre yorumlamak ve uygulamak durumundadır [2]. Geliştirme için CMMI, ürün ve hizmetlere uygulanan geliştirme ve bakım faaliyetleri için bir referans modeldir. Bu model, yazılım mühendisliği, sistem mühendisliği ve bütünleşik süreç ve ürün geliştirme konularında genel yaklaşımları içerir [1]. CMMI kapsamında toplam 22 süreç alanı mevcuttur. Her bir süreç alanı kendi içinde genel özel amaçlara ve pratiklere sahiptir [3]. CMMI, sürekli ve basamaklı gösterim şekli olmak üzere iki tip gösterim şekline sahiptir. Her iki gösterim şekli de, model kapsamında tanımlanan temel bilgi ve kılavuzları kullanır. CMMI sürekli gösterim şekli, Süreç Yönetimi, Proje Yönetimi, Mühendislik ve Destek olmak üzere 4 süreç kategorisine ayrılır. Sürekli gösterim şekliyle, süreç alanlarının yetenek seviyeleri belirlenebilir. CMMI basamaklı gösterim şekli, kurumsal süreç iyileştirme çalışmaları için önceden tanımlanmış bir yol haritası sağlar [1]. Basamaklı gösterim şekli ile kuruluşun olgunluk seviyesini 5 ana seviye ile değerlendirmek mümkündür. 3. Süreç Yönetimi ve CMMI CMMI Süreç Yönetimi kategorisinde aşağıdaki süreç alanları yer almaktadır [1]: Kurumsal Süreç Tanımı Kurumsal Süreç Odağı Kurumsal Eğitim Kurumsal Süreç Performansı Kurumsal Yaratıcılık ve Yaygınlaştırma Kurumsal Süreç Tanımı Süreç Alanı’nın süreç yönetimi açısından temel amacı, kuruluşun kullanılabilir süreç varlıkları setini, iş ortamı standartlarını oluşturması ve bu setin sürekliliğini sağlamasıdır. Kuruluş bu süreç alanı kapsamında, CMMI süreç alanlarının önerdiği pratikler temelinde, ihtiyacı olan süreç varlıklarını (süreç tanımlamaları, iş akışları, prosedürler, formlar, şablonlar, kontrol listeleri v.b.) hazırlamalı ve bu varlıkları konfigürasyon yönetimi prensipleri dahilinde etkin bir şekilde yönetmelidir. Kurumsal Süreç Odağı Süreç Alanı’ndaki temel amaç ise, üretilen süreç varlıkları seti temelinde yapılan proje uygulamaları ile, süreçlerin planlı ve sistematik bir şekilde iyileştirilmesini sağlamaktır. Kuruluş, Kurumsal Süreç Performansı Süreç Alanı ile kurumsal ve proje için tanımlı süreçlerinin performansını ölçebilmeli ve ölçme çıktılarını süreç kurumsal süreç iyileştirme amaçlı olarak kullanmalıdır. Kurumsal Eğitim Süreç Alanı kapsamında verilen süreç eğitimleri ile, süreçlerin kuruluş personeli tarafından etkin bir şekilde kullanılabilmesi sağlanmalıdır. Kurumsal Yaratıcılık ve Yaygınlaştırma Süreç Alanı ile de, kuruma katma değer sağlayan yaratıcı iyileştirmeler seçilmeli, analiz edilmeli ve kurum bazında yaygınlaştırılmalıdır. 4. CMMI Süreç Yönetimi Uygulamalarında Web Tabanlı Uygulamaların Sağladığı Pozitif Etkiler CMMI kapsamındaki süreç yönetimi uygulamalarında, süreçlerin doğru bir şekilde tasarlanması, süreç dokümantasyonundaki değişikliklerin zamanında ve yeterli bir şekilde gerçekleştirilmesi, yapılan bu değişikliklerin süreçleri kullanacak olan personele zamanında iletilmesi ve süreçlerin ilgili tüm personel tarafından etkin bir şekilde kullanımının sağlanması, etkin bir süreç yönetimi için en önemli hususları oluşturmaktadır. Süreç yönetimi altyapısının web tabanlı bir şekilde oluşturulması, sayılan bu hususların etkinliğinin arttırılmasında önemli bir rol oynayacaktır. Günümüzde, yazılım süreçlerin web tabanlı olarak modellenmesine imkan verecek bir çok araç bulunmaktadır. Bahsedilen bu araçlar ile, mevcut süreç varlıklarının web tabanlı bir ortamda yönetilmesi mümkün olmaktadır. Web tabanlı süreç yönetimi uygulamaları ile, süreçlerle sağlanan bilgiye daha kolay ve hızlı bir şekilde ulaşılabilmekte, süreçlerin girdi-çıktıları net bir şekilde izlenebilmekte, süreçteki adımlardan sorumlu personelin yapacağı faaliyetler daha kolay ve akıcı bir şekilde takip edilebilmektedir. Web tabanlı süreç yönetimi uygulamalarının sağladığı pozitif etkilerin başında, geliştirme personelinin sisteme dahil olmasında sağladığı katkılar gelmektedir. Geliştirme personeli, birçok nedenlerle süreç bilgisine en kısa yoldan ulaşmak istemekte ve çoğu zaman, basılı olarak hazırlanmış veya elektronik ortamda olsa dahi kendisine fazlaca karmaşık gözüken süreç dokümantasyonunu takip etmekte zorlanmaktadır. Web tabanlı süreç yönetimi uygulamaları sayesinde, personelin sisteme daha kolay entegre olması sağlanabilmekte ve süreç kapsamında kendisinden beklenen görevleri daha yeterli şekilde yerine getirdiği görülmektedir. Web tabanlı süreç yönetimi uygulamalarının, yazılım kalite güvence denetimleri açısından da oldukça önemli avantajları bulunmaktadır. Kalite güvence denetimlerinde temel amaç, süreçlerin uygulanmasını ve süreçlerle ilgili iş ürünlerinin oluşturulmasını güvence altına almaktır. Kalite güvence denetimlerinde, Proje Kalite Yöneticisi’nin süreçler arasındaki ilişkileri çok net bir şekilde görmesi gereklidir. Bir süreçte üretilen çıktının, diğer bir sürece girdi sağladığı dikkate alındığında, web tabanlı denetimlerin süreç uygunsuzluğu veya iyileştirme önerisi tespitinde oldukça önemli bir rol oynadığı açıkça görülecektir. Bu açılardan bakıldığında, yazılım kalite güvence denetimlerinin web tabanlı süreç yönetimi ortamları ile yapılması, denetim performansını ve denetimlerden beklenen çıktıların kalitesini pozitif yönde arttıracaktır. Proje izleme ve kontrol faaliyetlerinde, Proje Yöneticileri tarafından, çoğu zaman süreç bilgisine ihtiyaç duyulmakta ve bu bilgiye çabuk ve pratik bir şekilde ulaşılmak istenmektedir. Proje Yöneticisi, süreç uygulamaları kapsamında karşılaştığı bir problemde, web tabanlı süreç yönetimi uygulamaları sayesinde, süreç bilgisine en kısa zamanda ulaşılabilmekte ve ihtiyacı olan bilgiyi kolay bir şekilde elde edebilmektedir. Şekil 1. CMMI Proje İzleme ve Kontrol Süreç Alanı için Web Tabanlı Bir Uygulama Örneği Web tabanlı süreç yönetimi uygulamaları, süreç eğitimlerinin arttırılmasında önemli bir rol oynamaktadır. Bu uygulamalar sayesinde personel, süreçler arasındaki ilişkileri ve kendisinin üstleneceği rolleri açık bir şekilde göreceği için, verilen süreç eğitimlerimin performansı oldukça yüksek olmaktadır. CMMI, kurumsal süreç varlıkları seti içinden seçilen projeye özgü süreçlerin belirlenmesini ve proje personelinin, proje ihtiyaçlarına göre uyarlanmış süreç varlıklarını kullanmasını istemektedir. Web tabanlı uygulamalar sayesinde, proje personeli, projesi için gerekli olan tüm süreç varlıklarına kolay bir şekilde ulaşabilmektedir. 5. Sonuç olarak, CMMI Modeli kullanılarak yapılan süreç yönetimi çalışmaları kapsamındaki web tabanlı uygulamaların, geliştirme personelinin performansı, yazılım kalite güvence denetimlerin etkinliğinin arttırılması, proje izleme ve kontrol faaliyetlerine etkisi, süreç eğitimlerine etkisi, projeye özgü olarak uyarlanmış süreç dokümantasyonun kullanım etkinliğinin arttırılması ve süreç yönetimi uygulamalarında kullanılan dokümantasyonun azaltılması açısından, yazılım geliştirme yapan kuruluşlara önemli katkılar sağladığı değerlendirilmiştir. 6. Etkin bir kalite yönetim sisteminden beklenen sonuç; en az dokümantasyonla, en etkin süreç uygulamalarının yapılmasıdır. Bu açıdan bakıldığında, web tabanlı süreç yönetim uygulamaları ile, dokümantasyon en aza indirilebilmekte ve buna paralel olarak süreç varlıklarının bakımı çok daha kolay hale gelmektedir. Sonuç ve Öneriler Kaynaklar [1] CMMI Product Team, “CMMI for Development, Version 1.2”, Carnegie Melon University, Software Engineering Institute, (2006). [2] Chrissis M.B., Konrad M., Shrum S., “CMMI Second Edition, Guidelines for Process Integration and Product Improvement”, SEI Series in Software Engineering, Addison Wesley, (2007). [3] Ahern D. M., Clouse A., Turner R., “CMMI Distilled: A Practical Introduction to Integrated Process Improvement, Third Edition”, Addison Wesley Professional, (2008).