ⓘ एक्सट्रीम प्रोग्रामिंग. एक्स्ट्रीम प्रोग्रमिंग एक सॉफ्टवेयर विकास कार्यप्रणाली है, जिसका उद्देश्य उपभोक्ता की बदलती हुई आवश्यकताओं के अनुसार सॉफ्टवेयर की गुणवत् ..

                                     

ⓘ एक्सट्रीम प्रोग्रामिंग

एक्स्ट्रीम प्रोग्रमिंग एक सॉफ्टवेयर विकास कार्यप्रणाली है, जिसका उद्देश्य उपभोक्ता की बदलती हुई आवश्यकताओं के अनुसार सॉफ्टवेयर की गुणवत्ता और प्रतिक्रियात्मकता को बढ़ाना होता है। तीव्र सॉफ्टवेयर विकास के एक प्रकार के रूप में, यह संक्षिप्त विकास चक्रों में नियमित "रिलीज़" का समर्थन करता है, जिसका उद्देश्य उत्पादकता में वृद्धि करना तथा जांच-बिंदु प्रस्तुत करना है, जहां उपभोक्ता की नई आवश्यकताओं को अपनाया जा सके।

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

आलोचकों ने इसकी अनेक संभावित कमियों का उल्लेख किया है, जिनमें अस्थिर आवश्यकताओं से जुड़ी समस्याएं, प्रयोक्ता के विवादों के लिये किसी लेखबद्ध समझौते की अनुपस्थिति और एक सकल डिज़ाइन विनिर्देश या दस्तावेज की कमी शामिल हैं।

                                     

1. इतिहास

एक्सट्रीम प्रोग्रामिंग का निर्माण केंट बेक द्वारा क्रिस्लर कॉम्प्रिहेन्सिव कम्पेन्सेशन सिस्टम Chrysler Comprehensive Compensation System सीC3 वेतन भुगतान परियोजना पर अपने कार्य के दौरान किया गया था। मार्च 1996 में बेक सीC3 परियोजना प्रमुख बने और उन्होंने परियोजना में प्रयुक्त विकास विधि को परिष्कृत करना प्रारंभ किया तथा इस विधि पर एक पुस्तक लिखी अक्टूबर 1999 में, एक्सट्रीम प्रोग्रामिंग एक्सप्लेन्ड Extreme Programming Explained का विमोचन हुआ)। डैम्लर-बेंज़ द्वारा कम्पनी को अधिग्रहित कर लिये जाने के बाद क्रिस्लर ने फरवरी 2000 में सीC3 परियोजना निरस्त कर दी।

हालांकि एक्सट्रीम प्रोग्रामिंग स्वयं ही अपेक्षाकृत नई है, फिर भी इसकी अनेक पद्धतियां कुछ समय से प्रयोग की जाती रहीं हैं; आखिर इसकी कार्यप्रणाली "सर्वश्रेष्ठ पद्धतियों" को चरम स्तरों की ओर ले जाती है। उदाहरणार्थ, "टेस्ट-फर्स्ट विकास, नियोजन और प्रत्येक लघु-वृद्धि के पूर्व परीक्षण लिखने की पद्धति" का प्रयोग 1960 के दशक के प्रारंभ में नासा NASA के प्रोजेक्ट मर्क्युरी के समय से किया जाता रहा है।Larman 2003 पुनर्रचना Refactoring, प्रमापीयता Modularity, बॉटम-अप तथा वृद्धिशील Incremental डिज़ाइन का वर्णन लियो ब्रॉडि ने 1984 में प्रकाशित अपनी किताब में किया है।

                                     

1.1. इतिहास उत्पत्तियां

1990 के दशक में हुए सॉफ्टवेयर विकास को मुख्यतः दो बातों ने आकार दिया: आंतरिक रूप से उद्योग के कुछ लोगों द्वारा पसंद किये जाने वाले प्रोग्रामिंग प्रतिमान के रूप में प्रोसीजरल प्रोग्रामिंग का स्थान ऑब्जेक्ट-अभिमुख प्रोग्रामिंग ने ले लिया; बाह्य रूप से, इंटरनेट के उदय और डॉट-कॉम बूम ने प्रतिस्पर्धात्मक कारकों के रूप में बाज़ार-की-ओर-तेज़ी तथा कम्पनी-के-विकास पर ज़ोर दिया। तेज़ी से बदलती आवश्यकताएं संक्षिप्त उत्पाद जीवन-चक्र की मांग कर रहीं थीं और अक्सर सॉफ्टवेयर विकास की पारंपरिक विधियों के साथ असंगत थीं।

