एक्सट्रीम कार्यक्रम
आप कह सकते हैं, एजाइल परियोजना प्रबंधन , ज़ाहिर है! लेकिन आप किस पद्धति का उपयोग करना चाहते हैं? कई विकल्प हैं: एक के लिए, बेहद लोकप्रिय स्क्रम है: जिसमें कार्यों के ग्राहक बैकलॉग के आधार पर लघु “स्पिंट्स” बनाना शामिल है। और फिर, कानबान है , जो काम की पाइपलाइन को अनुकूलित करने पर काम करता है। एक्सट्रीम प्रोग्रामिंग भी है , जिसे अक्सर एक्सपी में संक्षिप्त किया जाता है, जो पारंपरिक प्रोग्रामिंग मॉडल के सकारात्मक पहलुओं को बढ़ाने पर केंद्रित है ताकि वे अपनी अधिकतम क्षमता पर काम कर सकें।
एक्सट्रीम प्रोग्रामिंग एक बेहद लोकप्रिय है (हालांकि स्क्रम के रूप में लोकप्रिय नहीं है) पद्धति बदलती ग्राहक आवश्यकताओं को पूरा करने पर केंद्रित है। पहली एक्सट्रीम प्रोग्रामिंग परियोजना मार्च 1 99 6 में क्रिसलर में केंट बेक द्वारा शुरू की गई थी । अपनी 1 999 की किताब में, एक्सट्रीम प्रोग्रामिंग समझाया गया: गले लगाओ चेंज , उन्होंने सॉफ्टवेयर विकास के पहलुओं का विस्तृत विवरण दिया।
केंट बेक टेस्ट-संचालित विकास का अग्रणी भी था, जिसने रडार पर उपयोग-केस परीक्षण को चीजों के तरीके में सुधार के रूप में रखा: कोड लिखना और कोड की रेखाएं लिखना और फिर इसका परीक्षण करना। वह एग्इल मैनिफेस्टो के मूल हस्ताक्षरकर्ताओं में से एक थे, जो एक्सट्रीम प्रोग्रामिंग सॉफ्टवेयर को लिखने के तरीके को बदलने के लिए घोषणापत्र को आकार देने में मदद करते थे।
जानें कि अपने काम को अधिक कुशल, उत्पादक और प्रभावी बनाने के लिए प्रोग्राम कैसे करें। अपने स्वयं को नई परेशानी मुक्त कोड विकास के लिए अद्यतन करें। उच्च और निम्न स्तर की प्रोग्रामिंग भाषाओं के कुशल ज्ञान प्राप्त करें।
समझाया गया पर आधारित एक्सट्रीम प्रोग्रामिंग के पांच मूल्य हैं:
संचार
एक्सट्रीम प्रोग्रामिंग व्यापक दस्तावेज़ीकरण पर निर्भर नहीं है। वास्तव में, एक्सट्रीम प्रोग्रामिंग दस्तावेज केवल तभी सुझाया जाता है जब आवश्यक हो। तो पद्धति टीम के सदस्यों और उपयोगकर्ताओं के साथ संचार पर भारी निर्भर करती है ।
सादगी
यह एक्सट्रीम प्रोग्रामिंग के केंद्र में है। पद्धति सरल डिजाइनों का समर्थन करती है, भविष्य में बहुत आगे नहीं सोचती, बल्कि आज की आवश्यकताओं पर ध्यान केंद्रित करते हुए, कार्यक्रम को भविष्य में फेंकने की आवश्यकताओं को जोड़ने के लिए पर्याप्त मजबूत बनाते हैं।
प्रतिक्रिया
अन्य सॉफ्टवेयर परियोजना प्रबंधन पद्धतियों से, विशेष रूप से एग्इल सिस्टम और विशेष रूप से एक्सट्रीम प्रोग्रामिंग को अलग करने का यह आवश्यक लूप अलग-अलग होता है। निरंतर प्रतिक्रिया विभिन्न तरीकों से काम कर सकती है , लेकिन वे सभी सिस्टम को मजबूत और अधिक विश्वसनीय बनाने की दिशा में काम करते हैं।
फीडबैक विभिन्न स्वादों में आ सकता है:
- कार्यक्रम से ही: परियोजना को पूरे परियोजना विकास चक्र में जोरदार परीक्षण किया जाता है , ताकि डेवलपर्स द्वारा परिवर्तन लागू किए जा सकें।
- ग्राहक से: यह अधिकांश एजाइल सिस्टम का एक अनिवार्य हिस्सा है। ग्राहक स्वीकृति परीक्षण लिखते हैं कि विकास पर आधारित है, और यह विकास प्रक्रिया की रीढ़ की हड्डी बनाता है। एक आवधिक प्रतिक्रिया के लिए, सभी पुनरावृत्तियों को ग्राहक को भी वितरित किया जाता है।
- टीम से: एक बार जब एक नया उपयोग केस / कहानी बनाई गई है, तो टीम तुरंत लागत और समयरेखा अनुमान के साथ बदल जाती है, जो उठने के बाद आवश्यकताओं को मजबूत करती है। एक्सट्रीम प्रोग्रामिंग में, कोई भी व्यक्ति किसी भी कोड का “मालिक” नहीं होता है, और इसलिए एक्सट्रीम प्रोग्रामिंग टीमों के भीतर, एक दूसरे के कोड पर प्रतिक्रिया को प्रोत्साहित किया जाता है।
साहस
यह सॉफ्टवेयर विकास के लिए एक्सट्रीम प्रोग्रामिंग में एक अजीब मूल्य की तरह प्रतीत हो सकता है, जो सेना या मरीन जैसे कुछ के लिए उपयुक्त है! हालांकि, इसके बारे में सोचें: सॉफ्टवेयर परियोजनाओं को प्रबंधन के पारंपरिक एक्सट्रीम प्रोग्रामिंग तरीकों से लंबे समय तक दबा दिया गया है; व्यापक दस्तावेज़ीकरण और पदानुक्रम के आराम में सुरक्षित है जो नवाचार की अनुमति नहीं देता है। यह मान एक्सट्रीम प्रोग्रामिंग के मूल का उदाहरण है: यदि यह आता है तो पैराशूट के बिना कूदने के लिए तैयार रहें! परियोजना प्रबंधन की इस अलग शैली को देखें, और पदानुक्रम को त्यागने के लिए जिम्मेदार होने के लिए तैयार रहें और शुरुआत में सब कुछ जानने के बिना जिम्मेदार और काम करें।
आदर करना
सम्मान, पांचवां मूल्य, बाद में जोड़ा गया था, और दूसरों और स्वयं के लिए सम्मान का मतलब है। यह भी लिखे गए कोड और ग्राहक की अपेक्षाओं और आवश्यकताओं के लिए सम्मान का तात्पर्य है। यह मूल्य विभिन्न हितधारकों के बीच संचार को भी कम करता है ।
एक एक्सट्रीम प्रोग्रामिंग परियोजना की गतिविधियां
एक्सट्रीम प्रोग्रामिंग एक परियोजना की चार सरल गतिविधियों को अलग करता है। वो हैं:
- कोडिंग : एक्सट्रीम प्रोग्रामिंग यह सबसे महत्वपूर्ण गतिविधि मानता है। एक्सट्रीम प्रोग्रामिंग के संस्थापक केंट बेक कहते हैं, “कोड के बिना, कुछ भी नहीं है।”
- परीक्षण : कोड तब तक है जब तक परीक्षण नहीं किया जाता है। एक्सट्रीम प्रोग्रामिंग परीक्षण के बारे में जुनूनी है, यूनिट परीक्षणों का उपयोग करके यह पुष्टि करने के लिए कि कोड काम कर रहा है और क्लाइंट से उत्पन्न स्वीकृति परीक्षण यह पुष्टि करने के लिए है कि कोड परीक्षण कर रहा है कि परीक्षण की आवश्यकता है ।
- सुनना: सुनना , संचार के मूल मूल्य से उदाहरण, एक ऐसी गतिविधि है जिसके लिए डेवलपर्स को केवल ग्राहकों को सुनने की आवश्यकता नहीं होती है, बल्कि वास्तव में वे जो चाहते हैं उसे सुनते हैं। विकास और व्यवसाय दो अलग-अलग चीजें हैं और अक्सर, डेवलपर्स किसी विशेष निर्णय के व्यावसायिक मामले को समझने में विफल रहते हैं। ग्राहक की जरूरतों के साथ-साथ डेवलपर्स ‘, “सुनने” गतिविधि का आधार बनते हैं।
- डिजाइनिंग : यह आपको आश्चर्यचकित कर सकता है कि एक सॉफ्टवेयर विकास परियोजना में, डिजाइनिंग गतिविधि , अक्सर बहुत महत्वपूर्ण और प्राथमिक, अंत में रखा जाता है। ऐसा इसलिए है क्योंकि एक्सट्रीम प्रोग्रामिंग जानबूझकर लोगों को “डिजाइन और विकास” मानसिकता से बाहर ले जाना चाहता है जिसे उद्योग ने कई सालों तक पोषित किया है। यह डिजाइनिंग के महत्व को सीमित नहीं करना है। इसके बजाय, अच्छी और न्यूनतम डिजाइन एक परियोजना के लक्षणों में से एक है।
मूल्यों और गतिविधियों सेएक्सट्रीम एक्सट्रीम प्रोग्रामिंग के 12 सिद्धांत सामने आते हैं, जैसा कि इसके संस्थापक द्वारा उनकी पुस्तक, एक्सट्रीम प्रोग्रामिंग समझाया गया है।
- योजना खेल
- जोड़ा प्रोग्राम तैयार करना
- परीक्षण संचालित विकास
- पूरी टीम
- लगातार मेल जोल
- डिजाइन सुधार
- छोटी विज्ञप्ति
- कोडिंग मानकों
- सामूहिक कोड स्वामित्व
- सरल डिजाइन
- सिस्टम रूपक
- निरंतर गति
इन एक्सट्रीम प्रोग्रामिंग प्रथाओं में से कुछ, सभी सॉफ्टवेयर इंजीनियरिंग के सर्वोत्तम प्रथाओं में मैप किए गए हैं, जेनेरिक एजिल पद्धतियों से अलग हैं। एक्सट्रीम प्रोग्रामिंग के कुछ अभ्यास नीचे समझाए गए हैं:
-
योजना खेल
यह परियोजना का नियोजन हिस्सा है , जिसे “योजना गेम” कहा जाता है। इसमें अगले पुनरावृत्ति और रिलीज के लिए योजना शामिल है, उपयोगकर्ता / ग्राहक के साथ परामर्श से, साथ ही साथ टीमों की आंतरिक योजना, जिन कार्यों पर वे काम करेंगे।
-
जोड़ा प्रोग्राम तैयार करना
इसमें कोड के टुकड़े पर काम करने वाले दो लोग शामिल हैं। कुंजीपटल नामक एक व्यक्ति, कोड में टाइप करता है, जबकि दूसरा, जिसे मॉनीटर कहा जाता है, कोड की निगरानी करता है, टिप्पणी करता है और इसे परिशोधित करता है, क्योंकि आवश्यकता उत्पन्न हो सकती है। दो लोग अक्सर अपनी भूमिकाओं का आदान-प्रदान करते हैं। यह कोड की दक्षता में काफी सुधार करने के लिए साबित हुआ है। यह सभी विकास परिदृश्यों के लिए अनुकूल नहीं हो सकता है, और एक्सट्रीम प्रोग्रामिंग के लिए साइन अप करने से पहले यह विचार करना कुछ है।
-
परीक्षण संचालित विकास
लिखे गए सभी कोड की गणना यूनिट-वार की है, यानी, कोड का प्रत्येक टुकड़ा जो कुछ कर सकता है, पहले परीक्षण किया जाता है। एक्सट्रीम प्रोग्रामिंग परीक्षण पर बहुत जोर देती है । यह पुष्टि करता है कि कोड काम करता है, और इसलिए इसे अत्यधिक प्रोग्रामिंग प्रोजेक्ट में शामिल करने के लिए माना जा सकता है। यह विद्यालय में यूनिट परीक्षणों के समान है: सूचना के छोटे टुकड़े परीक्षण किए जाते हैं, ताकि शिक्षक / छात्र कोर्स सुधार कर सकें और वार्षिक परीक्षाओं के दौरान झुकाव न करें!
-
डिजाइन सुधार (रिफैक्टरिंग)
सादगी की अपनी विशेषता के आधार पर एक्सपी परियोजनाओं का उद्देश्य लिखे गए कोड पर निरंतर सुधार करना है। इसका मतलब है कि पूरा कोड (और कभी-कभी, डेटाबेस भी) हमेशा सुधार किया जाता है। रिफैक्टरिंग कोई कार्यक्षमता नहीं जोड़ती है; यह केवल मौजूदा कोड में सुधार करता है। इसे कठिन और स्पष्ट बनाता है। यह लेखन के एक टुकड़े को संपादित करने, इसे चमकाने और इसे बेहतर बनाने के समान है।
-
सरल डिजाइन
एक्सट्रीम प्रोग्रामिंग में, सुविधाओं को विशेष रूप से आवश्यक होने तक जोड़ा नहीं जाता है। भले ही वर्तमान में कोड पर काम किया जा रहा हो, भविष्य में जो भी हो सकता है, उसके समान ही है, यह तब तक नहीं लिया जाता जब तक कि यह उपयोगकर्ता की कहानी के रूप में सहमत न हो।
-
सिस्टम रूपक
इसमें सभी नामकरण सम्मेलनों का मानकीकरण शामिल है ताकि इसका उद्देश्य और कार्य आसानी से समझ सके। उदाहरण के लिए <NewUser> या <ReplaceDefaultAddress> संचालन किसी भी प्रोग्रामर को उनकी कार्यक्षमता को समझने में सहायता कर सकता है। यह पूरे एक्सट्रीम प्रोग्रामिंग प्रोजेक्ट में बनाया जाना चाहिए, ताकि किसी के भी कोड को देखना और संशोधित करना या बेहतर हो, जैसा भी मामला हो।
एक एक्सट्रीम प्रोग्रामिंग परियोजना के भीतर भूमिकाएं:
स्क्रम की तरह , एक्सट्रीम प्रोग्रामिंग में प्रत्येक प्रोजेक्ट के भीतर कुछ निर्दिष्ट भूमिकाएं हैं। अब, भूमिकाओं को हमेशा अलग-अलग लोगों द्वारा नहीं किया जाना चाहिए, और एक व्यक्ति एक से अधिक भूमिका निभा सकता है।
एक्सट्रीम प्रोग्रामिंग भूमिकाएं हैं:
- ग्राहक : आत्म व्याख्यात्मक। परियोजना का कारण वह तय करती है कि परियोजना को क्या करना है। वह उपयोगकर्ता कहानियां प्रदान करती है।
- प्रोग्रामर : यह वह व्यक्ति है जो:
- ग्राहक कहता है कि कहानियां लेता है
- कहानियों से प्रोग्रामिंग कार्यों को बनाता है
- उपयोगकर्ता कहानियों को लागू करता है
- यूनिट द्वारा कोड टेस्ट करें
- कोच : कोच आम तौर पर यह सुनिश्चित करता है कि परियोजना ट्रैक पर है, और आवश्यकता होने पर भी मदद करने के लिए कूदता है।
- ट्रैकर : ट्रैकर प्रोग्रामर को एक सेट अंतराल पर विशिष्ट पूछताछ करता है। आम तौर पर, वह प्रोग्रामर की प्रगति की जांच करता है, जहां कई तरीकों से मदद की ज़रूरत होती है: आस्तीन को रोल करना और सीधे कोड के साथ मदद करना, कोच को जानना, या ग्राहक के साथ एक बैठक स्थापित करना, आवश्यकता हो सकती है।
- परीक्षक : कार्यात्मक परीक्षण चलाता है। परीक्षक यूनिट परीक्षण नहीं चलाता है, जो प्रोग्रामर द्वारा स्वयं चलाए जाते हैं।
- डूम्सेयर: जैसा कि नाम से पता चलता है, एडवर्ड डी बोनो समूह समूह सोच में ब्लैक हैट के समान है। कोई भी डूम्सएयर हो सकता है, जो आम तौर पर संभावित समस्याओं को झेलता है और सही परिप्रेक्ष्य में परेशानी रखने में मदद करता है।
- प्रबंधक : एक एक्सट्रीम प्रोग्रामिंग प्रोजेक्ट में प्रबंधक एक शेड्यूलर की तरह अधिक है, यह सुनिश्चित करना कि बैठकें योजनाबद्ध हों, और बैठकों के दौरान किए गए निर्णयों को सुनिश्चित करने के लिए उपयुक्त व्यक्ति को, अक्सर ट्रैकर से अधिक पास किया जाता है। हालांकि, प्रबंधक लोगों को नहीं बताता कि क्या करना है और इसे कब करना है। यह ग्राहक और / या उपयोगकर्ता कहानियों द्वारा स्वयं किया जाता है।
- स्वर्ण मालिक : गोल्ड स्वामी वह व्यक्ति है जो परियोजना को निधि देता है। यह ग्राहक हो सकता है, लेकिन जरूरी नहीं है।
ऊपर वर्णित एक्सट्रीम प्रोग्रामिंग भूमिकाओं में से कुछ को जोड़ा जा सकता है, लेकिन कुछ स्पष्ट रूप से नहीं कर सकते हैं।
उदाहरण के लिए, ग्राहक प्रोग्रामर भी नहीं हो सकता है। प्रोग्रामर और ट्रैकर, वैसे ही, वही व्यक्ति सफलतापूर्वक नहीं हो सकते हैं।
एक्सट्रीम प्रोग्रामिंग भूमिकाओं को स्पष्ट रूप से पर्याप्त रूप से परिभाषित किया गया है ताकि कोई भ्रम न हो और अधिकतम लचीलापन और दक्षता के लिए बनाया गया हो।
एक्सट्रीम प्रोग्रामिंग की कमी:
एक्सट्रीम प्रोग्रामिंग के समर्थक एक गुलाबी तस्वीर पेंट करते हैं, इस तथ्य का तथ्य यह है कि एक्सट्रीम प्रोग्रामिंग, जैसा कि नाम शायद सुझाता है, लागू करने के लिए बेहद मुश्किल है। एक्सट्रीम प्रोग्रामिंग के पहलुओं को पूरी तरह से एक्सपी को अपनाने से अधिक सफलतापूर्वक परियोजनाओं में शामिल किया जा सकता है।
एक्सट्रीम प्रोग्रामिंग के कुछ नकारात्मक हैं:
- एक्सट्रीम प्रोग्रामिंग छोटे समूहों में अधिक प्रभावी पाया जाता है । बड़े समूहों में इसकी दक्षता का चुनाव किया जाता है, और एक बेहतर विकल्प एक्सट्रीम प्रोग्रामिंग टीमों को विभाजित करना है ताकि समूह छोटे हो।
- एक्सट्रीम प्रोग्रामिंग की प्रमुख विशेषताओं में से एक, जोड़ी प्रोग्रामिंग कई मामलों में अच्छी तरह से काम नहीं करती है । कॉम्प्लेक्स कोडिंग के लिए दो सिर की आवश्यकता हो सकती है, लेकिन सभी कार्यों को दो लोगों की आवश्यकता नहीं हो सकती है, दूसरे व्यक्ति को मृत वजन होता है। वास्तव में, जोड़ी प्रोग्रामिंग, यदि सदस्यों में से एक दूसरे के साथ समन्वयित नहीं है, तो कई कारणों में एक्सट्रीम प्रोग्रामिंग विफल होने के मुख्य कारणों में से एक है।
- ग्राहक पर निर्भरता , ग्राहक की ओर से एक साइट पर संसाधन सुझाव की बात करने, गहराई से हतोत्साहित हो सकता है। इससे विकास के दौरान असली और कल्पना दोनों हस्तक्षेप भी हो सकते हैं।
- सादगी पर एक्सट्रीम प्रोग्रामिंग का ध्यान वर्तमान परियोजना में जोड़ना बहुत मुश्किल हो सकता है , जिसका अर्थ है कि सरल परिवर्तनों के लिए एक उच्च बजट, जो अब और आसान नहीं रहना चाहिए।
- फ्लैट पदानुक्रमिक संरचना का मतलब है कि टीम को हमेशा ध्यान केंद्रित किया जाना चाहिए, और एक प्रबंधक की अनुपस्थिति में अलग-अलग प्रकार के लोगों को भ्रष्ट करने के लिए, एक एक्सट्रीम प्रोग्रामिंग टीम पूरी तरह से सभी टीम के सदस्यों की भावनात्मक परिपक्वता पर निर्भर है , एक ऐसा कारक जो हमेशा भरोसेमंद नहीं होता ।
इन कारकों के साथ भी, एक्सट्रीम प्रोग्रामिंग सही परियोजना के लिए उपयोग करने के लिए एक शक्तिशाली उपकरण बना हुआ है, जिसमें एक्सट्रीम प्रोग्रामिंग प्रक्रिया को अपनाने के बाद कंपनियां अपनी दक्षता में कई गुना वृद्धि की रिपोर्ट करती हैं। स्क्रम के विपरीत एक डेवलपर संचालित प्रणाली, जो प्रक्रिया-संचालित प्रणाली, एक्सट्रीम प्रोग्रामिंग, या इसके कम से कम हिस्सों से अधिक है, हम अत्यधिक प्रोग्रामिंग सॉफ्टवेयर विकसित करने के तरीके में एक क्रांति का कारण बन सकते हैं।