ओपन सोर्स सॉफ्टवेयर परियोजनाओं में आवश्यकताओं को कैसे निर्धारित किया जाता है?


11

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

"आवश्यकताओं को निर्धारित करने" से मेरा सीधा मतलब है कि "किसी विशिष्ट सॉफ़्टवेयर के हिस्से के रूप में क्या विशेषताएं आदि का विकास किया जाना चाहिए"।


12
मुझे लगता है कि यह इंगित करता है कि व्यक्तिगत स्रोतों के ढीले समूहों के बजाय संगठनों (कंपनियों और शैक्षणिक संस्थानों) द्वारा बहुत सारे ओपन सोर्स प्रोजेक्ट विकसित किए गए हैं। और जैसे कि एक औपचारिक पीएम / आवश्यकता समारोह हो सकता है।
मैक्सिम

यह मेरे लंबित शोध प्रबंध का एक मुख्य हिस्सा है। यह पूछने के लिए धन्यवाद!
आर क्लावेन

जवाबों:


8

ओपन सोर्स प्रोजेक्ट में कभी-कभी उपयोगकर्ता फीडबैक की तीव्र धाराएं होती हैं, और कभी-कभी निगम केवल नियोजित और कार्यान्वित किए गए कुछ विशेषताओं को बनाने के लिए भुगतान करते हैं (अपने स्वयं के डेवलपर्स या मूल डेवलपर्स को काम पर रखकर)।

यदि आपके प्रोजेक्ट में 100 उपयोगकर्ता हैं, तो आप शायद कोड के लिए सबसे अधिक मजेदार हो सकते हैं।

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

इस प्रतिक्रिया के साथ, आप अपनी कोर टीम के लिए आवश्यक दस्तावेज लिख सकते हैं, स्वतंत्र योगदानकर्ताओं को आपकी दृष्टि को समझने में मदद करने के लिए रोडमैप बना सकते हैं, और आशा करते हैं कि 100k उपयोगकर्ताओं में से कुछ पैच में भेज देंगे।


7

जब से मैंने पहली बार लगभग 1995 में लिनक्स के बारे में सुना है, तब से मैं खुला स्रोत का अनुसरण कर रहा हूं, और मैं उस संदर्भ में प्रयुक्त शब्द 'आवश्यकताओं' को कभी याद नहीं कर सकता।

एरिक रेमंड का एक अच्छा निबंध है, द कैथेड्रल एंड द बाज़ार , जिसमें वह 'अपनी खुद की खुजली को दूर करने' की बात करता है। यदि आप एक ऐसी समस्या को हल करने का प्रयास कर रहे हैं, जिसे आप व्यक्तिगत रूप से सामना कर रहे हैं, तो आपको यह पता लगाने के लिए आवश्यकताओं के दस्तावेजों का उल्लेख करने की आवश्यकता नहीं है कि आपने इसे हल किया है या नहीं।

यही निबंध आपके उपयोगकर्ताओं को सुनने के बारे में भी बात करता है, जो सभी के लिए अच्छी सलाह है, न कि केवल स्रोत परियोजनाएं। ओपन सोर्स प्रोजेक्ट्स मेरिटोलॉजिकल होते हैं, इसलिए 'वह जो कोड लिखता है, नियम बनाता है', कम या ज्यादा।


6

कॉरपोरेट इन-हाउस सॉफ्टवेयर विकास के लिए आवश्यकताओं के लिए एक औपचारिक प्रक्रिया के माध्यम से निर्धारित किया जाना आम है, जिसके परिणामस्वरूप कई आवश्यकताओं के दस्तावेजों का निर्माण होता है।

मेरे अनुभव के लिए, यह अनुबंध आधारित विकास करते समय बहुत अधिक सामान्य है, खासकर जब आपकी कंपनी के लिए एक बाहरी कंपनी विकास कर रही है, और एक अनुबंध की कानूनी आवश्यकता है। लेकिन बहुत सी अन्य कंपनियाँ अपने लोगों द्वारा एक अलग तरीके से अपने घर के विकास को नियंत्रित करती हैं:

  • अनौपचारिक संचार

  • प्राथमिकता वाली आवश्यकताएं / कीड़े / मुद्दे / टिकट सूचियाँ (और यह निश्चित रूप से "फुर्तीले समुदाय" से एक आविष्कार नहीं है)

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


