eXtreme Programming,
efsane mi gerçek mi? Bilgin Eşme, 23 Kasım 2004
eXtreme Programming (XP), artık iyiden iyiye yerleşmiş bir terim olmaya başladı. Ron Jeffries'in yazdığı
makale, bu yeni yazılım tekniği hakkında güzel bir özet.
XP, hafif-siklet bir yazılım geliştirme disiplinidir. Bu disiplin,
basitlik,
iletişim,
geribesleme ve
cesaret ilkelerine dayanır.
XP sürekli değişen isterler ortamında hızlı bir şekilde yazılım geliştirme ihtiyacı
duyan küçük ekipler için tasarlanmıştır.
XP kavramı bu konuda
Extreme
Programming Explained kitabını yazan
Kent Beck tarafından geliştirilmiştir.
Şurası bir gerçek ki, her ekibin yazılım geliştirme yöntemleri, o ekibin
içinde bulunduğu şartlar çerçevesinde şekillendirilmelidir. Hiçbir metodoloji,
bir kurallar zincirinin rutin şekilde uygulamasından oluşmaz. XP de (meşhur kurallarına rağmen)
bir istisna değildir.
XP'den söz edildiğinde iki ana grupta tartışma yürütülebilir:
- Belirli XP kuralları ve uygulamalar
- XP'nin arka planındaki kurallar
Bir ekip XP sistemine yeni uyum göstermeye başlıyorsa, buradaki ve sözünü ettiğim kitaplardaki
uygulamalarla başlamalarını öneririm. Bu uygulamalar, işin özünü kavrayana kadar onları belirli
bir çizgide tutacaktır. Öte yandan, meslektaşım
Don Wells XP sistemini öğrenmede daha
yumuşak bir yaklaşım sunuyor.
XP sistemini oluşturan 12 yaklaşım vardır:
Planlama Süreci
Bazen Planlama Oyunu olarak da adlandırılır. XP
Planlama Süreci, XP
müşterisinin
istenilen yazılım özelliklerinin iş akışı açısından önemini ve değerini tanımlamasına olanak verir.
Bu özellikler tanımlandıktan sonra yazılımcılar tarafından kendisine sunulan maliyet tahminlerini de
gözönünde tutarak hangi özellikleri isteyip, hangilerinden vazgeçeceğini belirler. XP sistemindeki
Planlama Süreci'nin etkisi, projenin başarıya doğru yöneltilmesinin çok kolay olmasıdır.
Küçük Sürümler
XP ekipleri, en azından basit, çalışan bir sistemi çok erken üretir ve bu prototipi çok sık
ve kısa aralıklarla günceller.
Metafor
XP ekipleri, geliştirmeyi ve iletişimi yönlendirmek için bilinen bir
isimlendirme sistemi
ve bilinen bir
sistem tanımını kullanırlar
Basit Tasarım
XP sistemi ile üretilmiş bir program, mevcut isterleri karşılayan en basit program olmalıdır.
"Gelecek için" üretilen çok fazla parça bulunmamalıdır. Bunun yerine, değer (business value)
sağlamaya odaklanılmalıdır. Elbette iyi bir tasarımı da garantiye almalısınız. Bu iş, XP sisteminde
aşağıda açıklanan
Refactoring ile yapılmaktadır.
Test / Kontrol
XP ekibi çalışmanın her anında yazılımın denetimine odaklanır. Programcılar, önce yazılımı
test eden yazılımları geliştirir, daha sonra bu test ortamındaki beklentileri karşılayan yazılım
üretilir. Müşteriler
kabul edilme kontrollerini uygular ve böylelikle istenilen özelliklere
sahip bir program aldıklarına emin olurlar.
Refactoring.
XP ekipleri, sistemin tasarımını üretim süreci boyunca geliştirmeye ve ilerletmeye devam ederler.
Bu da yazılımı "temiz" tutmakla olur:
tekrarsız,
anlaşılabilir,
basit ve bununla
birlikte
tam bir kod.
İkili Çalışma
XP yazılımcıları tüm uygulamayı çiftler halinde, iki kişi aynı makinede çalışarak yürütür. İkili
çalışmanın, tekli çalışmaya göre daha iyi bir yazılım ürünü ve daha düşük bir harcama ortaya
çıkarttığı, birçok araştırma ve deneyle ispatlanmıştır.
Kollektif Sahiplik
Bütün kod tüm programcılara aittir, yani her programcı kodun tümünden sorumludur. Bu, ekibin tam
hız gidebilmesini sağlar, çünkü herhangi bir değişiklik gerektiğinde, gecikmeden hemen yapılabilir.
Sürekli Tümleştirme
XP ekipleri, tüm sistemi gün içinde birkaç kez tümleştirir ve derler. Şaşırtıcı bir şekilde, çok sık
tümleştirme, tümleştirmede yaşanan sorunların ve dolayısıyla bu işlem için proje boyunca
harcanan zamanın da azalmasını sağlar.
Haftada 40 Saat
Yorgun programcılar daha fazla hata yapar. XP ekipleri gereğinden fazla çalışmazlar ve bu şekilde
kendilerini diri, sağlıklı ve verimli tutarlar.
Müşterinin Yanında Çalışma
Bir XP projesi, bu işe atanmış ve isterleri belirleme yetkisi ile donatılmış bir kişi tarafından
yönlendirilir. Bu şekilde, öncelikleri daha iyi belirler ve programcının aklında bir soru varsa cevaplar.
Müşterinin geliştirme ortamında bulunmasıyla, iletişim daha kolaylaşır ve belki de bir projedeki en masraflı
kalemlerden biri olan dökümantasyon ihtiyacı da ortadan kalkar.
Yazılım Standartları
Bir ekibin ikili şekilde verimli çalışması ve tüm koda sahip çıkabilmesi için, tüm kodun aynı şekilde
yazılması gerekir. Bu da yazılım standartlarının uygulanması ile olur. Bu şekilde kod ile iletişim sağlanabilir.
eXtreme Programming hakkında kaynakça ve ek bilgi için:
ek kaynaklar
Ron Jeffries
www.xprogramming.com