ENGLISH
 
eXtreme Programming

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
  Search