क्रिस्लर कॉम्प्रिहेन्सिव कम्पेन्सेशन सिस्टम की शुरुआत अनुसंधान के विषय के रूप में क्रिस्लर के वेतन-तंत्र का प्रयोग करके ऑब्जेक्ट प्रद्योगिकियों के सर्वश्रेष्ठ मार्ग का निर्धारण करने के लिये की गई थी, जिसमें भाषा के रूप में स्मॉलटॉक Smalltalk तथा डेटा अभिगम परत के रूप में जेमस्टोन Gemstone का प्रयोग हुआ था। इसमें सिस्टम के प्रदर्शन में सुधार के लिये केंट बेक को लाया गया, जो कि स्मॉलटॉक के एक प्रसिद्ध प्रयोगकर्ता थे, लेकिन जब उन्होंने उनकी विकास प्रक्रिया में विभिन्न समस्याओं को देखा, तो उनकी भूमिका बढ़ गई। इस अवसर का लाभ उठाते हुए उन्होंने उनकी पद्धतियों में कुछ परिवर्तन प्रस्तावित व क्रियान्वित किये, जो अपने नियमित सहयोगी वार्ड कनिंघम के साथ किये गये उनके कार्य पर आधारित थे। बेक इन विधियों की प्रारंभिक अवधारणा का वर्णन इस प्रकार करते हैं:

इन विधियों को विकसित व परिष्कृत करने में सहायता प्रदान करने के लिये बेक ने रॉन जेफ्रिस को परियोजना में आमंत्रित किया। इसके बाद जेफ्रिस ने इन पद्धतियों को सीC3 टीम की आदतों में शामिल कराने के लिये आवश्यक प्रशिक्षण देने वाले प्रशिक्षक का कार्य किया।

एक्सपी XP की पृष्ठभूमि में स्थित सिद्धांतों और पद्धतियों से संबंधित जानकारी को मूल विकि Wiki, कनिंघम की विकिविकिवेब WikiWikiWeb पर चर्चाओं के द्वारा व्यापक तौपर विश्व-भर में प्रचारित किया गया। विभिन्न योगदानकर्ताओं ने इस पर चर्चा की और अपने विचार विस्तारित किये, तथा इसके परिणामस्वरूप कुछ अतिरिक्त कार्यप्रणालियों का निर्माण हुआ तीव्र सॉफ्टवेयर विकास देखें। साथ ही, अनेक वर्षों से, लगभग 1999 से, एक्सपी XP की अवधारणायें " पर स्थित एक्सपी XP की वेबसाइट पर एक हाइपर-टेक्स्ट सिस्टम मानचित्र की सहायता से भी स्पष्ट की जातीं रहीं हैं।

बेक ने एक्सपी XP पर लिखी गई पुस्तकों की एक श्रृंखला का संपादन किया, जिसकी शुरुआत उनकी स्वयं की पुस्तक एक्स्ट्रीम प्रोग्रामिंग एक्सप्लेन्ड Extreme Programming Explained से हुई 1999, ISBN 0-201-61641-6, जिससे यह ज्ञान बहुत बड़े, परंतु फिर भी ग्रहणशील दर्शकों तक फैला. इस श्रृंखला में लेखकों ने एक्सपी XP और इसकी पद्धतियों से जुड़े अनेक पहलुओं पर ध्यान दिया। यहां तक कि इन पद्धतियों पर एक विवेचनात्मक पुस्तक भी लिखी गई।

                                     

1.2. इतिहास वर्तमान स्थिति

1990 के दशक के अंतिम दौर तथा 2000 के दशक के प्रारंभिक काल में एक्सपी XP ने एक रोमांच उत्पन्न किया, जिसका कारण ऐसे अनेक वातावरणों का अभिग्रहण था, जो मूलतः इसकी उत्पत्ति से भिन्न थे।

मूल पद्धतियों के लिये आवश्यक अनुशासन की उच्च मात्रा अक्सर अपने मार्ग से भटक जाती थी, जिससे इनमें से कुछ पद्धतियों, जो बहुत सख्त प्रतीत हुईं, की आलोचना की गई या उन्हें उनके स्थानों पर अपूर्ण अवस्था में ही छोड़ दिया गया। तीव्र विकास पद्धतियां कभी स्थिर खड़ी नहीं रहीं हैं और इस क्षेत्र में मिले अनुभवों को आत्मसात करते हुए एक्सपी XP अभी भी विकसित हो रहा है। एक्सट्रीम प्रोग्रामिंग एक्सप्लेन्ड Extreme Programming Explained के दूसरे संस्करण में बेक ने कुछ नए मूल्य और पद्धतियां शामिल कीं और प्राथमिक तथा सहायक पद्धतियों के बीच अंतर स्पष्ट किया।

                                     

