CMM ve eXtreme Programming

Nitelik, Bilişim 2003'e yazılım kalitesi alanından son derece güncel bir bildiriyle katıldı. Genel Müdür Orhan Kalaycı, Bilişim Kurultayı'nda sunduğu bildiride CMM ve XP (eXtreme Programming) kavramları arasındaki ilintiyi irdeledi. Konuyla ilgili olarak Orhan Kalaycı ile (Bilişim öncesinde) yaptığımız görüşmeyi sunuyoruz:

Bilişim yalnızca bir fuardan ibaret değil. Kurultay bölümü de var. Bize biraz Bilişim’in bu yönünden söz edebilir misiniz? Beylikdüzü'ndeki Bilişim Fuarı, bilişim firmalarının son kullanıc ile buluştukları ve ürünlerini tanıttıkları bir organizasyon. Bilişim Kurultayı ise, firmaların kendi aralarında bilgi alışverişinde bulundukları sektör içi bir haberleşme ve bilgilenme çalışması olarak tanımlanabilir. Sanırım, bu yıl Türkiye Bilişim Derneği, yeni bir yaklaşım deneyecek ve Bilişim Haftası etkinlikleri ile Beyoğlu, İstiklal caddesinde çeşitli faaliyetler düzenleyecek. Bu faaliyetlerin bazılarının daha çok yine kullanıcıya ve bir miktar da sektör içi bilgilendirmeye yönelik olacağını sanıyorum.

Bu yıl Kurultay’a Nitelik de katkıda bulunacak. Nitelik’in Bilişim gündeminde neler var? Kurultaya ilk defa 1996 yılında "Yazılım Şirketlerinde Toplam Kaliyete Giden Yol: CMM" isimli bildiri ile katılmıştım. Bu yıl Nitelik olarak katılacağız. Amacımız, Türk yazılım sektörünün uluslararası pazarda rekabet gücünü arttırmak üzere kalite modellerini başarılı bir şekilde uygulamasına ve başarılarını uluslararası sertifikalarla kanıtlamasına katkı sağlamaktır. Hedefimiz, 2007 yılından önce en az bir Türk Yazılım şirketinin CMM L4 seviyesine ulaşmasına doğrudan ve etkin katkıda bulunmaktır. Nitelik, bu yılki Bilişim'de "Yazılım Kalitesinin Türk Yazılım Sektörünün Dünyaya Açılmasındaki Önemi" konulu bir panele konuşmacı olarak katılacak ve "CMM ve XP (Extreme Programming" başlıklı teknolojik bir bildiri sunacaktır. Önümüzdeki bir kaç yıl içinde dünyanın ve Türkiye'nin bilişim sektöründe CMM ve XP'nin en önemli gündem maddeleri olacağına inanıyoruz.

Nedir Extreme Programming? Extreme Programming, kısaca XP, aslında yazılım geliştiren herkesin iç güdüsel olarak izlediği/izlemek istediği bir yaklaşımın resmi olarak tanımlanmış halidir. Yazılım geliştiren herkes bilirki, "kodlama" geliştirmenin sabırsızlıkla beklenen kısmıdır. Aksi bir baskı olmadığı takdirde yazılım mühendisleri, programcılar "kodlama" ya hemen başlamak eğilimdedirler. Biz, yazılım kalitecileri, yıllarca bu eğilimi, yanlış, hatalı ve kaçınılması gereken bir kötü alışkanlık olarak değerlendirdik. XP ise bunun tam aksini öneriyor. Müşteri isteklerinin en önemli kısmının öncelikle belirlenmesini, kodlanmasını, test edilmesini ve çalışır duruma getirilmesini ve çalışan kod bozulmadan (çalışmasına devam ettiği testler ile kontrol edilerek) müşterinin diğer istekleri bunun üzerine yine çalışır bir kod ilave edilerek müşteriye teslim edilecek son ürüne doğru ilerlemek XP nin temel felsefesidir. XP'nin prensipleri basittir ama başarı ile uygulanması için ileri derecede yetişmiş bilgili elemanlara ihtiyaç duyar. XP’nin dört temel taşı şunlardır:

  • İletişim: Yüz yüze iletişim taviz verilemez bir gerekliliktir. Yüz yüze iletişimi engelleyecek her türlü kısıt kesinlikle ortadan kaldırılmalıdır.

  • Basitlik: Basitlik, yapılmaması gereken işlerin maximum düzeye çıkarılması sanatıdır. Yapılmaması gerekli olmayan bir şey kesinlikle yapılmamalıdır.

  • Geri Besleme: Sık sık projelerde yazılım ekibi ile müşteri önemli bir sorunları olduğunu ürün teslim tarihinden çok kısa bir süre önce keşfederler. XP de her hafta müşteriye çalışan bir ürün teslim edilmesi hedeflendiğinde ürün üzerinden müşteri ile yazılım ekibinin ortak bir zeminde buluşmaları en baştan kolaylaştırılır.

  • Cesaret: Yazılım projeleri genellikle başarısız olur. Başarısız olmak kaçınılması gereken bir durum değildir. Doğaldır. Başarısızlıktan korkan ekipler yavaş haraket ederler, genellikle başarısızlığı ortadan kaldırmaz sadece geçiktirirler. Başarısızlığa mümkün olduğunca erken uğramak daha sonra telafi etme şansını arttırır. XP, başarısızlıktan korkmayı değil en kısa zamanda başarısız olmayı ve onu en kısa zamanda telafi etmeyi önerir.

