Extreme Programming
- Türkçe karşılığı
- uç programlama
- Okunuşu
- ikstrim progreming
Günlük kullanımda çoğunlukla İngilizcesi tercih edilir.
Kısaca
Extreme Programming, eşli programlama, test odaklı geliştirme ve sürekli entegrasyon gibi mühendislik pratikleri üzerine kurulu bir Agile yöntemidir.
Extreme Programming (XP) nedir?
Genellikle XP diye anılan Extreme Programming, kanıtlanmış mühendislik pratiklerini uç noktaya taşıyan bir Agile yazılım geliştirme yöntemidir. Kod incelemesi iyiyse eşli çalışarak kodu sürekli inceleyin; test yapmak iyiyse önce testleri yazarak sürekli test edin. XP'yi Kent Beck 1990'ların sonunda Chrysler'da bir bordro projesi üzerinde çalışırken oluşturdu ve 1999 tarihli Extreme Programming Explained kitabında anlattı. Değerleri iletişim, sadelik, geri bildirim, cesaret ve saygıdır.
XP ekipleri çoğunlukla bir haftalık kısa iterasyonlarla çalışır ve küçük değişiklikleri sık sık yayınlar. Temel pratikler arasında user story'lerle planlama, eşli programlama, test odaklı geliştirme, günde birçok kez sürekli entegrasyon, sık refactoring, hayali gelecekteki ihtiyaçlar için geliştirmeyi önleyen basit tasarım, herkesin her kodu iyileştirebilmesi için ortak kod sahipliği ve sürekli fazla mesai olmadan sürdürülebilir bir tempo bulunur. XP ayrıca soruları yanıtlamak ve öncelikleri belirlemek için her zaman ulaşılabilir bir müşteri ya da müşteri temsilcisi ister.
XP, her aşçının her yemeği yapılırken tattığı, en önemli tabaklar üzerinde iki şefin birlikte çalıştığı ve menünün her hafta müşterilerin söylediklerine göre ayarlandığı profesyonel bir mutfak gibidir. Değişen gereksinimlerle karşılaşan küçük ve orta ölçekli ekiplere uygundur; TDD, sürekli entegrasyon ve refactoring gibi popülerleştirdiği pratiklerin çoğu, XP adını hiç kullanmamış ekiplerde bile artık standarttır.
Extreme Programming çoğunlukla Scrum ile karşılaştırılır. Scrum, rolleri, olayları ve bir backlog'u olan, işin organizasyonu için bir framework'tür ve kodun nasıl yazılacağı hakkında hiçbir şey söylemez; XP ise esas olarak mühendislik pratiklerine odaklanır. İkisi iyi birleşir ve birçok ekip sürecini yapılandırmak için Scrum'ı, kod kalitesini yüksek tutmak için XP pratiklerini kullanır.
Önemli noktalar
- XP, mühendislik pratikleri etrafında şekillenen bir Agile yöntemidir.
- Temel pratikler eşli programlama, TDD, sürekli entegrasyon ve refactoring'dir.
- İterasyonlar kısadır; sürümler küçük ve sıktır.
- Değerleri iletişim, sadelik, geri bildirim, cesaret ve saygıdır.
- XP, kod yazmak yerine işin organizasyonuna odaklanan Scrum'ı tamamlar.
Sık sorulan sorular
XP ile Scrum arasındaki fark nedir?
Scrum, bir ekibin işi roller, olaylar ve bir backlog aracılığıyla nasıl planlayıp organize edeceğini tanımlar, ama kodun nasıl yazılacağını tanımlamaz. XP ise eşli programlama ve test odaklı geliştirme gibi mühendislik pratiklerini tanımlar; bu yüzden birçok ekip ikisini birleştirir.
Extreme Programming'i kim geliştirdi?
XP'yi Kent Beck 1990'ların sonunda Ward Cunningham, Ron Jeffries ve diğerleriyle çalışarak geliştirdi. Beck yöntemi 1999 tarihli Extreme Programming Explained kitabında anlattı.
Extreme Programming hâlâ kullanılıyor mu?
Çok az ekip her XP pratiğini adıyla uygular, ama test odaklı geliştirme, sürekli entegrasyon, refactoring ve eşli programlama dahil temel pratikleri bugün sektör genelinde yaygın olarak kullanılıyor.
İlgili sayfalar
- Pair ProgrammingEkipler ve Süreç, s. 15Pair programming, iki geliştiricinin aynı kod üzerinde birlikte çalıştığı, birinin yazarken diğerinin işi gözden geçirip yönlendirdiği bir Agile tekniğidir.
- Test Odaklı GeliştirmeTest ve Kalite, s. 31Test odaklı geliştirme, önce başarısız bir test yazdığınız, sonra onu geçirecek kadar kod yazıp ardından tasarımı temizlediğiniz bir kodlama pratiğidir.
- AgileEkipler ve Süreç, s. 3Agile, çalışan yazılımı küçük ve sık parçalar halinde teslim eden ve planları düzenli geri bildirime göre ayarlayan bir yazılım geliştirme yaklaşımıdır.
- ScrumEkipler ve Süreç, s. 21Scrum, küçük bir ekibin tanımlı roller, olaylar ve çıktılarla ürünü sprint denen sabit uzunluklu döngülerde teslim ettiği bir Agile framework'üdür.
- RefactoringYazılım Mimarisi, s. 32Refactoring, mevcut kodun dışarıdan görünen davranışını değiştirmeden daha temiz ve bakımı kolay hâle getirmek için yeniden yapılandırılması sürecidir.
- CI/CDDevOps ve Bulut, s. 9CI/CD, kod değişikliklerini sık sık derleyen, test eden ve yayınlayan otomatik pratikler bütünüdür; yazılım kullanıcılara hızlı ve güvenli biçimde ulaşır.
Bu sayfada bir hata ya da eksik mi gördünüz?Düzeltme önerin