2.1. अवधारणा लक्ष्य

एक्सट्रीम प्रोग्रामिंग एक्सप्लेन्ड Extreme Programming Explained एक्सट्रीम प्रोग्रामिंग का वर्णन सॉफ्टवेयर विकास के एक ऐसे क्षेत्र के रूप में करती है, जो उच्च गुणवत्ता वाले सॉफ्टवेयर का उत्पादन अधिक उत्पादकता के साथ करने के लिये लोगों को संगठित करता है।

पारंपरिक सिस्टम विकास विधियों जैसे एसएसएडीएम SSADM अथवा वॉटरफॉल मॉडल) में सिस्टम की आवश्यकताओं का निर्धारण विकास परियोजना के प्रारंभ में ही कर लिया जाता है और अक्सर वे उस बिंदु से आगे स्थिर रहती हैं। इसका अर्थ यह है कि बाद में किसी चरण में आवश्यकताओं को बदलने जो कि सॉफ्टवेयर इंजीनियरिंग परियोजनाओं का एक आम लक्षण है की लागत उच्च होगी। तीव्र सॉफ्टवेयर विकास की अन्य विधियों की ही तरह, एक्सपी XP भी परिवर्तन की लागत को कम करने का प्रयास करती है, जिसके लिये एक बड़े विकास चक्र के बजाय अनेक संक्षिप्त विकास चक्रों का प्रयोग किया जाता है। इस सिद्धांत के अनुसार परिवर्तन सॉफ्टवेयर विकास परियोजनाओं का एक स्वाभाविक, अपरिहार्य और वांछित पहलू हैं और आवश्यकताओं के एक स्थिर समुच्चय को परिभाषित करने का प्रयास करने के बजाय उनकी पूर्ति के लिये नियोजन किया जाना चाहिये।

एक्सट्रीम प्रोग्रामिंग ने तीव्र प्रोग्रामिंग ढांचे के शीर्ष पर अनेक बुनियादी मूल्य, सिद्धांत और पद्धतियां भी प्रस्तुत कीं.

                                     

2.2. अवधारणा कोडिंग

एक्सपी XP के समर्थकों का तर्क है कि कोड-ऐसे सॉफ्टवेयर निर्देश, जिन्हें कम्प्यूटर समझ सकता हो, सिस्टम विकास प्रक्रिया का एकमात्र वास्तविक रूप से महत्वपूर्ण उत्पाद है। कोड के बिना, कोई भी कार्य उत्पाद नहीं होता।

कोडिंग का प्रयोग सर्वाधिक उपयुक्त समाधान निकाल पाने में भी किया जा सकता है। उदाहरण के लिये, एक्सपी XP इस बात का समर्थन करेगा कि किसी प्रोग्रामिंग समस्या के लिये विभिन्न विकल्प उपलब्ध होने पर, व्यक्ति को सभी समाधानों की कोडिंग करनी चाहिये और स्वचालित परीक्षणों के द्वारा यह निर्धारित करना चाहिये कि कौन सा समाधान सर्वाधिक उपयुक्त है।

  • दस्तावेजीकरण के बजाय ईमानदार संवाद, जिसके परिणामस्वरूप लगातार सीखने और व्यक्ति-से-व्यक्ति के बीच अंतःक्रिया पर बल दिया जाता है।
  • वैश्विक जागरूकता: किसी भी बिंदु पर, टीम का कोई भी सदस्य उपभोक्ता के उद्देश्यों की ओर टीम की प्रगति का मापन कर पाने में सक्षम होना चाहिये और टीम यह प्रतिबिंबित करती है कि किस प्रकार अधिक प्रभावी बनना है और इसके अनुसार अपने व्यवहार में सुधार लाती है।
  • कार्यशील सॉफ्टवेयर: कार्यशील सॉफ्टवेयर प्रगति का प्राथमिक माप होता है।
  • अधिकाऔर ज़िम्मेदारी का संरेखण.
  • कार्यशील सॉफ्टवेयर लगातार सौंपना चाहिये: कार्यशील सॉफ्टवेयर नियमित रूप से, दो सप्ताह से दो माह तक के अंतरालों पर, सौंपना चाहिये और इसमें छोटे समय-माप को प्राथमिकता दी जानी चाहिये टाइमबॉक्सिंग।
  • उपभोक्ता की संतुष्टि हमारी सर्वोच्च प्राथमिकता है: विकासकर्ताओं तथा टीम के अन्य सदस्यों द्वारा प्रदान की गए आकलनों और अन्य जानकारी के आधापर उपभोक्ता को अनिवार्य रूप से अपने उद्देश्य और प्राथमिकताएं निर्धारित करनी चाहिये और उन्हें नियमित रूप से समायोजित करते रहना चाहिये। उद्देश्यों को इस रूप में परिभाषित किया जाता है कि क्या करना है, न कि कैसे करना है।
  • व्यापार से जुड़े लोग और विकासकर्ता संयुक्त रूप से कार्य करते हैं: व्यापार से जुड़े लोग और विकासकर्ताओं को पूरी परियोजना के दौरान प्रतिदिन एक साथ कार्य करना चाहिये।
  • प्रगति करने के लिये टीम को जिस बात की आवश्यकता हो और उन आवश्यकताओं की पूर्ति करने के लिये जिन लोगों/संसाधनों की आवश्यकता हो, उनसे न्यूनतम पृथकता.
  • टीम को अनिवार्य रूप से एक प्रभावी सामाजिक नेटवर्क के रूप में कार्य करना चाहिये, जिसका अर्थ है
                                     