Extreme Programming konusunu çok önemsediğiniz anlaşılıyor. Neden? Evet, Extreme Programming'i (XP'yi) çok önemsiyoruz. CMM şirketin kurumsal yapısını, yönetsel süreçlerinin başarısını ölçmek için yöntemler sunarken, XP yazılım geliştirme süreçi konusunda çözümler önermektedir. CMM ile XP birlikte yazılım firmalarına komple bir çözüm oluşturmaktadır. CMM, özellikle ABD pazarında yıllardır kendini kanıtlamış ve kabul görmüştür. XP'nin de önümüzdeki yıllarda yazılım geliştirmede yeni bir paradigma olarak benimseneceğini düşünüyoruz. Nesne tabanlı yazılım tasarımı ilk çıktığında nasıl büyük bir ilgi ile karşılanmış ise XP'de şu anda dünya yazılım literatüründe aynı şekilde ani bir sıçrama ile gündeme girmiştir. Açıkcası, biz kalitecilerin yıllardır savunduğu Şelale (Waterfall) ya da Aşamalı (Incremental) geliştirme, sanayi devrimi disiplerinden özellikle inşaat sektöründen edinilen proje yönetimi tecrübeleri sonucu önerilen yöntemlerdir. Sanırım, XP ve genel olarak çevik geliştirme yöntemleri, bilgi çağı disiplerinin, özellikle yazılım sektörünün proje geliştirme yöntemi olacaktır.

Tüm bunların CMM ile nasıl bir bağlantısı var? Aslında, CMM ile XP, yazılım firmasının farklı alanlarına hitap ediyorlar. CMM, kurumsallaşma ve yönetim yapısı ile ilgilenirken, XP doğrudan yazılım geliştirme ile ilgileniyor. Diğer, en önemli farklılık ise, CMM kurumun sorunlarını saptamaya odaklı olmasına ve doğrudan çözüm önermekten özellikle kaçınmasına karşın, XP açık ifadeler ile çözümler önermektedir. Literatürde bir çok defalar CMM ve XP ilişkisi incelenmiş ve CMM ile XP nin birbirini tamamladığı sonuçuna varılmıştır. CMM ya da CMM, yönetsel süreçlere önem verir demiştik. XP, yazılım geliştirmeye getirdiği yeni paradigma ile, yazılım projelerinin yönetimi çok kolaylaştırmış böylece CMM'nin üzerinde hassaslıkla durduğu bir çok konuyu sorun olmaktan çıkarmıştır. Örneğin, müşteri isteklerinin takibi, proje planlama, proje takip gibi CMM 2. seviye süreçleri, XP'nin küçük sürümleri ile devamlı çalışan bir kod önermesi ile çok kolaylaşmakta ve doğal olarak sorun olmaktan çıkmaktadır. XP'yi bütün yönleri ile tam olarak uygulayan bir yazılım firması CMM ya da CMM 3. Seviye'ye çok yaklaşmaktadır. Elbette, XP'de söz edilmeyen ve CMM'nin özellikle üzerinde durduğu bazı süreçler vardır. Örneğin, eğitim, alt yüklenici yönetimi süreçleri XP de karşılık bulamamaktadır.

Bilişim katılımcıları, Kurultay’da Nitelik’in yapacağı sunuşları neden kaçırmamalı? Yazılım dünyası şu anda bu iki modeli çok derinden tartışıyor ve bu ilgi giderek büyüyecek. Türk yazılım sektörü, dünyadaki trendlerden uzak kalmamalı ve bu tartışmaları sıcağı sıcağına takip etmelidir. Önümüzdeki birkaç yıl içinde yazılım satın alanların, firmalardan CMM 2. ve 3. seviye belgelerini istemeleri hiç sürpriz olmayacaktır. Gartner grubunun bu konudaki öngörüleri de bu yöndedir. Yazılım firmalarının kendi iç işleri açısından baktığımızda, önümüzdeki bir kaç yıl içinde XP kullanan firmalar, artan müşteri memnuniyeti, daha hızlı ve daha az adamla teslim edebilmeleri ile rakiplerine avantajlar sağlayacaklardır. Türk yazılım firmalarına her iki konuda da mümkün olduğunca bilgilenmelerini ve bir an önce harekete geçmelerini tavsiye ediyorum.

-Nerede ve ne zaman yapacaksınız bu sunuşları? CMM ve XP konusundaki sunuşumuz, 5 Eylül Cuma 15.00 15.30 Askeri Müze, Kırmızı Salon, Harbiye (www.bilisimhaftasi.org.tr/program_uygulama.html) Ayrıca, 2 Eylül Salı 10.00-13.00 Askeri Müze, Parke A, Harbiye (www.bilisimhaftasi.org.tr/program_toplu.html ).