Aşırı programlama, yazılım geliştirmenin en yeni yöntemlerinden biridir. Ticari değeri ve kaliteyi vurgulayarak geleneksel yazılım geliştirme yöntemlerini geliştirmeyi amaçlar. Bu programlama yöntemi, işletme gereksinimlerini karşılayan, haftalar kadar kısa bir süre içinde eksiksiz ve hatasız yazılım parçaları sağlamaya çalışır.
Geleneksel yazılım geliştirme yönteminde, bir proje aylarca veya yıllarca sürer. Bir analist ekibi, kullanıcılardan tüm gereksinimleri almaya çalışır. Daha sonra, bir grup tasarımcı sistemin geniş yapısını yaratır. Bundan sonra, programcılar bu yapıdaki sistemi kodlarlar. Test cihazları daha sonra kodun hatasız olduğundan emin olur ve gereksinimleri karşılar.
Geleneksel gelişimde karşılaşılan temel sorun, kullanıcıların kendilerinin gereksinimleri hakkında her zaman net olmadıklarından ve gereksinimlerin çoğu zaman yazılımı oluşturması için geçen süre boyunca değişmesidir. Farklı insanlar farklı aşamalarda yer alır ve dokümantasyon neredeyse hiç tamamlanmaz, bu nedenle sonraki aşamalardaki insanlar önceki aşamalarda insanların düşünce sürecini çözemezler. Bu, düşük kaliteli yazılımın yanı sıra düşük işletme değeriyle sonuçlanır.
Alışılmış olarak, aşırı programlama, birkaç hafta içinde sıklıkla yapılan yazılım teslimatlarını içerir. Motivasyon, bazı kritik iş gereksinimlerini karşılayan tam çalışan bir yazılım sağlamaktır. Gereksinimlerdeki değişiklik bir sonraki teslimatta yerine getirilebilir.
Aşırı programlama veya kısaca XP, programlama yapmadan önce testler yazarak kaliteyi vurgular. Yazılım yazıldığı gibi, kod günde birçok kez gözden geçirilir ve test edilir. Tüm yazılım bir araya getirilir ve günde bir veya birkaç kez test edilir. Bu, yazılımın hiçbir bölümünün sistemi çökertmemesini sağlamak için yapılır.
Aşırı programlamanın bilinen yönlerinden biri, iki programcının bir bilgisayarda birlikte çalıştığı çift programlamadır. Bu yaklaşım sayesinde yazılımın yaratılmasına giren düşünce süreci, tasarlama ve kodlama anında kontrol edilir. Herhangi bir yazılım geliştirme sorumluluğu paylaşılmaktadır.
Bu geliştirme yöntemiyle, yazılım basit bir tasarımla başlar ve ek iş gereksinimlerini karşılamak için gelişir. Özelliklerin oluşturulması, gerçekten yüksek öncelik haline gelinceye kadar önlenir. Vurgu tam sistemler oluşturmak için ekip çalışmasına odaklanır, bu nedenle her ekip üyesi her gün analist, tasarımcı, programcı ve testçi rolünü oynar. Programlama ekibi içinde ve programcılar ile yazılımın teslim edildiği kullanıcılar arasında yoğun bir iletişim vardır.
Bu programlama yönteminde, yeniden yapılandırma kavramı çok vurgulanmaktadır. Yeniden düzenleme, koda iyi bir yapı kazandırmak ve çıktıyı etkilemeden anlaşılmasını kolaylaştırmak için yapılan dahili kod iyileştirmedir. Aşırı programlamaya dahil olan tüm işlerin geceleri ve hafta sonları olmadan sürdürülebilir bir hızda yapılması beklenmektedir. Bu, morali arttırır ve hata olasılığını azaltır.
Ekstrem programlama adını, faydalanıcılardan yararlanmak için programcıların ne kadar iyi çalıştığının olumlu yönlerinin uç noktaya alındığı fikrinden alır. Bu geliştirme yöntemi birçok yazılım sisteminde oldukça etkili olmuştur. Bu hala yeni bir metodoloji olduğundan uygulamaları sürekli gelişmektedir.