2.3. अवधारणा सिद्धांत

जो सिद्धांत एक्सपी XP का आधार बनाते हैं, वे अभी-अभी वर्णित मूल्यों पर आधारित होते हैं और उनका उद्देश्य एक सिस्टम विकास परियोजना में निर्णयों को प्रोत्साहित करना होता है। सिद्धांत मूल्यों से अधिक दृढ़ होने चाहिये और किसी व्यावहारिक परिस्थिति में वे अधिक सरलता से एक मार्गदर्शन में अनुवादित होने चाहिये।

                                     

2.4. अवधारणा फीडबैक

एक्सट्रीम प्रोग्रामिंग में फीडबैक को सर्वाधिक उपयोगी माना जाता है, यदि इसे तीव्रता से किया गया हो और यह इस बात को व्यक्त करता हो कि किसी कार्य और इसके फीडबैक के बीच का समय सीखने और परिवर्तन करने के लिये बहुत अधिक महत्वपूर्ण होता है। पारंपरिक सिस्टम विकास विधियों के विपरीत, उपभोक्ता के साथ कम अवधि वाले चक्रों में बार-बार संपर्क किया जाता है। विकसित किये जा रहे सिस्टम के बारे में उपभोक्ता के पास एक स्पष्ट अंतर्दृष्टि होती है। वह अपना फीडबैक दे सकता है और आवश्यकता के अनुसार विकास को संचालित भी कर सकता है।

ईकाई परीक्षण भी तीव्र फीडबैक सिद्धांत के प्रति सहायक होते हैं। कोड लिखते समय, ईकाई परीक्षण इस बारे में प्रत्यक्ष फीडबैक प्रदान करता है कि एक बार परिवर्तन कर दिये जाने पर सिस्टम इनके प्रति किस प्रकार की प्रतिक्रिया देता है। उदाहरणार्थ, यदि परिवर्तन सिस्टम के किसी ऐसे भाग को प्रभावित करते हों, जो उन्हें बनाने वाले प्रोग्रामर के दायरे में नहीं आता, तो वह प्रोग्रामर उस दोष को नहीं देख सकेगा। इस बात की बहुत अधिक संभावना है कि जब सिस्टम का उत्पादन किया जायेगा, तो उस समय यह त्रुटि उपस्थित होगी।

                                     

2.5. अवधारणा सरलता की कल्पना करना

इसके अंतर्गत प्रत्येक समस्या के साथ यह मानकर कार्य किया जाता है कि वह "अत्यधिक सरल" है। पारंपरिक सिस्टम विकास विधियां भविष्य के लिये नियोजन करने और पुनर्प्रयोग के लिये कोड लिखने को कहतीं हैं। एक्सट्रीम प्रोग्रामिंग इन विचारों को अस्वीकार करती है।

एक्सट्रीम प्रोग्रामिंग के समर्थक कहते हैं कि बड़े परिवर्तन एक ही बार में एक साथ करना उपयुक्त नहीं होता। एक्सट्रीम प्रोग्रामिंग वृद्धिशील परिवर्तनों को लागू करती है: उदाहरण के लिये, प्रत्येक तीन सप्ताह बाद किसी सिस्टम के छोटे संस्करण को रिलीज़ किया जा सकता है। जब अनेक छोटे-छोटे कदम बनाये जाते हैं, तो उपभोक्ता के पास विकास प्रक्रिया का और विकसित किये जा रहे सिस्टम का अधिक नियंत्रण होता है।

                                     

2.6. अवधारणा परिवर्तन को स्वीकार करना

परिवर्तन को अपनाने का सिद्धांत परिवर्तनों के विपरीत काम न करने और उन्हें स्वीकार करने से संबंधित है। उदाहरण के लिये, यदि चरणबद्ध बैठकों में से किसी एक के दौरान यह दिखाई दे कि उपभोक्ता की आवश्यकताएं नाटकीय रूप से बदल गईं हैं, तो प्रोग्रामर इसे स्वीकार करते हैं और अगले चरण के लिये नई आवश्यकताओं की योजना बनाते हैं।

                                     

