सॉफ्टवेयर इंजीनियरिंग के इस अध्याय What is Agile Model in Hindi में हम चर्चा करेंगे कि एजाइल मॉडल क्या है, इसके principles, advantage, disadvantage और लोकप्रिय agile methodologies के बारे में। लेख को अंत तक पढ़ने के बाद आपको इस software development process की पूरी जानकारी हो जाएगी।
Jump to:
एजाइल मॉडल क्या है
एजाइल मेनिफेस्टो क्या है
एजाइल मॉडल के 12 सिद्धांत
लोकप्रिय एजाइल मेथोडोलॉजी
फायदे और नुकसान
What is Agile Model in Hindi? (एजाइल मॉडल क्या है)
Agile model एक iterative और incremental approach है। जहां iterative का मतलब है कि इस software development process model में same process को बार-बार repeat किया जाता है।
उदाहरण के लिये हम Agile process model में निम्नलिखित phases को follow करते है जैसे: requirement gathering, design, coding, testing, deployment और feedback. अब यही process बार-बार repeat होती है।
वहीं incremental का मतलब है हम large project को small parts (iterations) में break कर देते है, जिससे हम थोड़े-थोड़े समय के बाद software में नए features को add करते चले जाते है।
Agile model के उपयोग से हम कम समय के भीतर ही customer को software की fast delivery दे सकते है। इस मॉडल के अंतर्गत customer और development team के बीच अच्छा communication रहता है।
अगर customer को s/w में कोई भी changes करवाने हो, तो development team सीधे customer से contact करती है और उन requirement change को collect करके उन्हें implement करती है।
Agile model का मुख्य objective यह है कि हमें customer को बहुत ही short time में software का working model deliver करना है ताकि customer satisfaction को हासिल किया जा सके। आज के समय Agile सबसे सर्वश्रेष्ठ SDLC methodology है और इसे तकनीकी उधोग में सबसे अधिक उपयोग किया जाता है।
अगर हम traditional SDLC model जैसे Waterfall model को देखें तो यह पूरी तरह से प्रारंभिक requirements पर निर्भर करता है। अगर हम इस मॉडल का उपयोग करते है तो हमें software development process के प्रारंभ में ही सभी requirements को अच्छे से define कर लेना होता है। क्योंकि एक बार अगर हम अगले phase में बढ़ गए तो back जाना और change करना बहुत मुश्किल है।
Agile model के साथ ऐसा नहीं है। इस methodology में इस बात को समझा गया है कि आज के आधुनिक युग मे customers की requirements लगातार change हो रही है। इसलिए पूरे प्रोजेक्ट में requirements को check किया जाता है और जो changes required होते है उन्हें s/w में implement किया जाता है। इससे अंत मे customer को वैसा s/w प्राप्त होता जैसा वे चाहते थे।
अन्य SDLC Models – Classical waterfall model, Iterative model, Prototype model, Spiral model, RAD Model, Incremental Model.
Agile Manifesto क्या है?
अतीत में software develop करने के लिये काफी rigid process को follow किया जाता था, documentation को काफी importance दी जाती थी। समय के साथ जैसे-जैसे product की complexities बढ़ती गयी, वैसे-वैसे delivery time जो customer को दिया जा रहा था वह उनकी expectations को पूरा नहीं कर रहा था, जिससे product तेजी से fail हो रहे थे।
फिर 2001 में, 17 software developer एक साथ आए और software development के लिए संभावित हल्के तरीकों पर चर्चा कीं। वे एक manifesto लेकर आये जिसमें software development process को और अधिक agile (चुस्त) बनाने के लिये 4 values और 12 principles शामिल किए गए थे।
इस manifesto को ही Agile Manifesto के नाम से जाना जाता है। इन values और principles ने software develop करने की प्रक्रिया में जबरदस्त improvement किया।
Agile Manifesto की 4 values इस प्रकार है:
Individuals and Interactions Over Processes and Tools: इस manifesto की जो पहली value है, वो ये है कि हमें प्रोजेक्ट से जुड़े लोगों (people) को अधिक महत्व देना है ना कि processes और tools को क्योंकि वहीं लोग customer के साथ communicate करते है और development process को चलाते है।
Working Software Over Comprehensive Documentation: अतीत में s/w के documentation में बहुत अधिक समय लगाया जाता था जिससे यह development में देरी का कारण बनता था। जबकि agile में working software को अधिक महत्व दिया जाता है, हालांकि यह documentation को पूरी तरह से समाप्त नहीं कर देता है।
Customer collaboration over contract negotiation: पारंपरिक सॉफ्टवेयर विकास पद्धति में कस्टमर development process के शुरू होने से पहले और उसके पूरा होने के बाद ही शामिल होता था। जबकि agile पद्धति में customer पूरी development process के दौरान शामिल रहता है, और सहयोग भी करता है।
Responding to change over following a plan: शुरूवात में एक detailed plan बनाकर project के अंत तक उसे follow करने के बजाए हमें changes को respond और adapt करना चाहिए। इससे product हमेशा improve होता है।
12 Principles of Agile Model in Hindi
Agile manifesto में शामिल 12 principles निम्नलिखित है:
- हमारी सर्वोच्च प्राथमिकता customer को satisfy करना है। इसके लिए हमें शीघ्र और निरंतर software की delivery करनी होगी।
- पूरे Development process के दौरान changing requirements का स्वागत करें, यहां तक कि project के late में भी।
- कुछ हफ़्तों से लेकर कुछ महीनों में working software को frequently deliver करते रहिये।
- Business के लोगों और developers को पूरे project में प्रतिदिन एक साथ काम करना चाहिए।
- Motivated individuals के आसपास projects को build करें। उन्हें वह वातावरण और समर्थन दें जिसकी उन्हें आवश्यकता है, और पूरा काम करने के लिए उन पर भरोसा करें।
- एक development team को और उसके भीतर information देने का सबसे कुशल और प्रभावी तरीका face-to-face conversation है।
- Working software प्रोजेक्ट की progress को measure करता है।
- Agile प्रोसेस sustainable development को बढ़ावा देती है। प्रायोजकों, डेवलपर्स और उपयोगकर्ताओं को अनिश्चित काल तक निरंतर गति बनाए रखने में सक्षम होना चाहिए।
- नियमित अंतराल पर, टीम इस बात पर विचार करती रहे है कि कैसे और अधिक प्रभावी बना जा सकता है।
- Technical excellence और अच्छे design पर लगातार ध्यान देने से agility बढ़ती है।
- सर्वश्रेष्ठ आर्किटेक्चर, आवश्यकताएं और डिजाइन स्व-संगठित टीमों से निकलते हैं।
- Simplicity जरूरी है।
Popular Agile Methodologies
Agile methodology विभिन्न प्रकार की होती है, इन्हें अक्सर हम frameworks भी कहते है। सभी agile framework एक अलग software development approach है। इनमें से आपके project के लिये कौनसी approach सर्वश्रेष्ठ है यह आपकी आवश्कताओं और अन्य factors पर निर्भर करता है। हालांकि नीचे कुछ popular agile methodologies की list दी गयी है –
Scrum
Extreme Programming (XP)
LEAN
Kanban
Crystal
Feature Driven Development (FDD)
Dynamic Systems Development Method (DSDM)
Domain Driven Design (DDD)
Advantage and Disadvantage of Agile Model in Hindi
Advantage | Disadvantage |
---|---|
Project के development में customer हमेशा involve रहता है और लगातार feedback प्रदान करता है। इसके अलावा उसे working s/w की quick delivery दी जाती है जिसके कारण customer के satisfy होने की संभावना अधिक होती है। | क्योंकि project managers अक्सर tasks को reprioritize करते है। यह possible है कि कुछ items जो delivery के लिए schedule किए गए हों, हो सकता है कि वो time पर complete न हो। |
यह मॉडल ऐसे projects के लिए beneficial है जहाँ end goal स्पष्ट रूप से defined नहीं होते है। जैसे-जैसे project आगे बढ़ता है, goal clear होते जाते है जिससे team उन्हें adapt कर सकती है। | Team का knowledgeable होना जरूरी होता है।Agile team आमतौर पर small होती है इसलिए team members को विभिन्न areas में highly skilled होना चाहिए और सफल होने के लिये agile methodology को अच्छे से समझना चाहिए। |
इस मॉडल में frequent communication को face-to-face interactions को encourage किया जाता है जिससे team collaboration को बढ़ावा मिलता है। | Agile process के दौरान active involvement और collaboration की आवश्यकता होती है जो एक traditional approach की तुलना में अधिक time consuming है। इसमें developers से time commitment की आवश्यकता होती है। |
अगर development process में late से भी कोई changes की requirement आती है तो इस मॉडल में उन्हें adapt करना आसान है। | अगर customer स्पष्ट नहीं है कि वे end product कैसा चाहते है, तो project आसानी से पटरी से उतर सकता है। |
Agile methodology में customers के विचारों को हमेशा priority दी जाती है। customers के पास deliver किये जा रहे काम को देखने, अपने input share करने और end product पर impact डालने के कई अवसर होते है जो बहुत महत्वपूर्ण है। | Proper documentation के अभाव के कारण, विभिन्न phases में लिए गए key decision को team के विभिन्न members द्वारा किसी भी समय misinterprets किया जा सकता है। |
Conclusion (संक्षेप में)
उम्मीद है, इस पोस्ट What is Agile Model in Hindi? (एजाइल मॉडल क्या है) को पढ़ने के बाद आपको यह विषय अच्छे से समझ मे आ गया होगा। इसके साथ-साथ इसके principles, लोकप्रिय agile methodologies, advantage और disadvantage के बारे में भी आपको जानकारी हो गयी होगी।
यदि फिर भी विषय से सम्बंधित कोई सवाल या सुझाव आपके पास हो तो कृपया हमें नीचे comments में जरूर बताए। अंत मे लेख ज्ञानवर्धक लगा हो तो इसे social media पर अपने दोस्तों के साथ share जरूर करें।