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

एजाइल मेनिफेस्टो और सिद्धांतों का पालन करने वाला कोई भी विकास चरण चुस्त विकास के रूप में जाना जाता है। एक समूह ने चौदह प्रमुख तकनीकी उद्योग के नेताओं का एजाइल मेनिफेस्टोद एजाइल मेनिफेस्टो लिखा।
यह उनके ज्ञान का प्रतिनिधित्व करता है कि कौन सी तकनीकें काम करती हैं और सॉफ्टवेयर विकास में काम नहीं करती हैं। एजाइल घोषणापत्र के आदर्शों और सिद्धांतों को स्क्रम और कानबन सहित सॉफ्टवेयर विकास प्रणालियों की एक विस्तृत विविधता से तैयार और रेखांकित किया गया था।
- सॉफ़्टवेयर परिनियोजन तेज़ है, जो ग्राहक के बढ़े हुए विश्वास में योगदान देता है।
- तरीका नहीं, बल्कि लोग। प्रक्रियाओं और उपकरणों पर लोगों और रिश्तों को प्राथमिकता दी जाती है।
- तत्काल प्रतिक्रिया की अनुमति देता है, जिसका उपयोग वह अगले अद्यतन में कार्यक्रम को बढ़ाने के लिए कर सकता है।
- तेजी से बदलती आवश्यकताओं के लिए अधिक तेज़ी से अनुकूलन और प्रतिक्रिया कर सकता है।
- तकनीकी प्रदर्शन और सौंदर्यशास्त्र पर लगातार जोर।
- केवल वरिष्ठ प्रोग्रामर ही उत्पादन के दौरान आवश्यक निर्णय लेने में सक्षम होते हैं।
- फुर्तीली विकास कोड पर केंद्रित है और कम प्रलेखन प्रदान करता है।
- बड़ी सॉफ्टवेयर परियोजनाओं के लिए सॉफ्टवेयर विकास जीवन चक्र में शुरुआती दौर में आवश्यक प्रयास का अनुमान लगाना मुश्किल है।
- बड़े संगठनों में, आमने-सामने संपर्क अधिक जटिल होता है।
- चुस्त विकास में ग्राहक की प्रतिक्रिया महत्वपूर्ण है। यदि परिणाम के बारे में ग्राहक का दृष्टिकोण अस्पष्ट है, तो परियोजना के पटरी से उतरने की अधिक संभावना है।
- कम समय सीमा वरीयता के साथ, कुछ हफ्तों से लेकर कुछ महीनों तक कहीं भी, नियमित रूप से काम करने वाले अनुप्रयोगों को वितरित करें।
- ऐसे लोगों के साथ प्रोजेक्ट बनाएं, जो अपने काम के बारे में भावुक हों। उन्हें स्थान और संसाधन दें जिनकी उन्हें आवश्यकता है, और कार्य को पूरा करने के लिए उन पर भरोसा करें।
- आमने-सामने संचार एक प्रोडक्शन टीम को और उसके भीतर ज्ञान पहुंचाने का सबसे विश्वसनीय और प्रभावी तरीका है।
- ग्राहकों की पूर्ति हमारी सर्वोच्च प्राथमिकता है, इसलिए हम समय और समय पर उपयोगी सॉफ्टवेयर तैयार करते हैं।
- वर्किंग सॉफ्टवेयर सफलता का सबसे महत्वपूर्ण संकेतक है।
- विनिर्देशों में परिवर्तन का स्वागत है, भले ही वे विकास प्रक्रिया में देर से आए हों। ग्राहकों को प्रतिस्पर्धात्मक लाभ प्राप्त करने में मदद करने के लिए चुस्त उत्पाद विकास संक्रमण का लाभ उठाता है।
- एजाइल सिस्टम सतत विकास में सहायता करते हैं। प्रायोजक, निर्माता और उपयोगकर्ता सभी को अनिश्चित काल तक गति बनाए रखने में सक्षम होना चाहिए।
- स्व-आयोजन दल सर्वोत्तम आर्किटेक्चर, विनिर्देश और डिज़ाइन प्रदान करते हैं।
- पूरी परियोजना के दौरान, व्यवसायियों और विकास दल को नियमित रूप से सहयोग करना चाहिए।
- विकास दल नियमित अंतराल पर अधिक सफल होने पर ध्यान केंद्रित करता है, फिर धुन करता है और तदनुसार अपने कार्यों को बदलता है।
- पूरे वेग से दौड़ना
- स्प्रिंट समीक्षा
- स्प्रिंट योजना
- स्प्रिंट पूर्वव्यापी
- दैनिक स्क्रम
- VISUALIZATION
- सीमित कार्य प्रगति पर
- प्रवाह प्रबंधन
- नीतियों को स्पष्ट करना
- फीडबैक लूप का उपयोग करना
- सहयोगात्मक या प्रायोगिक विकास
- मॉडलिंग और पुनरावृत्त विकास
- सुगम कार्यशाला
- टाइमबॉक्सिंग
- MoSCoW प्राथमिकता
- समग्र मॉडल विकसित करें
- फीचर सूची बनाएं
- सुविधा के अनुसार योजना
- फीचर द्वारा डिजाइन
- फीचर द्वारा निर्मित
- योजना खेल, छोटी विज्ञप्ति
- सामूहिक स्वामित्व, सतत एकीकरण
- रूपक, सरल डिजाइन, परीक्षण, रिफैक्टरिंग, जोड़ी प्रोग्रामिंग
- साइट पर ग्राहक, कोडिंग मानक
- क्रिस्टल चुस्त ढांचे के उपयोग के कई फायदे हैं।
- टीमों को उस तरह से काम करने की बहुत आजादी है जिस तरह से वे फिट दिखते हैं।
- प्रबंधन के समय में कटौती करते हुए टीमें एक दूसरे के साथ सीधे बातचीत करती हैं।
- जैसे-जैसे टीम फैलती या सिकुड़ती जाती है, संरचना समायोजित होती जाएगी।
- क्रिस्टल चुस्त ढांचे के मार्गदर्शक सिद्धांत
- मैं कार्यान्वयन: प्रोग्रामर पिछले चरणों से मानदंड और विशिष्टताओं को आत्मसात करते हैं और कार्यान्वयन प्रक्रिया के दौरान वास्तविक कोड उत्पन्न करते हैं।
बार-बार डिलीवरी: आप अपने वास्तविक उपयोगकर्ताओं को नियमित रूप से कोड प्रदान कर सकते हैं। इसके बिना, आप एक ऐसी वस्तु बनाने का जोखिम उठाते हैं जो कोई नहीं चाहता।चिंतनशील सुधार: विचार करें कि आपने क्या किया है, आपने इसे कैसे किया है और आपने इसे क्यों किया है। विचार करें कि आप इसे भविष्य में एक समुदाय के रूप में कैसे विकसित कर सकते हैं।काम पर ध्यान दें: टीम के सदस्यों को इस बात का एहसास होना चाहिए कि उन्हें आगे किस पर ध्यान देना चाहिए और उसे पूरा करना चाहिए। इसके लिए स्पष्ट संचार और जहां आवश्यक हो, प्रलेखन की आवश्यकता होती है।व्यक्तिगत सुरक्षा: टीम के सदस्यों को स्वतंत्र रूप से और उपहास के डर के बिना विचारों पर चर्चा करने में सहज महसूस करना चाहिए। एक क्रिस्टल स्क्वाड में, कोई गलत उत्तर या बुरे विचार नहीं होते हैं।तकनीकी टूलींग: कॉकबर्न का मानना था कि विकास टीमों की पहुंच होनी चाहिए निरंतर परिनियोजन जैसे सॉफ़्टवेयर उपकरण , स्वचालित परीक्षण, और कॉन्फ़िगरेशन प्रबंधन 1990 के दशक में भी वापस।विषय वस्तु विशेषज्ञों और उपयोगकर्ताओं तक पहुंच: जहां आवश्यक हो, टीम के सदस्यों को वास्तविक उपयोगकर्ताओं और विशेषज्ञों से इनपुट प्राप्त करना चाहिए।आसमाटिक संचार: कॉकबर्न के अनुसार, सह-स्थान (एक ही भौतिक स्थान में टीमों का होना) आवश्यक है, क्योंकि यह टीम के सदस्यों के बीच सूचना प्रसारित करने में सक्षम बनाता है जैसे कि परासरण के माध्यम से।चुस्त कार्यप्रणाली के अनुप्रयोग
चुस्त दृष्टिकोण का उपयोग किसी भी क्षेत्र में किया जा सकता है जहां काम का प्रवाह होता है और काम के सामान का वितरण होता है, जैसे आईटी या सॉफ्टवेयर निर्माण। फुर्तीली प्रक्रियाओं का उद्देश्य ऐसे सॉफ्टवेयर विकसित करने के जोखिम को कम करते हुए उपभोक्ता मूल्य वितरण को अनुकूलित करना है जो बाजार या ग्राहक की जरूरतों को पूरा नहीं करता है।
वे इसे ऐतिहासिक रूप से लंबे वितरण जीवन चक्र (विरासत जलप्रपात विधियों के विशिष्ट) को छोटे जीवन चक्रों में विभाजित करके पूरा करते हैं जिन्हें स्प्रिंट या पुनरावृत्ति कहा जाता है। पुनरावृत्ति एक उपभोक्ता को एक कार्यशील उत्पाद प्रदान करने, इनपुट प्राप्त करने और उस प्रतिक्रिया के आधार पर सुधार करने की प्रक्रिया है।
नतीजतन, Agile प्रथाओं का उद्देश्य डिलीवरी के समय को कम करना है (जल्दी वितरण करना, अक्सर वितरित करना) ताकि यह सुनिश्चित हो सके कि उत्पाद के छोटे लंबवत बिट्स जल्द ही बाजार तक पहुंचें। यह उपभोक्ताओं को प्रारंभिक प्रतिक्रिया प्रदान करने और यह सुनिश्चित करने की अनुमति देता है कि वे अंततः अपनी आवश्यकताओं को प्राप्त करें।
एजाइल योजना की एक श्रृंखला, और तकनीकी दृष्टिकोण और प्रक्रियाओं को पुनरावृत्त रूप से संभालने वाली परियोजनाओं, सॉफ्टवेयर विकास, और अन्य वस्तुओं और सेवाओं के लिए एक कैच-ऑल शब्द के रूप में विकसित हुआ है।
अब तक, स्क्रम सबसे आम और प्रभावशाली सॉफ्टवेयर विकास तकनीक है, XP (एक्सट्रीम प्रोग्रामिंग या पेयर प्रोग्रामिंग), और, हाल ही में, कानबन इन तकनीकों में से एक है।
चुस्त सॉफ्टवेयर विकास में सर्वोत्तम अभ्यास
किसी प्रकार की चुस्त कार्यप्रणाली को लागू करते समय, आपको और आपकी टीम को सात चीजें करनी चाहिए:
ग्राहक सहयोग: ग्राहक सहयोग एक महत्वपूर्ण पहलू है जो एजाइल का अभ्यास करता है, और यह एजाइल मेनिफेस्टो में उल्लिखित मुख्य मूल्यों में से एक है। उत्पादन टीम के साथ स्पष्ट संपर्क के कारण उपभोक्ता अभी भी प्रगति से अवगत हो सकता है, और संयुक्त प्रयास के परिणामस्वरूप उच्च गुणवत्ता वाला उत्पाद प्राप्त होगा।
बर्नडाउन चार्ट: यह सभी देखें पीसी या मोबाइल डिवाइस पर ज़ूम ऑडियो कैसे म्यूट करेंएक बर्नडाउन चार्ट शेष कार्य का एक ग्राफ़ है जो आपको इसे पूरा करने के लिए कितना समय है। यदि आप अपनी चुस्त विकास प्रबंधन रणनीति के हिस्से के रूप में एक का उपयोग करते हैं तो आप भविष्यवाणी करेंगे कि यह सभी काम कब करेगा। इसमें व्यापक बर्नडाउन मैप में समय की प्रति यूनिट उपयोगकर्ता कहानियों की संख्या शामिल होगी।
लगातार एकीकरण: लगातार एकीकरण (CI) का अर्थ है कोड को अप-टू-डेट रखने के लिए दिन में कुछ बार डिवाइस का क्लीन बिल्ड डिलीवर करना। यह किसी भी समय रिलीज़ के लिए तैयार सॉफ़्टवेयर संस्करण के वितरण की अनुमति देता है, एक नियम के लिए धन्यवाद जिसमें कहा गया है कि प्रोग्रामर दिन के अंत में कुछ भी एकीकृत नहीं छोड़ते हैं।
प्रयोक्ता कहानी: एक उपयोगकर्ता कहानी का उद्देश्य एक आवश्यकता की सरलीकृत व्याख्या प्रदान करना है। यह एक उपकरण है जिसका उपयोग एंड-यूज़र परिप्रेक्ष्य से सॉफ़्टवेयर फ़ंक्शन का वर्णन करने के लिए किया जाता है। यह एक ग्राहक के रूप में उत्पाद के प्रकार की कल्पना करने में मदद करता है कि वे क्या चाहते हैं और वे इसे क्यों चाहते हैं।
जोड़ा प्रोग्राम तैयार करना: जोड़ियों में प्रोग्रामिंग का उद्देश्य विकास टीम के भीतर डिजाइन में सुधार, बग को कम करना और सूचना साझाकरण को बढ़ावा देना है। कम से कम मानक एजाइल प्रोग्रामिंग विधियों में से एक प्रोग्रामर को दूसरे प्रोग्रामर को 'ड्राइविंग' करने की आवश्यकता होती है। यह पदों की अदला-बदली कर सकता है।
स्वचालित परीक्षण: स्वचालित परीक्षण टीम को सूचित करता है कि कौन से कोड सुधार उपयुक्त हैं और क्या कोई सुविधा अपेक्षित रूप से कार्य कर रही है। किसी भी विश्लेषण के शुरू होने से पहले, प्रतिगमन परीक्षण स्वचालित रूप से किए जाते हैं।
परीक्षण संचालित विकास (टीडीडी): टीडीडी अभी भी विश्वास पैदा करते हुए सरलीकृत डिजाइनों को प्रोत्साहित करने की इच्छा रखता है। यह एक संक्षिप्त विकास चक्र की पुनरावृत्ति पर आधारित प्रणाली है जहां विनिर्देशों को परीक्षण मामलों में परिवर्तित किया जाता है। फिर सॉफ़्टवेयर को नए परीक्षणों को पास करने के लिए संशोधित किया जाता है, बजाय एक ऐसी प्रक्रिया के जहां सॉफ़्टवेयर जोड़ा जाता है जो आवश्यकताओं को पूरा करने के लिए सिद्ध नहीं हुआ है।
फुर्तीली परियोजना प्रबंधन क्या है?
इसकी अनुकूलन क्षमता के कारण, फुर्तीली परियोजना प्रबंधन का व्यापक रूप से मूल्य और जटिल कार्यों को वितरित करने के लिए उपयोग किया जाता है। सहयोग, बहुमुखी प्रतिभा, निरंतर विकास और उच्च गुणवत्ता वाले प्रदर्शन पर जोर दिया जाता है। यह पारदर्शी और मापने योग्य होने के लिए, प्रगति की निगरानी और उत्पाद को विकसित करने के लिए छह प्रमुख डिलिवरेबल्स का उपयोग करता है।
उत्पाद दृष्टि विवरण: उत्पाद की प्राथमिकताओं के विवरण को उत्पाद दृष्टि विवरण कहा जाता है।उत्पाद रोडमैप: उत्पाद की दृष्टि को साकार करने के लिए आवश्यक मानदंडों का उच्च-स्तरीय दृष्टिकोण उत्पाद रोडमैप है।उत्पाद बकाया: यह आपकी परियोजना के लिए आवश्यक चीज़ों की पूरी सूची है, जिसे प्राथमिकता के आधार पर व्यवस्थित किया गया है।रिलीज योजना: एक रिलीज़ योजना एक कार्यशील उत्पाद को जारी करने के लिए एक शेड्यूल है।स्प्रिंट बैकलॉग: वर्तमान स्प्रिंट से जुड़ी उपयोगकर्ता कहानियां (आवश्यकताएं), प्राथमिकताएं और गतिविधियां स्प्रिंट बैकलॉग कहलाती हैं।वेतन वृद्धि: यह उपभोक्ता को स्प्रिंट के अंत में हितधारकों को दिखाई गई कार्यशील उत्पाद कार्यक्षमता दे सकता है।फुर्तीली विकास के तहत, यह उत्पाद या सेवा देने के लिए टीम बनाने और बनाने के लिए कई तरीकों का उपयोग कर सकता है। प्रत्येक पद्धति एक विशिष्ट दृष्टिकोण पर जोर देती है और एक विशेष परिणाम पर ध्यान केंद्रित करती है। वांछित प्रभाव के आधार पर, फुर्तीली विधियों का चयन और कार्यान्वयन किया जाता है। उन सभी की अपनी विशेषताएं और शब्दावली है, लेकिन वे सभी समान मान्यताओं और प्रक्रियाओं का पालन करते हैं।
पारंपरिक जलप्रपात पद्धति
परंपरागत झरना मॉडल एक रैखिक परियोजना प्रबंधन तकनीक है जिसमें परियोजना की शुरुआत में हितधारकों और ग्राहकों की अपेक्षाओं को इकट्ठा किया जाता है। फिर उन आवश्यकताओं को पूरा करने के लिए एक अनुक्रमिक परियोजना योजना विकसित की जाती है। इसका नाम इस बात से मिलता है कि कैसे परियोजना का प्रत्येक चरण एक झरने की तरह अगले चरण में जाता है।
वाटरफॉल मॉडल परियोजना गतिविधियों को रैखिक अनुक्रमिक चरणों में विभाजित करता है, जिनमें से प्रत्येक पिछले चरण के डिलिवरेबल्स पर निर्भर है और एक कार्य विशेषज्ञता से मेल खाता है।
सभी कंपनियां वाटरफॉल, एजाइल और स्क्रम विकास पद्धतियों का उपयोग करती हैं, और प्रत्येक को विकास के लिए एक मान्य दृष्टिकोण माना जाता है। हालाँकि, जैसे-जैसे ये दो पद्धतियाँ मिलती हैं और टकराती हैं, समस्याएँ उत्पन्न होती हैं।
जलप्रपात पद्धति में चरण
चरणों के अलग-अलग नाम हैं, लेकिन आविष्कारक ने शुरू में उन्हें इस प्रकार वर्णित किया:
आवश्यकताएं: वाटरफॉल की एक महत्वपूर्ण विशेषता यह है कि सभी ग्राहक आवश्यकताओं को परियोजना की शुरुआत में एकत्र किया जाता है, जिससे उत्पाद समाप्त होने से पहले ग्राहक के संपर्क के बिना सभी बाद के चरणों को निर्धारित किया जा सके। इस कदम पर, यह माना जाता है कि यह सभी विशिष्टताओं को इकट्ठा करेगा।डिज़ाइन: डिजाइन चरण के दो उप चरण हैं: वैचारिक डिजाइन और भौतिक डिजाइन। तार्किक अवधारणा उप-चरण के दौरान संभावित विचारों का मंथन और सिद्धांत किया जाता है। भौतिक डिजाइन प्रक्रिया सैद्धांतिक अवधारणाओं और स्कीमा को ठोस आवश्यकताओं में बदल देती है।सत्यापन: इस प्रक्रिया के दौरान, ग्राहक यह सुनिश्चित करने के लिए उत्पाद का निरीक्षण करता है कि यह परियोजना की शुरुआत में निर्धारित विनिर्देशों को पूरा करता है। यह तैयार उत्पाद को उपभोक्ता तक पहुंचाकर पूरा किया जाता है।रखरखाव: रखरखाव प्रक्रिया के दौरान, उपभोक्ता प्रतिदिन उत्पाद का उपयोग करता है, बग्स, अपर्याप्त कार्यक्षमता और विकास के दौरान हुई अन्य त्रुटियों का पता लगाता है। इन सुधारों को उत्पादन टीम द्वारा ग्राहकों की संतुष्टि तक आवश्यकतानुसार लागू किया जाता है।निष्कर्ष
सॉफ्टवेयर विकास प्रक्रिया के लिए फुर्तीली परियोजना प्रबंधन एक प्रभावी उपकरण है। फुर्तीली टीमें आवश्यक व्यावसायिक लाभों की एक श्रृंखला की पेशकश करके विकास टीम और ग्राहक की मदद करती हैं।
एजाइल एक परियोजना विकास टीम को सबसे लोकप्रिय परियोजना नुकसानों में से कई को अधिक प्रभावी ढंग से प्रबंधित करने की अनुमति देता है। Agile कस्टम सॉफ़्टवेयर उत्पादन में शामिल प्रक्रियाओं को पुनर्गठित और पुन: परिकल्पित करके एक दुबले और अधिक व्यवसाय-केंद्रित तरीके से समान लक्ष्यों को प्राप्त करता है।
अक्सर पूछे जाने वाले प्रश्नों
चुस्त कार्यप्रणाली से क्या तात्पर्य है?
फुर्तीली कार्यप्रणाली परियोजना प्रबंधन प्रक्रिया का एक रूप है जिसका उपयोग मुख्य रूप से सॉफ्टवेयर विकास में किया जाता है और जिसमें स्व-संगठित और क्रॉस-फ़ंक्शनल टीमों और उनके ग्राहकों के संयुक्त प्रयासों से मांगें और विचार सामने आते हैं।
चुस्त कार्यप्रणाली क्या है, और यह कैसे काम करती है?
फुर्तीली परियोजना दृष्टिकोण परियोजना प्रबंधन का एक रूप है जो एक परियोजना को चरणों में विभाजित करता है। इसके लिए हितधारकों के साथ चल रहे सहयोग के साथ-साथ प्रत्येक बिंदु पर निरंतर प्रगति की आवश्यकता है। काम शुरू होने के बाद टीम तैयार करने, लागू करने और समीक्षा करने के एक चरण के माध्यम से साइकिल चलाती है।
फुर्तीली और स्क्रम में क्या अंतर है?
स्क्रम एक चुस्त सॉफ्टवेयर विकास प्रक्रिया है जो कम से कम समय में ग्राहक के प्रदर्शन को उत्पन्न करने पर केंद्रित है। एजाइल सॉफ्टवेयर विकास प्रक्रिया में विकास और परीक्षण का एक निरंतर पुनरावृत्ति है। स्क्रम प्रत्येक स्प्रिंट के बाद सॉफ्टवेयर डिलीवर करता है, जबकि एजाइल मेथडोलॉजी सुझावों के लिए रोजाना सॉफ्टवेयर डिलीवर करती है।
एजाइल का उपयोग क्यों किया जाता है?
फुर्तीली विधियाँ, जब ठीक से लागू की जाती हैं, तो विकास टीमों को प्रत्येक रिलीज़ के साथ अपने सॉफ़्टवेयर की गुणवत्ता में उल्लेखनीय वृद्धि करने की अनुमति मिलती है। इतना ही नहीं, बल्कि यह टीमों को जल्दी से बदलाव के अनुकूल होने में सक्षम बनाता है। स्प्रिंट त्वरित, टाइम-बॉक्सिंग पुनरावृत्तियां हैं जो एजाइल विधि बनाती हैं। प्रत्येक स्प्रिंट एक प्रयोग करने योग्य वस्तु उत्पन्न करता है।
चुस्त सॉफ्टवेयर विकास का इतिहास
1990 के दशक में सॉफ्टवेयर विकास में थोड़ी समस्या थी। उद्योग ने महसूस किया कि यह उपभोक्ता मांगों और आवश्यकताओं को पूरा करने के लिए पर्याप्त तेज़ी से आगे नहीं बढ़ सकता है, जिसे एप्लिकेशन डेवलपमेंट क्राइसिस या एप्लिकेशन डिलीवरी लैग करार दिया गया है क्योंकि व्यावसायिक आवश्यकता और वास्तविक एप्लिकेशन के बीच का औसत समय लगभग तीन वर्ष था।
पारंपरिक उत्पादन मॉडल ने एक समयरेखा दृष्टिकोण का उपयोग किया, जिसमें विकास चरणों में हुआ, और अंतिम चरण तक उपभोक्ताओं के लिए तैयार उत्पाद का खुलासा नहीं किया गया। नतीजतन, जब तक एक वास्तविक आवेदन पूरा हो गया था, तब तक इस बात की अत्यधिक संभावना थी कि परियोजना के प्रारंभिक लक्ष्यों के विनिर्देश और प्रक्रियाएं बदल गई हों।
कुछ उद्योगों में अंतराल तीन साल से भी अधिक था। किसी जटिल उपकरण के उपयोग में आने में एयरोस्पेस और रक्षा उद्योगों को 20 साल या उससे अधिक समय लग सकता है। अंतरिक्ष शटल कार्यक्रम, जो 1982 में शुरू किया गया था और 1960 के दशक से सूचना और प्रसंस्करण प्रौद्योगिकी का उपयोग किया गया था, एक चरम लेकिन असामान्य उदाहरण नहीं है। अत्यधिक जटिल हार्डवेयर और सॉफ्टवेयर सिस्टम को अक्सर एक दशक की लंबी अवधि में नियोजित, निर्मित और कार्यान्वित किया जाता था।
चुस्त सॉफ्टवेयर विकास मूल्य और सिद्धांत:
पहला महत्व समन्वय और टीम वर्क पर जोर देता है। हमें यह स्वीकार करना चाहिए कि सॉफ्टवेयर विकास एक मानवीय गतिविधि है जिसमें मानव संपर्क की गुणवत्ता महत्वपूर्ण है। सॉफ़्टवेयर विकास में प्रक्रियाओं और काम करने वाले उपकरणों पर सहभागिता आवश्यक है, लेकिन उत्कृष्ट सॉफ़्टवेयर के लिए टीम वर्क की आवश्यकता होती है, भले ही उपकरण काम करने वाले सॉफ़्टवेयर की परवाह किए बिना।
व्यापक दस्तावेज़ीकरण पर काम करने वाले सॉफ़्टवेयर का अर्थ है कि दस्तावेज़ीकरण का अपना स्थान है, और यह उपयोगकर्ताओं और सहकर्मियों दोनों के लिए एक मूल्यवान संसाधन या मार्गदर्शक के रूप में काम कर सकता है। हालाँकि, सॉफ़्टवेयर विकास का उद्देश्य ऐसे सॉफ़्टवेयर बनाना है जो व्यापक दस्तावेज़ीकरण के बजाय व्यावसायिक लाभ प्रदान करते हैं।
अनुबंध वार्ता पर ग्राहक सहयोग परिवर्तन का जवाब देता है कि ग्राहकों और सॉफ्टवेयर विकास टीमों को सहयोग करना चाहिए और नियमित रूप से मिलना चाहिए। इनपुट सुनने और प्राप्त करने से सभी हितधारक क्या चाहते हैं, इसकी बेहतर समझ प्राप्त कर सकते हैं।
परिवर्तन सॉफ्टवेयर विकास का एक अनिवार्य हिस्सा हैं, और सॉफ्टवेयर विकास प्रक्रिया को इस तथ्य का प्रतिनिधित्व करना चाहिए। एक परियोजना अनुसूची को परिस्थितियों के अनुसार समायोजित करने के लिए पर्याप्त रूप से अनुकूल होना चाहिए।
फुर्तीली घोषणापत्र के 12 बुनियादी मूल्य और सिद्धांत
चुस्त सॉफ्टवेयर विकास के लाभ
प्रत्येक स्प्रिंट के पहले, दौरान और बाद में, एजाइल विकास कई हितधारक और टीम भागीदारी के अवसर प्रदान करता है। चूंकि क्लाइंट प्रोजेक्ट के हर पहलू पर काम कर रहा है, इसलिए वे प्रोजेक्ट टीम के साथ लगातार संपर्क में हैं।
इससे टीम को अपने विजन को बेहतर ढंग से समझने के अधिक मौके मिलते हैं। काम करने वाले सॉफ़्टवेयर को जल्दी वितरित करना और अक्सर उच्च गुणवत्ता वाले सॉफ़्टवेयर का उत्पादन करने की टीम की क्षमता में हितधारक विश्वास बनाता है और उन्हें परियोजना में अधिक शामिल होने की अनुमति देता है।
उत्पाद की प्राथमिकता से लेकर पुनरावृत्ति तैयारी और परीक्षण सत्रों से लेकर नई कार्यक्षमता वाले नियमित सॉफ़्टवेयर निर्माण तक ग्राहकों के पास चुस्त दृष्टिकोण में सक्रिय होने का एक अनूठा अवसर है। हालांकि, जवाबदेही के अतिरिक्त मूल मूल्यों के बदले में, ग्राहकों को यह महसूस करना चाहिए कि वे एक कार्य प्रगति पर देख रहे हैं।
1-4 सप्ताह के टाइम-बॉक्सिंग, निश्चित शेड्यूल स्प्रिंट का उपयोग करते हुए, उच्च स्तर की पूर्वानुमेयता के साथ, तेजी से और नियमित रूप से नई सुविधाओं के लगातार वितरण के साथ। यदि कोई बाजार मूल्य है, तो यह अक्सर प्रोग्राम को अपेक्षा से पहले रिलीज़ या बीटा-परीक्षण करने की अनुमति देता है।
चूंकि प्रत्येक स्प्रिंट की एक निर्धारित लंबाई होती है, इसलिए लागत का अनुमान लगाया जा सकता है और यह उस काम की मात्रा तक सीमित है जो टीम निश्चित समय सीमा के भीतर करेगी। प्रत्येक स्प्रिंट से पहले ग्राहक के पूर्वानुमानों के साथ संयुक्त होने पर, ग्राहक प्रत्येक सुविधा की अनुमानित लागत को समझता है, इस बारे में बेहतर निर्णय लेता है कि किन विशेषताओं को प्राथमिकता दी जाती है और उन्हें और पुनरावृत्तियों की आवश्यकता है या नहीं।
हालांकि टीम को प्रत्येक पुनरावृत्ति पर अपनी कार्यक्षमता के एक सहमत-उपसमुच्चय के उत्पादन पर ध्यान केंद्रित करना चाहिए, समग्र उत्पाद बैकलॉग को लगातार परिष्कृत और पुन: प्राथमिकता दी जा सकती है। जोड़े गए या संशोधित किए गए बैकलॉग चीजों को अगले संस्करण के लिए शेड्यूल किया जा सकता है, जिससे सुधारों को हफ्तों में लागू किया जा सके।
टीम जानती है कि क्लाइंट के व्यवसाय के लिए सबसे महत्वपूर्ण क्या है और क्लाइंट को सुविधाओं की प्राथमिकता तय करने के लिए सक्षम करके सबसे अधिक व्यावसायिक मूल्य वाली सुविधाएँ प्रदान कर सकता है।
व्यवसाय-केंद्रित अनुमोदन आवश्यकताओं के साथ-साथ उत्पाद की कार्यक्षमता का वर्णन करने के लिए एजाइल सॉफ़्टवेयर विकास में उपयोगकर्ता कहानियों का अक्सर उपयोग किया जाता है। प्रत्येक सुविधा वास्तविक उपयोगकर्ताओं की आवश्यकताओं पर ध्यान केंद्रित करके, केवल एक आईटी पहलू ही नहीं, बल्कि मूल्य प्रदान करती है। यह आपको प्रत्येक स्प्रिंट के बाद सॉफ्टवेयर को बीटा परीक्षण करने की अनुमति देता है, जिससे आप परियोजना में जल्द ही उपयोगी प्रतिक्रिया प्राप्त कर सकते हैं और आवश्यकतानुसार सुधार कर सकते हैं।
परियोजना टीम प्रबंधनीय इकाइयों में परियोजना को तोड़कर उच्च गुणवत्ता वाले उत्पादन, परीक्षण और समन्वय पर ध्यान केंद्रित करेगी। प्रत्येक पुनरावृत्ति के दौरान नियमित रूप से निर्माण और परीक्षण और समीक्षा करने के द्वारा दोषों की पहचान और मरम्मत करके गुणवत्ता को बढ़ाया जाता है।
एजाइल मेथडोलॉजी: एजाइल मेथड्स सॉफ्टवेयर डेवलपमेंट मॉडल क्या हैं?
एलिस्टेयर कॉकबर्न के अनुसार, एजाइल कार्यप्रणाली सम्मेलनों का एक संग्रह है जिसे एक समूह पालन करना चुनता है। इसका मतलब है कि विकास टीमों की अपनी कार्यप्रणाली होगी, जो अन्य टीमों की कार्यप्रणाली से छोटे या महत्वपूर्ण तरीकों से भिन्न होगी।
नतीजतन, एजाइल कार्यप्रणाली वे परंपराएं हैं जिन्हें एक टीम एजाइल सॉफ्टवेयर विकास मूल्यों और अवधारणाओं का पालन करते समय अपनाना पसंद करती है। आइए कुछ सबसे अधिक उपयोग किए जाने वाले तरीकों पर एक नज़र डालें:

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

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

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