3. पद्धतियां

एक्सट्रीम प्रोग्रामिंग में 12 पद्धतियों का वर्णन किया गया है, जो चार क्षेत्रों में समूहबद्ध की गईं हैं:

अच्छे पैमाने पर फीडबैक

  • युग्म प्रोग्रामिंग
  • संपूर्ण टीम
  • परीक्षण-चालित विकास
  • नियोजन खेल

सतत प्रक्रिया

  • पुनर्रचना या डिज़ाइन में सुधार
  • लगातार एकीकरण
  • छोटे रिलीज

साझा समझ

  • कोड का सामूहिक स्वामित्व
  • सिस्टम रूपक
  • कोडिंग मानक
  • सरल डिज़ाइन

कोडिंग

  • ईकाई परीक्षण की कोडिंग पहले करें
  • कोई अतिरिक्त समय नहीं
  • उपभोक्ता सदैव उपलब्ध होता है
  • इष्टतमीकरण को अंत तक छोड़ दें
  • एक समय पर केवल एक ही युग्म कोड का एकीकरण करता है

परीक्षण

  • स्वीकृति परीक्षण अक्सर क्रियान्वित किये जाते हैं और उनके परिणाम प्रकाशित किये जाते हैं
  • रिलीज़ किये जाने से पूर्व पूरे कोड को ईकाई परीक्षणों में सफल होना चाहिये।
  • जब किसी बग Bug का पता चलता है, तो उस बग को सुधारने से पूर्व परीक्षण निर्मित किये जाते हैं
  • समस्त कोड का ईकाई परीक्षण होना अनिवार्य है
                                     

4. विवादास्पद पहलू

एक्सपी XP की पद्धतियों पर अत्यधिक विवाद होता रहा है, जिसमें एक्सपी XP के प्रयोग के समर्थन और विरोध में कठोर विचार व्यक्त हुए हैं।

एक्सट्रीम प्रोग्रामिंग के समर्थकों का दावा है कि उपभोक्ता की आवश्यकताओं में परिवर्तन के निवेदन अनौपचारिक रूप से कार्य-स्थल पर ही प्राप्त हो जाने के कारण यह प्रक्रिया अधिक लचीली बनती है और इसके कारण औपचारिक खर्च की लागत बचती है। एक्सपी XP के आलोचक दावा करते हैं कि इसके परिणामस्वरूप दोबारा कार्य करना महंगा पड़ सकता है और धीरे-धीरे परियोजना का दायरा उस सीमा से बाहर चला जाता है, जिस पर पूर्व में सहमति बनी थी या जिसके लिये धन दिया गया था।

परिवर्तन नियंत्रण बोर्ड इस बात का संकेत हैं कि परियोजना के उद्देश्यों और बाधाओं के बारे में अनेक प्रयोक्ताओं के बीच टकराव संभावित हैं। एक्सपी XP की तीव्र कार्यप्रणाली कुछ हद तक इस बात पर निर्भर होती है कि प्रोग्रामर उपभोक्ता के एक एकीकृत दृष्टिकोण की कल्पना कर पाने में सक्षम हों, ताकि प्रोग्रामर समझौते के उद्देश्यों और बाधाओं के दस्तावेजीकरण के बजाय अपना ध्यान कोडिंग पर केंद्रित कर सकें. यह बात तब भी लागू होती है, जब अनेक कोडिंग संगठन शामिल हों, विशिष्ट रूप से ऐसे संगठन, जिनके बीच परियोजनाओं के अंश को लेकर प्रतिस्पर्धा जारी हो।

2004 में, इंडस्ट्रियल एक्सट्रीम प्रोग्रामिंग Industrial Extreme Programming आईएक्सपी IXP को एक्सपी XP के एक विस्तार के रूप में प्रस्तुत किया गया। इसका उद्देश्य बड़े और वितरित समूहों में कार्य करने की क्षमता प्रदान करना है। अब इसमें 23 पद्धतियां और लचीले मूल्य हैं। चूंकि यह एजाइल Agile परिवार का नया सदस्य है, अतः इसकी उपयोगिता सिद्ध करने के लिये अभी पर्याप्त डेटा उपलब्ध नहीं है, हालांकि, यह दावा किया जाता है कि यह उस बात का जवाब है, जिसे एक्सपी XP की कमी माना जाता है।

                                     

4.1. विवादास्पद पहलू अलग किये जा सकने की क्षमता और प्रतिक्रियाएं