5

यदि समस्या एक आम है, जैसे, संकलक या ब्राउज़र लिखना, आवश्यकताओं को भाषा मानकों, लक्ष्य ऑपरेटिंग सिस्टम और लक्ष्य हार्डवेयर, आदि के रूप में बहुत अधिक दिया जाता है।

GNU Emacs जैसी चीज़ों के लिए, जो कई चीज़ों के अलावा कई चीज़ों के अलावा एक टेक्स्ट एडिटर होने के अपने मूल लक्ष्य को उत्कृष्ट रूप से पूरा करने के लिए है, मुझे लगता है कि इसे बढ़ाने की अपार गुंजाइश की वजह से आवश्यकताएं समझ में आती हैं। चैट, ईमेल, समाचार समूह, कोड संपादन, संस्करण नियंत्रण दिमाग में आते हैं। एक रिसर्च साइंटिस्ट है जो Emacspeak पर काम कर रहा है। मुझे लगता है कि इसी तरह की चीजों को ब्राउज़र और अन्य चीजों के बारे में कहा जा सकता है जो एक्सटेंशन की अनुमति देते हैं।

यदि सॉफ़्टवेयर एक फ़ंक्शन को पकड़ रहा है जो केवल गैर-ओपन-सोर्स सॉफ़्टवेयर में उपलब्ध है, तो आवश्यकता बहुत अधिक दी जाती है।

संपादित करें:

जब ओपन सोर्स सॉफ़्टवेयर रखरखाव पर चला जाता है और कम मूल आवश्यकताएं बनी रहती हैं, तो अधिकांश आवश्यकताएं बग से आ सकती हैं, नए प्लेटफॉर्म जैसे मल्टी कोर सीपीयू और अन्य हार्डवेयर के अनुकूल होने की आवश्यकता होती है जो शोषित होने पर बेहतर प्रदर्शन की पेशकश करते हैं।

GNU हर्ड जैसी पूरी तरह से अनुसंधान आधारित परियोजना में, मुझे लगता है कि आवश्यकताएं अनुसंधान के परिणाम और कागजात से आती हैं।

सारांश में,

  • शुरू करते समय, सॉफ़्टवेयर की आवश्यकताएं जो सामान्य समस्याओं को हल करने का प्रयास करती हैं, मानकों के दस्तावेजों से आ सकती हैं

  • ऐसे सॉफ़्टवेयर के लिए, जो अन्य मौजूदा सॉफ़्टवेयर को पकड़ रहा है, आवश्यकताएं मौजूदा सॉफ़्टवेयर के सभी या अधिकांश फ़ीचर सेट और कुछ अन्य विशेषताओं के उत्पन्न होने की संभावना है, जो डेवलपर्स / उपयोगकर्ताओं के लिए दिलचस्प हैं

  • अनुसंधान परियोजनाओं, कागजात और अन्य प्रकाशनों के लिए आवश्यकताओं को निर्धारित कर सकता है

  • जब रखरखाव में, बग, नए वातावरण के लिए अनुकूल करने की आवश्यकता आवश्यकताओं के लिए प्रमुख स्रोत हो सकता है


पहली बार आपके जवाब को पढ़कर मैं इस प्रश्न से संबंधित नहीं हो सका। लेकिन हम कह सकते हैं कि एक तरह की समस्या एक तरह से प्रमुख कारक है, जो आवश्यकताओं को पूरा करती है। ऐसे में आपका उत्तर आशाजनक है। अपडेट का इंतजार है।
एलिह्रो

4

मैं निश्चित रूप से नहीं जानता, लेकिन एक बार सुझाव है कि एजाइल जैसी पद्धति का उपयोग करें, जहां आवश्यकताओं को टिकट (या "कार्ड") के रूप में उठाया जाता है, जेआईआरए जैसी किसी चीज का उपयोग करते हुए, प्रत्येक टिकट में एक सुविधा या आवश्यकता का प्रतिनिधित्व करता है। प्रत्येक टिकट तब अन्य टिकटों में विघटित हो सकता है जो काम की छोटी इकाइयों का प्रतिनिधित्व करते हैं।

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

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.