Extreme Programming (XP), çevik bir yazılım geliştirme metodolojisidir. Müşteri memnuniyetini ve değişen gereksinimlere hızlı adaptasyonu ön planda tutar. Kısa geliştirme döngüleri, sık geri bildirim ve ekip işbirliğine odaklanır.
Temel Prensipleri:
Basitlik: (https://www.nedemek.page/kavramlar/basitlik) Gereksiz karmaşıklıktan kaçınarak, sadece mevcut gereksinimleri karşılayan en basit çözümü tasarlamak.
İletişim: (https://www.nedemek.page/kavramlar/iletişim) Geliştiriciler, müşteriler ve diğer paydaşlar arasında sürekli ve açık iletişimi sağlamak.
Geri Bildirim: (https://www.nedemek.page/kavramlar/geri%20bildirim) Sık sık testler ve müşteri demoları ile geri bildirim almak ve bu geri bildirimlere göre yazılımı geliştirmek.
Cesaret: (https://www.nedemek.page/kavramlar/cesaret) Zor kararlar almak, eski kodları yeniden düzenlemek veya gerekiyorsa farklı bir yaklaşım denemek için cesur olmak.
Saygı: (https://www.nedemek.page/kavramlar/saygı) Ekip üyelerinin birbirine, müşterilere ve geliştirme sürecine saygı duyması.
Temel Uygulamaları:
Planlama Oyunu (Planning Game): (https://www.nedemek.page/kavramlar/planlama%20oyunu) Müşteri ve geliştiricilerin birlikte gereksinimleri belirlediği ve önceliklendirdiği bir süreçtir.
Küçük Sürümler (Small Releases): (https://www.nedemek.page/kavramlar/küçük%20sürümler) Yazılımı sık sık, küçük parçalar halinde yayınlamak.
Metafor: (https://www.nedemek.page/kavramlar/metafor) Sistem için ortak bir anlayış yaratmak için kullanılan bir hikaye veya model.
Basit Tasarım (Simple Design): (https://www.nedemek.page/kavramlar/basit%20tasarım) En basit, işlevsel ve test edilebilir tasarımı oluşturmak.
Test Odaklı Geliştirme (Test-Driven Development - TDD): (https://www.nedemek.page/kavramlar/test%20odaklı%20geliştirme) Kod yazmadan önce test senaryolarını yazmak.
Refactoring: (https://www.nedemek.page/kavramlar/refactoring) Kodu daha okunabilir, bakımı daha kolay ve daha verimli hale getirmek için sürekli olarak iyileştirmek.
Çift Programlama (Pair Programming): (https://www.nedemek.page/kavramlar/çift%20programlama) İki geliştiricinin aynı bilgisayar başında birlikte kod yazması.
Ortak Kod Sahipliği (Collective Code Ownership): (https://www.nedemek.page/kavramlar/ortak%20kod%20sahipliği) Herkesin kod tabanının herhangi bir bölümünü değiştirme sorumluluğuna sahip olması.
Sürekli Entegrasyon (Continuous Integration - CI): (https://www.nedemek.page/kavramlar/sürekli%20entegrasyon) Geliştiricilerin kodlarını sık sık (genellikle her gün) paylaşılan bir depoya entegre etmesi.
40 Saatlik Hafta (40-Hour Week): (https://www.nedemek.page/kavramlar/40%20saatlik%20hafta) Tükenmişliği önlemek ve sürdürülebilir bir çalışma hızı sağlamak için fazla mesai yapmaktan kaçınmak.
Müşteri Ortamda (On-site Customer): (https://www.nedemek.page/kavramlar/müşteri%20ortamda) Müşterinin geliştirme ekibiyle sürekli iletişim halinde olması ve gereksinimleri netleştirmesi.
Avantajları:
Dezavantajları:
Extreme Programming, yazılım geliştirme sürecinde esneklik, kalite ve müşteri odaklılık arayan ekipler için güçlü bir araç olabilir.