2003 में, मैट स्टीफन्स और डफ रॉसेनबर्ग ने एक्सट्रीम प्रोग्रामिंग रिफैक्टर्ड: द केस अगेन्स्ट एक्सपी Extreme Programming REgactored: The Case Against XP प्रकाशित की, जिसने एक्सपी XP प्रक्रिया के मूल्य पर सवाल खड़े किये और इसमें सुधार करने के लिये कुछ उपाय सुझाये. इसके कारण लेखों, इंटरनेट समाचार-समूहों और वेब-साइट चैट क्षेत्रों में एक लंबी बहस शुरु हो गई। इस पुस्तक का मूल तर्क यह है कि एक्सपी XP की पद्धतियां अंतःनिर्भर हैं, परंतु कुछ ही व्यावहारिक संगठन इन सभी पद्धतियों को अपनाने के इच्छुक/सक्षम हैं; अतः पूरी प्रक्रिया विफल हो जाती है। यह पुस्तक अन्य आलोचनाएं भी करती है और एक्सपी XP के "सामूहिक स्वामित्व" के मॉडल की समाजवाद के साथ समानता को एक नकारात्मक स्वरूप में प्रस्तुत करती है।

पुस्तक एक्सट्रीम प्रोग्रामिंग रिफैक्टर्ड Extreme Programming Refactored 2003 के प्रकाशन के बाद से एक्सपी XP के कुछ पहलुओं में परिवर्तन हुआ है; विशिष्ट रूप से, एक्सपी XP अब पद्धतियों में तब तक संशोधनों को अनुकूल बनाता है, जब तक कि आवश्यक उद्देश्यों की पूर्ति होती रहे। एक्सपी XP में प्रक्रियाओं के लिये सामान्य शब्दावलियों का प्रयोग भी बढ़ता जा रहा है। कुछ लोगों का तर्क है कि ये परिवर्तन पिछली आलोचनाओं को अमान्य बना देते हैं; कुछ अन्य लोग दावा करते हैं कि यह केवल प्रक्रिया को सींचने का प्रयास है।

आरडीपी RDP पद्धति एक एक्सट्रीम प्रोग्रामिंग को अपनी आवश्यकताओं के अनुसार प्रयोग करने की एक तकनीक है। प्रारंभिक रूप से यह तकनीक फिलिपे क्रुश्तेन और स्टीव एडॉल्फ द्वारा आयोजित एक कार्यशाला में एक लंबे शोध-पत्र के रूप में प्रकाशित की गई थी आईसीएसई ICSE 2008 में एप्सो APSO कार्यशाला देखें) और फिर भी यह केवल एक्सपी XP को अपनी आवश्यकतानुसार संशोधित करने के लिये प्रस्तावित एवं प्रयोज्य विधि है। आरडीपी RDP पद्धति की पृष्ठभूमि में स्थित मूल्यवान अवधारणाओं ने बहुत थोड़े समय में ही उद्योगों में इसकी प्रयोज्यता के लिये औचित्य प्रदान किया। आरडीपी RDP पद्धतियां तकनीक एक्सपी XP नियमों पर आश्रित रहते हुए एक्सपी XP को अपनी आवश्यकतानुसार संशोधित करने का प्रयास करती हैं।

अन्य लेखकों ने एक्सपी XP को पुरानी विधियों के साथ मिलाने का प्रयास किया है, ताकि एक एकीकृत कार्यप्रणाली का निर्माण किया जा सके। इनमें से कुछ एक्सपी XP को प्रतिस्थापित करने का प्रयास करते हैं, जैसे वॉटरफॉल विधि; उदाहरण: परियोजना जीवन-चक्र: वॉटरफॉल, रैपिड एक्शन डेवलपमेंट आदि सभी कुछ. जेपीमॉर्गन चेस एण्ड कम्पनी JPMorgan Chase & Co. ने एक्सपी XP को कैपेबिलिटी मैच्युरिटी मॉडल इंटीग्रेशन Capability Maturity Model Integration सीएमएमआई CMMI और सिक्स सिग्मा Six Sigma की कम्प्यूटर प्रोग्रामिंग कार्यप्रणालियों के साथ संयोजित करने का प्रयास किया है। उन्होंने पाया कि इन तीनों प्रणालियों ने एक दूसरे को बहुत अच्छी तरह सहारा दिया, जिसका परिणाम बेहतर विकास के रूप में मिला और इनके बीच कोई आपसी टकराव नहीं है।

                                     

5. आलोचना

