CMMI ve Çevik Yöntemler Orhan KALAYCI Haziran 2007 http:// CMMI 2 1
XP 3 CMMI nedir? 1. Seviye 2. Seviye 3. Seviye 4 2
XP Nedir? MSF XP Şelale RUP 5 CMM XP İlişkisi 6 3
PROJE YONETİMİNİ İMİNİN EVRİMSEL GELİŞİMİ KLASIK PY : Somut Otoriter Hedefler belirli Roller sarih MODERN PY : CPM bazlı Zaman öncelikli Matrix sorunları Catışma YENI PY : Belirsizlik Kaos Girişimcilik 7 Teknoloji ağırlıklı ONCELİKLER KLERİN N DEĞİŞİMİ HEDEFLER İyi tanımlanmıştan YÖNETİM Otoriterden ÖNCELİKLER Bütçe Ağırlılıkdan Az Tanımlanmışa Katılım / Paylaşıma Zaman Ağırlıklıya 8 4
Proje YönetimininY önetiminin Tarihi http://home.gwu.edu/~kwak/pm_history.pdf 9 Büyük Resim Sorunlar Çözümler Tıbbi Kontrol ISO CMMI 9001 Yaşam Tarzı RUP MSF XP 10 5
CMMI Abartılıyor 11 XP Ne zamandır var? Hızlı Geliştirme Bireysel XP uygulamaları Karar Verme Evrimsel Geliştirme Spiral Model Projelerin özellik bazlı tanımlanması Ve planlanması Metaforlar Yazılım Geliştiriciler için fiziksel ortamlar 12 6
XP Faydası 13 Geleneksel Çevik Farkı 14 7
XP Risk Yönetimi Yazılım geliştirmede temel problem: Kaçınılmaz olarak var olan risklerin iyi yönetilmesidir. En Önemli riskler: Gecikmeler Yama tutmayan sistemler İş dünyasının yanlış anlaşılması İhtiyaç duyulmayan bir çok Özellik Projenin iptal edilmesi Hata oranı İş dünyasındaki değişiklikler İşten çıkmalar 15 XP Risk Yönetimi Gecikmeler Projenin iptal edilmesi Yama tutmayan sistemler Hata oranı İş dünyasının yanlış anlaşılması İş dünyasındaki değişiklikler İhtiyaç duyulmayan bir çok Özellik İşten çıkmalar Kısa sürüm zamanları İş açısından en anlamlı sürümlere öncelik verilmesi Anlaşılır test senaryoları Otomatik Testler Müşterinin takımın ayrılmaz bir üyesi olması Kısa sürüm zamanları Sadece en öncelikli işlerin yapılması Çift Yazılım Geliştirici 16 8
XP Yazılım Hayat Döngüsü Araştırma Düzenli Güncellemeler Planlama Bir sonraki İterasyon için Senar yolar İterasyon Devamlı Gözden Geçirme Çift Yazılım Geliştirici Test İçin Analiz Tasarım Plan Test Üretim Bakım Kapanış Senar yolar Öncelik Emek lendirme Kestirimleri Geribesleme Devamlı Bütünleştirme Test Ortak KodTabanı Küçük Sürümler Güncel Sürümler Nihai Sürüm Müşteri Onayları 17 XP Müşteri Kartı 18 9
XP Yazılım Hayat Döngüsü Araştırma Düzenli Güncellemeler Planlama Bir sonraki İterasyon için Senar yolar İterasyon Devamlı Gözden Geçirme Çift Yazılım Geliştirici Test İçin Analiz Tasarım Plan Test Üretim Bakım Kapanış Senar yolar Öncelik Emek lendirme Kestirimleri Geribesleme Devamlı Bütünleştirme Test Ortak KodTabanı Küçük Sürümler Güncel Sürümler Nihai Sürüm Müşteri Onayları 19 XP Teknik Kart 20 10
Dört Değişken Kapsam Scope Zaman Time Kalite Quality Maliyet Cost Üçünü seç birini serbest bırak XP nin Önerisi Kapsamın serbest bırakılması 21 Zaman Kutusu Time Time Boxing Yetişmeyen Kartlar Yetişmeyen Kartlar Yetişmeyen Kartlar Yetişmeyen Kartlar 6 Hft 6 Hft 6 Hft 6 Hft 22 6 Ay 11
Otomatik Test Kodu Arayüz Anforderungen Girdileri Kullanıcı Szenarien Parametrik Kullanıcı des Girdiler Anwenders Grubu Girdiler Ana Program (Kullanıcı tarafından girilen verileri kullanarak istenen çıktıları oluşturur.) Çıktılar ( Ekran Görüntülemeleri, Formatlı Listeler, Veritabanına Yerleştirilen Kayıtlar ) 23 Otomatik Test Kodu Test Verilerini Alınması (Test kodu test verilerini veritabanından alır. ) (Test verileri, ana programa parametrik gönderilir.) Test Kodu Ana Program ( Test parametresi 1 olduğu durumda kod test amaçlı çalışır. Oluşan çıktılar, bir veritabanına kaydedilir.) Karşılaştırma Test Kodu Çıktıları (Test verileri ile çalışan ana programda oluşan çıktılar veritabanına kaydedilir. ) Beklenen Değerler Test Kodu Çıktıları Test Veritabanı (Test Senaryoları Düşünülerek Hazırlanan Test Gruplarına Ait Veriler ) Kontrol Listesi Kontrol Listesi (Test Kodu ile tüm test senaryoları tamamlandıktan sonra, beklenen değerler ile test kodu çıktıları karşılaştırması yapılarak, hataların ve değişikliklerin takibi için kontrol listesi oluşturulur.) 24 12
XP Çalışma Ortamı 25 extreme Programming 26 Planlama ve Geribesleme Döngüsü Teslim Planı Aylar İterasyon Planı Haftalar Kabul Testi Günler Ayaküstü Toplantılar Bir gün İkili (çift) münazara Saatler Birim Testi Dakikalar İkili (çift) programlama Saniyeler Kod 13
Basit Tasarım Basit tasarım (0) = ilk test senaryosunu çalıştıran tasarım Basit tasarım (t) = Basit tasarım (t 1) + sıradaki ilk test senaryosunu çalıştıran tasarım Genellikle Basit tasarım (t) ile Basit tasarım (t 1) arasında ufak farklılıklar olsa da bazen büyük farklılıklara rastlanabilir bu anlara refactoring zamanı denir. 27 Sınırlar ve Roller 1 2 1 2 PO MIY Müşteri Yazılım Geliştirici 28 MIY MIY 14
Yazılım Geliştirici Hakları Gereksinimleri açık bir şekilde bilmek ve öncelikler hakkında bilgilendirilmek Her zaman için kaliteli iş yapabilmek İş arkadaşlarından, amirlerinden ve müşteriden her an yardım isteyebilmek Kendi kestirimlerini yapmak ve değiştirebilmek İş atanması yerine sorumluluğu almak (taahhüt etmek) 29 Yönetici ve Müşteri Hakları Genel planı bilmek (ne yapılabilir, ne zaman, ne maliyet ile) Her bir Yazılım Geliştirici haftasından en çok faydayı almak Çalışan yazılımı ve tanımlanan testlerin otomatik olarak geçtiğini (çalıştığını) görmek Aşırı maliyetler ödemeden fikrini değiştirmek, isteklerini yeniden tarif edebilmek Teslim süresini koruyabilmek için gecikmelerden en kısa zamanda haberdar olmak. İptal edebilmek ve ona kadar yapılan yatırım karşılığı olarak çalışır bir sistem almak 30 15
XP Kullanan Şirketler 31 Ne zaman uygulanmaz? Şirket kültürü Müşteri kültürü Yönetim kültürü Çalışma ortamı Test ortamı Proje ekibinin büyüklüğü (10 kişiden fazla) Uygun değil ise XP uygulanamaz. 32 16
CMM XP 33 CMMI XP Mark C. Paulk, Extreme Programming from a CMM Perspective, IEEE Software, November 2001 34 17
CMMI XP Mark C. Paulk, Extreme Programming from a CMM Perspective, IEEE Software, November 2001 35 CMMI XP Mark C. Paulk, Extreme Programming from a CMM Perspective, IEEE Software, November 2001 36 18
XP RUP ilişkisi? 37 CMMI RUP 38 19
Orhan Kalaycı Nitelik Danışmanlık, Kurucu Ortak, CMMI Danışmanı, 2003 Yazılım Mühendisliği Süreçleri Grup Lideri, Alcatel İstanbul, 1999 2001 Yazılım Kalite Koordinatörü, Escort Yazılım, 1998 1999 Yazılım Kalite Uzmanı, YKB Teknoloji, 1997 1998 ARGE müh. Asteğmen, MSB ARGE, 1996 1997 Yazılım Mühendisi, Tübitak MAM, 1993 1995 MSc Endüstri Müh., Boğaziçi Üniversitesi, 1995 Master Tezi: Yazılım Süreç Değerlendirmesi ve Türk Yazılım Sektöründe bir uygulaması BSc Bilgisayar Müh. Boğaziçi Üniversitesi, 1991 39 20