Çevik Yazılım Geliştirme Metodolojileri
Çevik Yazılım Geliştirme
Çevik, dünyada yazılım süreçlerinin daha esnek ve daha güçlü olması için kullanılan aynı zamanda yazılım sürecini kısaltan bir yazılım geliştirme metodolojisidir. Bu metodolojide proje küçük yinelemelere ayrılır ve bu yinelemeler tek başına proje gibi düşünülerek geliştirilir. Her yinelemenin sonunda proje ekibi tarafından müşteriye proje hakkında bilgi verilir. Çevik ile her projenin 2–4 hafta sürmesi beklenmektedir. Her yinelemenin kendi çalışan bir sistem olması beklenir. Bunun sonucunda müşteriye çalışan yazılım teslim edilerek müşteri memnuniyetinin artması sağlanır.
Çevik’in hızı proje ekip çalışanlarının birbirleriyle iletişimine bağlıdır. Ayrıca projenin parçalara ayrılması geriye dönerek hataların düzeltilmesini kolaylaştırır. Genel hatlarıyla çevik metotlar verimliliği yüksek, esnek, hata oranı düşük, hızlı ve ucuz çözümler sağlamaktır.
Çevik Yazılım Geliştirme Manifestosu
Kent Beck ve değişik çevik metotların temsilcileri olan 16 arkadaşı 2001 yılında bir araya gelerek ortak noktalarını içeren bir çevik manifestosu yayınladılar. Bu manifestoda;
· Süreçler ve Araçlar yerine Bireyler ve Etkileşimler,
· Kapsamlı Belgeler yerine Çalışan Yazılım,
· Sözleşme Görüşmeleri yerine Müşteri İlişkileri,
· Plan İzleme yerine Değişikliğe Açıklığın,
daha önemli ve öncelikli olduğu söylenmiştir.
Çevik Yazılım Geliştirme Prensipleri
· Birinci öncelik, müşteriye hızlı ve sürekli olarak kullanılabilir yazılım teslimatı yapmaktır.
· Kodlamanın ilerleyen bölümlerinde de gereksinim değişiklikleri kabul edilir, esneklik vardır.
· Mümkün olduğunca kısa zaman aralıklarında çalışan, kaliteli yazılım teslimatı yapılır.
· Analistler, uzmanlar, yazılımcılar, testçiler vs. tüm ekip elemanları birebir iletişim halinde birlikte çalışırlar.
· İyi projeler motivasyonu yüksek kişiler etrafında kurulabilir. Ekibe ihtiyaç duydukları desteği ve ortamı sağlamak ve onlara güvenmek önemlidir.
· Ekip içerisinde kaliteli bilgi akışı için yüz yüze iletişim önemlidir.
· İlerlemenin birincil öncüsü çalışan bir yazılımdır.
· Çevik süreçler, sürdürülebilir geliştirmeyi destekler.
· Sağlam teknik alt yapı ve tasarım, çevikliği artırır.
· Basitli önemlidir.
· En iyi mimariler ve tasarımlar kendini organize edebilen ekipler tarafından yaratılır.
· Düzenli aralıklarla ekip kendi yöntemlerini gözden geçirir ve verimliliği artırmak için gerekli iyileştirmeleri yapar.
Çevik Yazılım Geliştirme Yaklaşımının Sağladığı Avantajları
Çevik yazılım geliştirme yaklaşımı benimsenen projelerde, yazılım ekibinin motivasyonu sürekli yüksek seviyede olur. Bu durum üretkenliği artırır ve yazılım kalitesini de artırır. Kısa sürede müşteri memnuniyeti sağlanır. Bunun yanında yazılım geliştirme maliyetleri düşer.
Yazılım Projelerinde Yaygın Uygulanan Çevik Metodolojiler
Extreme Programming
Extreme programming (XP), Kent Beck tarafından 1999 yılında yazılım geliştirme disiplini olarak ortaya çıkmıştır. XP kolay, grup içi iletişime önem veren, geri dönüşlerin daha fazla olanak sağlayan yazılım geliştirme yöntemidir.
XP’nin Temel Değerleri
a) İletişim
b) Basitlik
c) Geri bildirim
d) Cesaret
XP Pratikleri
a) Planlama Oyunu
b) Ekipte Müşteri
c) Önce Test
d) Basit Tasarım
e) Çiftli Programlama
f) Sürekli Entegrasyon
g) Kısa Aralıklı Sürümler
h) Yeniden Yapılandırma
i) Ortak Kod Sahiplenme
j) Benzetim
k) Kodlama Standartı
l) Haftada 40 Saat
Scrum
Yazılım projelerini yönetmede kullanılır. Yinelemeli ve artımlı bir çevik yazılım geliştirme metodolojisidir. Scrum, Rugby sporundaki bir hücum taktiğinin adıdır. Rugby’ de olduğu gibi Scrum’da takım toplanır, planlama oyunu oynar ve görevler dağılarak herkes tek bir hedef için çalışır. Bu taktik de amaç tüm oyuncularla birlikte topu karşı sahaya taşıyarak atak yapmaktır.
SCRUM, Jeff Sutjerland ve Ken Schawaber tarafından 90’lı yılların ortalarında geliştirilmiştir. Çevik yazılım geliştirme metodolojileriyle uygulanabilecek proje yönetim yaklaşımıdır. Scrum ilk bakışta çok basit kuralları olan yönetimsel modeldir. Bu modelin gereksinimlerin açıkça belli olmayan, değişime açık, karmaşık yazılım projelerinin yönetimi için kullanımı uygundur. Scrum esnek bir yönetim sunarak yazılım projesinde izlenmesi gereken adımların detaylı olarak açıklanmasına gerek yoktur. Karmaşık yazılım işlerini küçük parçalara bölerek geliştirmeyi savunur.
Scrum Temel Kavramlar
· Roller (roles)
- Ürün Sahibi
- Scrum Yöneticisi
- Scrum Takımı
· Toplantılar
- Koşu Planlama
- Koşu Gözden Geçirme
- Günlük Scrum Toplantısı
· Bileşenler/Araçlar
- Ürün Gereksinim Dokümanı
- Koşu Dokümanı
- Sprint Kalan Zaman Grafiği
Rational Unıfıed Process
Test Driven Development
Feature Drıven Development
Lean Development
Dynamic System Development Methodology
Microsoft Solutıon Framework
TEŞEKKÜRLER…
EMİNE ÖZTÜRK