एक्सट्रीम प्रोग्रामिंग के प्रारंभिक रोमांच और विवादास्पद सिद्धांतों, जैसे युग्म प्रोग्रामिंग और सतत डिज़ाइन, ने विशिष्ट आलोचना को आकर्षित किया है, जैसे मैकब्रीन McBreen तथा बोहेम व टर्नर की ओर से आने वाली आलोचना. हालांकि, एजाइल Agile पद्धतियों के प्रयोक्ताओं का विश्वास है कि इनमें से अधिकांश आलोचनाओं का कारण तीव्र विकास की गलत समझ है।

विशिष्ट रूप से, एक्सट्रीम प्रोग्रामिंग की समीक्षा और आलोचना मैट स्टीफेंस और डफ रॉसेनबर्ग की एक्सट्रीम प्रोग्रामिंग रिफैक्टर्ड Extreme Programming Refactored द्वारा की गई है।

आलोचनाओं में शामिल हैं:

  • संरचना और आवश्यक दस्तावेजीकरण की कमी
  • इसके परिणामस्वरूप अनुबंधात्मक समझौते अधिक कठिन हो सकते हैं
  • अक्सर इसका प्रयोग प्रदेय उत्पाद की परिभाषा में कमी के माध्यम से धन की उगाही करने के एक साधन के रूप में किया जाता है
  • एक कार्यप्रणाली केवल उतनी ही प्रभावी होती है, जितना कि उसमें शामिल लोग, एजाइल Agile इसे नहीं सुलझा सकता
  • बहुत अधिक अदक्ष हो सकता है-यदि कोड के एक क्षेत्र की आवश्यकताएं विभिन्न दोहरावों के माध्यम से बदलती हैं, तो एक ही प्रोग्रामिंग को अनेक बार दोहराने की आवश्यकता पड़ सकती है। जबकि यदि एक योजना बनाकर उसका पालन करते हुए कार्य किया जाए, तो कोड के किसी एक क्षेत्र को केवल एक ही बार लिखना अपेक्षित होता है।
  • केवल वरिष्ठ-स्तर के विकासकर्ताओं के साथ ही कार्य करता है
  • बहुत अधिक सांस्कृतिक परिवर्तन को अपनाना आवश्यक होता है
  • एक अनुमान प्रदान करने के लिये आवश्यक कार्य-प्रयास का एक वास्तविकतापूर्ण आकलन विकसित कर पाना असंभव होता है क्योंकि परियोजना की शुरुआत में किसी को भी पूरे दायरे/आवश्यकताओं की जानकारी नहीं होती
  • इसमें अपर्याप्त सॉफ्टवेयर डिज़ाइन शामिल होता है
  • इसमें बहुत छोटे अंतरालों पर बार-बार बैठकें करने की आवश्यकता पड़ती है, जिससे उपभोक्ता का खर्च अत्यधिक बढ़ जाता है
  • एजाइल Agile विशेषता संचालित होता है; गैर-कार्यात्मक गुणवत्ता विशेषताओं को प्रयोक्ता कथाओं User Stories के रूप में रख पाना कठिन होता है
  • विस्तृत दस्तावेज़ीकरण आवश्यकताओं की कमी के कारण दायरे से बाहर निकल जाने का खतरा बढ़ सकता है
                                     

6. इसे भी देखें

  • RDP तकनीक
  • काई ज़ेन
  • स्क्रम विकास
  • फुर्तीली सॉफ्टवेयर विकास
  • एक्सट्रीम प्रोग्रामिंग प्रथाओं
  • एक्सट्रीम परियोजना प्रबंधन
  • सॉफ्टवेयर इंजीनियरिंग
  • सॉफ्टवेयर क्राफ्टमेनशिप
  • पेयर प्रोग्रामिंग
  • सॉफ्टवेयर विकास चिंतनों की सूची
                                     

