इंटरनेट-गति विकास

इंटरनेट-गति विकास एक ऐसी सॉफ्टवेयर विकास पद्धति है जिसमें उच्च गति वाले उत्पाद को विकसित करने के उद्देश्य से दैनिक निर्माण के साथ एक संयुक्त सर्पिल मॉडल/वाटरफॉल मॉडल का उपयोग किया जाता है।

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

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

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

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

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

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

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

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

चित्रा 1: चरण मॉडल



कल्पना चरण
परिकल्पना चरण को निम्नानुसार प्रतिरूपित किया जा सकता है:

चित्र 2: कल्पना चरण प्रक्रिया/डेटा मॉडल तालिका 1: गतिविधियों की कल्पना करना

परिकल्पना चरण में की गई बुनियादी गतिविधियाँ आवश्यकताओं का विश्लेषण कर रही हैं, परियोजना के लिए टीम का गठन कर रही हैं, जोखिमों का निर्धारण कर रही हैं और परियोजना का दायरा तय कर रही हैं। परियोजना की आवश्यकताओं और लक्ष्यों से एक विजन/स्कोप दस्तावेज़ बनाया जाता है। यह दस्तावेज़ बताता है कि जब उत्पाद वितरित किया जाता है तो उसे क्या होना चाहिए। इसमें उत्पाद की बहुत विस्तृत कार्यप्रणाली सम्मिलित नहीं है। तालिका 2: परिकल्पना चरण में अवधारणाएँ

योजना चरण


चित्र 3: योजना चरण प्रक्रिया/डेटा मॉडल तालिका 3: गतिविधियों की योजना बनाना

नियोजन चरण में आवश्यकताओं से एक कार्यात्मक विनिर्देश बनाया जाता है। चयनित सुविधाओं को इस विनिर्देश में सम्मिलित किया गया है (एक मास्को विधि प्रायः सुविधाओं के लिए उपयोग की जाती है ताकि उन्हें अधिक आसानी से प्राथमिकता दी जा सके)। साथ ही, इस चरण में मूल डिजाइन और योजना बनाई जाती है। हालांकि डिजाइन इस चरण में स्थिर नहीं है क्योंकि विकास के चरण में परिवर्तन किए जा सकते हैं। तालिका 4: नियोजन चरण में अवधारणाएँ

विकास चरण
चित्र 4: चरण प्रक्रिया/डेटा मॉडल का विकास करना तालिका 5: विकासशील गतिविधियाँ

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

स्थिरीकरण चरण
चित्रा 5: स्थिरीकरण चरण प्रक्रिया/डेटा मॉडल तालिका 6: स्थिरीकरण गतिविधियाँ

मुख्य गतिविधियाँ बगों का परीक्षण और समाधान हैं। एक बार एक पायलट संस्करण को एक पायलट के लिए पर्याप्त स्थिर माना जाता है, एक पायलट संस्करण बनाया और तैनात किया जाता है। इस पायलट से यह या तो परीक्षण/स्थिरीकरण लूप में वापस जाएगा या इसे अनुमोदित और समीक्षा की जाएगी। तालिका 7: स्थिरीकरण चरण में अवधारणाएँ

परिनियोजन चरण
चित्र 6: परिनियोजन चरण प्रक्रिया/डेटा मॉडल तालिका 8: गतिविधियों की तैनाती

परिनियोजन चरण में मुख्य गतिविधि उत्पाद को चलाने के लिए आवश्यक बुनियादी ढाँचे की स्थापना (सर्वर आदि की तैनाती) है। साथ ही, दस्तावेजों को अंतिम रूप दिया जाता है और संचालन और सहायता विभाग को हस्तांतरित किया जाता है, एक ज्ञान का आधार बनाया जाता है और ग्राहक (यदि प्रयुक्त हो) और परियोजना टीम द्वारा उत्पाद और परियोजना की समीक्षा की जाती है। तालिका 9: परिनियोजन चरण में अवधारणाएँ

समग्र डेटा मॉडल
चित्र 7: समग्र डेटा मॉडल यह डेटा मॉडल एक पूर्ण परियोजना संदर्भ में सभी अवधारणाओं को बहुलताओं और संबंधों के साथ दिखाता है।

इंटरनेट-गति विकास के साथ प्रयोग के लिए उपकरण

 * आरेखण उपकरण (उदाहरण: माइक्रोसॉफ्ट विज़ियो, रेशनलरोज, डीआईए) आरेख बनाने के लिए।
 * वर्ड प्रोसेसर (उदाहरण: माइक्रोसॉफ्ट वर्ड, OpenOffice.org राइटर, एबीवर्ड, कैलीग्रावर्ड) विजन स्टेटमेंट या स्कोप-दस्तावेज़ जैसे टेक्स्ट दस्तावेज़ बनाने के लिए।
 * स्प्रेडशीट (उदाहरण: माइक्रोसॉफ्ट एक्सेल, OpenOffice.org कैल्क, ग्नुमेरिक, कैलीग्राशीट) प्राथमिकता वाली जोखिम सूची बनाने और लागत गणना करने के लिए।
 * परियोजना उपकरण (उदाहरण: माइक्रोसॉफ्ट प्रोजेक्ट, ओपनप्रोज, गनोम प्लानर, कैलीग्रा योजना) परियोजना गतिविधियों की योजना बनाने के लिए।
 * डेटाबेस और डेटाबेस प्रबंधन उपकरण (उदाहरण: एमएस एसक्यूएल सर्वर, माईएसक्यूएल, ओरेकल, पोस्टग्रेएसक्यूएल) ज्ञानकोष बनाने के लिए।
 * स्वचालित परीक्षण उपकरण (उदाहरण: परीक्षण स्क्रिप्ट) प्रत्येक दैनिक निर्माण के बाद परीक्षण निष्पादित करने के लिए।

यह भी देखें

 * सॉफ्टवेयर विकास
 * विकास और पुनरावृत्त विकास
 * माइक्रोसॉफ्ट फ्रेमवर्क
 * डीएसडीएम
 * मास्को विधि

संदर्भ

 * माइक्रोसॉफ्ट June 2002 माइक्रोसॉफ्ट Solutions Framework (White Paper) माइक्रोसॉफ्ट Press
 * माइक्रोसॉफ्ट June 2002 MSF Risk Management Discipline v.1.1 (White Paper) माइक्रोसॉफ्ट Press
 * Wolfgang Zuser, Stefan Heil, Thomas Grechenig 2005 Software Quality Development and Assurance in RUP, MSF and XP - A Comparative Study Proceedings of the 2005 workshop on Software quality
 * Pekka Abrahamsson, Juhani Warsta, Mikko T. Siponen, Jussi Ronkainen 2003 New Directions on Agile Methods: A Comparative Analysis ICSE
 * Michael A. Cusumano, David B. Yoffie 1999 Software Development on Internet Time 32 IEEE
 * Balasubramaniam Ramesh, Jan Pries-Heje 2002 Internet Software Engineering: A Different Class of Processes Annals of Software Engineering 14 169–195