एक्सट्रीम प्रोग्रामिंग
एक्स्ट्रीम प्रोग्रमिंग (extreme programming) (एक्सपी) (XP) एक सॉफ्टवेयर विकास कार्यप्रणाली है, जिसका उद्देश्य उपभोक्ता की बदलती हुई आवश्यकताओं के अनुसार सॉफ्टवेयर की गुणवत्ता और प्रतिक्रियात्मकता को बढ़ाना होता है। तीव्र सॉफ्टवेयर विकास के एक प्रकार के रूप में, यह संक्षिप्त विकास चक्रों में नियमित "रिलीज़" का समर्थन करता है (टाइमबॉक्सिंग), जिसका उद्देश्य उत्पादकता में वृद्धि करना तथा जांच-बिंदु प्रस्तुत करना है, जहां उपभोक्ता की नई आवश्यकताओं को अपनाया जा सके। एक्सट्रीम प्रोग्रामिंग के अन्य तत्वों में शामिल हैं: युग्म में प्रोग्रामिंग करना या गहन कोड समीक्षा करना, पूरे कोड का ईकाई परीक्षण, जब तक विशेषताओं की सचमुच आवश्यकता न हो, उनकी प्रोग्रामिंग करने से बचना, एक सपाट प्रबंधन संरचना, कोड में सरलता और स्पष्टता, समय बीतने और समस्या की बेहतर समझ प्राप्त होने पर उपभोक्ता की आवश्यकताओं में बदलाव की अपेक्षा करना और उपभोक्ता के साथ व प्रोग्रामरों के बीच बार-बार संवाद. इस कार्यप्रणाली का नाम इस विचार के आधार पर पड़ा है कि पारंपरिक सॉफ्टवेयर इंजीनियरिंग पद्धतियों के लाभदायक तत्वों को इसमें इस सिद्धांत के अनुसार "चरम (Extreme)" स्तरों तक ले जाया जाता है कि यदि थोड़ा होना अच्छा है, तो अधिक होना बेहतर होता है। "काउबॉय कोडिंग", जो अधिक मुक्त-स्वरूप वाली तथा अनियोजित होती है, से इसका कोई संबंध नहीं है। यह "डेथ मार्च (Death March)" कार्य शेड्यूल का समर्थन नहीं करती, बल्कि इसके बजाय एक दीर्घकालिक गति पर कार्य करते रहने की वकालत करती है। आलोचकों ने इसकी अनेक संभावित कमियों का उल्लेख किया है, जिनमें अस्थिर आवश्यकताओं से जुड़ी समस्याएं, प्रयोक्ता के विवादों के लिये किसी लेखबद्ध समझौते की अनुपस्थिति और एक सकल डिज़ाइन विनिर्देश या दस्तावेज की कमी शामिल हैं।