7. आगे पढ़ें

  • रॉन जेफ्रिस, एन एंडरसन और चेट हेंड्रिकसन 2000, एक्सट्रीम प्रोग्रामिंग इन्स्टॉल्ड, एडिसन-वेस्ले.
  • वाल्डनर, जेबी. 2008। "नैनोकम्प्यूटर्स और स्वार्म इंटेलीजेंस". इन: ISTE, 225-256.
  • मैट स्टेफंस और डॉ रोसेंबर्ग 2003। एक्सट्रीम प्रोग्रामिंग रिफैक्टर्ड: द केस अगेंस्ट XP, अप्रेस.
  • केन औएर और रॉय मिलर. एक्सट्रीम प्रोग्रामिंग: एप्लाइड: प्लेयिंग टू विन, एडिसन-वेस्ले.
  • हार्वे हेरेला 2005। प्रकरण अध्ययन: क्रिसलर व्यापक मुआवजा प्रणाली. ग्लेन लैब, यु.सी. आयर्विन.
  • मेहदी मिराखोरली 2008। आरडिपी RDP तकनीक: अ प्रैक्टिस टू कस्टमाइज़ एक्सपी, सोफ्टवेयर इंजीनियरिंग पर इंटरनैशनल कॉन्फेरेन्स, प्रोसीडिंग्स ऑफ़ द 2008 इंटरनैशनल वर्कशॉप ऑन स्क्रुटीनाइज़िन्ग एजाइल प्रैक्टिस ऑर शूट-आउट ऐट द एजाइल कोरल, लिपजिंग, जर्मनी 2008, पेजेस 23-32.
  • कैंट बेक और सिंथिया एन्ड्रेस. एक्सट्रीम प्रोग्रामिंग एक्स्प्लेंड: एम्बरेस चेंज, सेकेण्ड एडिशन, एडिसन-वेस्ले.
  • क्रेग लार्मन और वी. बसिली 2003। "इटिरेटिव एण्ड इन्क्रेमेंटल डेवेलपमेंट: अ ब्रीफ हिस्ट्री", कंप्यूटर IEEE कम्प्यूटर सोसायटी 36 6: 47-56.
  • जिम हाईस्मिथ. एजाइल सॉफ्टवेयर डेवेलपमेंट इकोसिस्टम्स, एडिसन-वेस्ले.
  • कैंट बेक: एक्सट्रीम प्रोग्रामिंग एक्स्प्लेंड: एम्बरेस चेंज, एडिसन-वेस्ले.
  • कैंट बेक और मार्टिन फोव्लर: प्लैनिंग एक्सट्रीम प्रोग्रामिंग, एडिसन-वेस्ले.
  • एलिस्टेयर कॉकबर्न: एजाइल सॉफ्टवेयर डेवेलपमेंट, एडिसन-वेस्ले.
  • मार्टिन फोव्लर: रिफैक्टरिंग: इम्प्रूविंग द डिज़ाइन ऑफ़ एक्ज़ीस्टिंग कोड, एडिसन-वेस्ले.
                                     
  • और व कस त ह न व ल स फ टव यर क र ल ज ह न स प र र त ह त ह एक सट र म प र ग र म ग XP सर वश र ष ठ ज ञ त प न र व त त य प रक र य ह पहल क प र न
  • क र रव ई स हस क श ल च नल न म त त न सह यक ख ड ह स न क फ ल क स, स न क एक सट र म और ट ररऑफ ह रर व क श र क ल ए उद द श य स क र यक रम क प रस रण वह
  • थ 5S स त ल त स क रक र ड व य प र प रक र य प न अभ य त र करण एक सट र म प र ग र म ग Muda म ड समस त उपकरण प रभ वश लत म ल क रण क व श ल षण स क रम
  • इ ज न यर द व र य न ट ट स ट पहल ल ख ज त ह अक सर एक सट र म प र ग र म ग पद धत म प यर प र ग र म ग क स थ ब शक य पर क षण श र म व फल ह ज त ह
  • RAD ऐक सट र म प र ग र म ग XP प र ट ट इप ग और RAD म श र आत क र य क व स त र. म क त स र त व क स ए ड - य ज र व क स ऑब ज क ट उन म ख प र ग र म ग आध न क
  • क श त लड त ह उन ह वर ल ड च म प यनश प र सल ग डब ल स डब ल WCW और एक सट र म च म प यनश प र सल ग इस डब ल ECW पर अपन प रस त त य क ल ए और अ तरर ष ट र य
  • डबल य डबल य एफ म कई नए च हर आए ज स म न क ई ड Mankind ज उस समय एक सट र म च म प यनश प र सल ग Extreme Championship Wrestling क क क टस ज क क
  • सच च - ज वन स थ क र प म नई प रब धक ल ट म ल गई त न क एक स थ ट म एक सट र म क न म स ज न ज न लग 2000 क द र न उन ल ग न एज और क श च यन क
                                     
  • और ट ल व जन भ म क ओ क श र खल क एक श र आत थ 1997 म ज म सन न एक सट र म च म प यनश प र सल ग PPV ह र डक र ह व न 97 म डडल पर व र क स वक क र प
  • ब द ह गय 2003 क गर म य म म कम हन न द व ल य पन क अद लत म एक सट र म च म प यनश प र सल ग क अध ग रहण कर ल य इस प रक र म कम हन और वर ल ड र सल ग

शब्दकोश

अनुवाद
Free and no ads
no need to download or install

Pino - logical board game which is based on tactics and strategy. In general this is a remix of chess, checkers and corners. The game develops imagination, concentration, teaches how to solve tasks, plan their own actions and of course to think logically. It does not matter how much pieces you have, the main thing is how they are placement!

online intellectual game →