अनुकूली सॉफ्टवेयर विकास - अवधारणाओं
इस अध्याय में, हम Adaptive Software Development की विभिन्न अवधारणाओं को समझेंगे।
कॉम्प्लेक्स एडेप्टिव सिस्टम्स (सीएएस) सिद्धांत
सांता फ़े इंस्टीट्यूट में ब्रायन आर्थर और उनके सहयोगियों ने भौतिकी, जीव विज्ञान, विकास और अर्थशास्त्र की समझ में क्रांतिकारी बदलाव के लिए कॉम्प्लेक्स एडेप्टिव सिस्टम्स (सीएएस) सिद्धांत का उपयोग किया।
ब्रायन आर्थर ने मुख्यधारा के अर्थशास्त्रियों को समझाने की कोशिश करते हुए दो दशक से अधिक समय तक यह निष्कर्ष निकाला कि घटते हुए रिटर्न, संतुलन और नियतात्मक गतिशीलता की मूलभूत धारणाओं पर हावी उनका दृष्टिकोण वास्तविकता को समझने के लिए पर्याप्त नहीं था। नई दुनिया बढ़ती कारण, अस्थिरता और कारण और प्रभाव को निर्धारित करने में असमर्थता में से एक है।
व्यवहार, शैली और संस्कृति में दोनों दुनिया अलग-अलग हैं। वे कहते हैं -
- विभिन्न प्रबंधन तकनीकों
- अलग-अलग रणनीतियाँ
- अलग समझ
जटिल सॉफ्टवेयर विकास
सॉफ्टवेयर एप्लिकेशन के दायरे में विस्फोट होने के साथ, सॉफ्टवेयर विकास संगठन भी इसी तरह के विरोधाभासों का उल्लेख कर रहे हैं जैसा कि ऊपर उल्लेख किया गया है।
एक विश्व का निर्धारण नियतात्मक विकास द्वारा किया जाता है, जो प्रबंधन प्रथाओं से प्राप्त होता है जो स्थिरता और पूर्वानुमान की मूल बातों से निहित होता है (जिसका अर्थ है आर्थर की शर्तों का मतलब रिटर्न कम करना)
दूसरी दुनिया का प्रतिनिधित्व उद्योगों द्वारा घटते-बढ़ते रिटर्न वातावरण से हो रहा है, जो अप्रत्याशित, अशुभ और तेज है।
इस दूसरी दुनिया के मुद्दों को संबोधित करने के लिए, जिग हाईस्मिथ ने एक ढांचा, अनुकूली सॉफ्टवेयर विकास की पेशकश की जो कि निर्धारक सॉफ्टवेयर विकास से अलग है।
अनुकूली सॉफ्टवेयर डेवलपमेंट जटिल प्रणालियों को संबोधित करने पर केंद्रित है -
विकास जीवन चक्र के लिए अनुकूली सॉफ्टवेयर डेवलपमेंट।
अनुकूली प्रबंधन तकनीक पारंपरिक परियोजना प्रबंधन प्रथाओं से एक अलग मानसिकता के लिए बुला।
इस ट्यूटोरियल में, आप इन दोनों कार्यान्वयनों को समझ सकते हैं।
अनुकूली सॉफ्टवेयर डेवलपमेंट (एएसडी) दो दृष्टिकोणों पर आधारित है -
इस अध्याय के पहले खंड में दिए गए, कॉम्प्लेक्स एडेप्टिव सिस्टम्स (CAS) सिद्धांत पर आधारित वैचारिक परिप्रेक्ष्य।
पर आधारित व्यावहारिक दृष्टिकोण
निर्धारक सॉफ्टवेयर विकास के तरीकों के साथ अनुभव के वर्ष।
परामर्श, अभ्यास, और रैपिड एप्लीकेशन डेवलपमेंट (आरएडी) तकनीकों के बारे में लिखना; और उनके उत्पाद विकास के प्रबंधन पर उच्च-प्रौद्योगिकी सॉफ्टवेयर कंपनियों के साथ काम करना।
इस अध्याय में, आप एडाप्टिव सॉफ्टवेयर डेवलपमेंट के वैचारिक परिप्रेक्ष्य को समझेंगे।
कॉम्प्लेक्स एडेप्टिव सिस्टम्स (सीएएस) अवधारणाओं
कॉम्प्लेक्स एडेप्टिव सिस्टम्स (CAS) सिद्धांत की कई अवधारणाएं हैं। अनुकूली सॉफ्टवेयर विकास इन अवधारणाओं में से दो पर आधारित है -
- Emergence
- Complexity
उभार
जटिल सॉफ्टवेयर उत्पाद-विकास परियोजनाओं में, परिणाम स्वाभाविक रूप से अप्रत्याशित होते हैं। हालांकि, सफल उत्पाद हर समय ऐसे वातावरण से निकलते हैं।
यह इमर्जेशन द्वारा हो सकता है, जैसा कि कॉम्प्लेक्स एडेप्टिव सिस्टम (सीएएस) सिद्धांत में चित्रित किया गया है। इसे एक साधारण उदाहरण से समझा जा सकता है, पक्षियों का व्यवहार।
जब आप पक्षियों के झुंड का निरीक्षण करते हैं, तो आप नोटिस करते हैं कि -
प्रत्येक पक्षी करने की कोशिश करता है
अन्य पक्षियों सहित पर्यावरण में अन्य वस्तुओं से न्यूनतम दूरी बनाए रखें।
इसके पड़ोस में पक्षियों के साथ मेल खाता है।
अपने पड़ोस में पक्षियों के द्रव्यमान के कथित केंद्र की ओर बढ़ें।
समूह के लिए व्यवहार के कोई नियम नहीं हैं। एकमात्र नियम व्यक्तिगत पक्षियों के व्यवहार के बारे में हैं।
हालांकि, एक आकस्मिक व्यवहार मौजूद है, पक्षियों का झुंड। जब त्रुटिपूर्ण पक्षी पकड़ने के लिए दौड़ते हैं, तो झुंड दूसरी ओर बाधाओं और सुधारों के आसपास फूट जाता है।
यह एडेप्टिव डेवलपमेंट में सबसे कठिन मानसिक मॉडल परिवर्तनों की आवश्यकता को दर्शाता है - उस व्यक्तिगत स्वतंत्रता को प्रबंधित करने और व्यवस्थित करने के तरीकों से कि एक रचनात्मक नया क्रम सहज आत्मसंघर्ष से अप्रत्याशित रूप से उभरता है।
विकास के अलावा, उद्भव प्रबंधन के दृष्टिकोण से भी सबसे महत्वपूर्ण अवधारणा है।
जटिलता
सॉफ्टवेयर विकास के संदर्भ में, जटिलता के बारे में है -
एक टीम के व्यक्ति जैसे डेवलपर्स, ग्राहक, विक्रेता, प्रतियोगी, और शेयरधारक, उनकी संख्या और उनकी गति।
आकार और तकनीकी जटिलता।
अनुकूली सॉफ्टवेयर विकास प्रथाओं
अनुकूली सॉफ्टवेयर डेवलपमेंट सॉफ्टवेयर प्रबंधन प्रथाओं पर एक अलग दृष्टिकोण प्रदान करता है। नीचे दिए गए अनुभागों में, आप दो महत्वपूर्ण प्रथाओं - गुणवत्ता और आरएडी को समझ सकते हैं, जिनमें से दोनों में आवश्यकताओं को इकट्ठा करने के लिए प्रभाव है।
आप इस ट्यूटोरियल में अध्याय, अनुकूली सॉफ्टवेयर डेवलपमेंट प्रैक्टिस में सभी प्रथाओं का विवरण पा सकते हैं।
गुणवत्ता
एक जटिल वातावरण में, "पहली बार सही करें" की पुरानी-पुरानी प्रथा काम नहीं करती है क्योंकि आप अनुमान नहीं लगा सकते कि शुरुआत में क्या सही है। सही मूल्य का उत्पादन करने के लिए आपके पास एक उद्देश्य होना चाहिए। हालांकि, जटिल वातावरण में, मान (घटक, प्रदर्शन, दोष स्तर), शेड्यूल और संसाधनों जैसे मूल्य घटकों के संयोजन और क्रमपरिवर्तन इतने विशाल हैं कि कभी भी एक इष्टतम मूल्य नहीं हो सकता है। इसलिए, प्रतिस्पर्धी बाजार में सबसे अच्छा मूल्य देने के लिए ध्यान केंद्रित करना है।
राड प्रैक्टिस
राड प्रथाओं में आम तौर पर निम्नलिखित का एक संयोजन शामिल होता है -
- विकासवादी जीवनचक्र
- ग्राहक फोकस समूह, JAD सत्र, तकनीकी समीक्षा
- टाइम-बॉक्सिंग प्रोजेक्ट मैनेजमेंट
- सतत सॉफ्टवेयर इंजीनियरिंग
- युद्ध कक्षों के साथ समर्पित टीमें
राड परियोजनाओं में एक अंतर्निहित अनुकूली, उभरता स्वाद है। कई आईटी संगठन आरएडी के खिलाफ हैं। हालांकि, Microsoft और अन्य ने RAD की तुलना में तकनीकों का उपयोग करके अविश्वसनीय रूप से बड़े और जटिल सॉफ़्टवेयर का उत्पादन किया है क्योंकि यह उनके मौलिक विश्व दृष्टिकोण के बारे में सवाल उठाता है।
आरएडी प्रैक्टिस और माइक्रोसॉफ्ट प्रक्रिया कार्रवाई में अनुकूली विकास के दोनों उदाहरण हैं। उन्हें एक लेबल (यानी, अनुकूली विकास) देते हुए और यह महसूस करते हुए कि वैज्ञानिक ज्ञान का एक बढ़ता हुआ शरीर है (यानी, कैस सिद्धांत) बताते हैं कि वे क्यों काम करते हैं। यह इन प्रथाओं के अधिक व्यापक उपयोग के लिए एक आधार प्रदान करना चाहिए।