कैसे पता करें कि एक उत्पाद में उपयोग करने के लिए एक ओपन सोर्स प्रोजेक्ट पर्याप्त परिपक्व है या नहीं?


15

कुछ खुले स्रोत परियोजनाएं हैं जिन्हें मैं काम पर एक उत्पाद में शामिल करना चाहता हूं। हमारे पास इसे करने के लिए बैंडविड्थ और न ही विषय वस्तु विशेषज्ञता है। मैंने इन्हें Google में खोज कर पाया। मैं किसी भी "प्रमुख खिलाड़ियों" से अनजान हूं जो परियोजनाओं का उपयोग करता है, लेकिन मैं जो देखता हूं उससे बहुत प्रोत्साहित होता हूं।

अब, मैं जो-ब्लो के ओपन सोर्स प्रोजेक्ट का उपयोग करके जोखिम की मात्रा के बारे में थोड़ा चिंतित हूं। अगर मुझे वहाँ 95% रास्ता लगता है, तो शायद शेष 5% जोड़ना या ठीक करना आसान है। शायद यह गैर-तुच्छ है।

लोगों को यह निर्धारित करने के बारे में कैसे जाना जाता है कि क्या एक खुला स्रोत परियोजना एक उत्पाद में उपयोग करने के लिए पर्याप्त परिपक्व है?

यह एक शौक परियोजना नहीं है, इसलिए स्थिरता, स्थिरता, आदि सर्वोपरि हैं।


आप निश्चित रूप से कभी नहीं जानते। क्या विंडोज काफी परिपक्व है? इसका परीक्षण करें और डेवलपर्स से संपर्क करने का प्रयास करें - व्यक्तिगत संपर्क (ईमेल?) उनके द्वारा बनाई गई परियोजना की पवित्रता / परिपक्वता के बारे में बहुत कुछ कह सकते हैं।
SChepurin

3
एकमात्र महत्वपूर्ण बात यह है कि क्या यह आपकी आवश्यकताओं के अनुरूप है। यदि ऐसा होता है, तो आप बस इसका उपयोग करते हैं। यदि यह "परिपक्व" नहीं है (जिसकी परिभाषा बहस योग्य है), तो आप इसे परिपक्व करने के लिए कोड / चर्चा / डॉक्स / समुदाय / बग / xyz में योगदान देना शुरू कर सकते हैं।
ट्रेकरोड

1
अपने वास्तविक उत्पाद में नई लाइब्रेरी को शामिल करने से पहले यूनिट परीक्षणों का वास्तव में अच्छा सेट लिखें।
जिम इन टेक्सास

@greengit: जब तक कोई विकल्प उन्हें बेहतर नहीं लगे, तब तक सभी आवश्यकताओं को पूरा करने की आवश्यकता नहीं है।
जान हुदेक

जवाबों:


17

मेरे द्वारा उपयोग किए जाने वाले मानदंड, यह प्रदान करते हुए कि परियोजना मेरी आवश्यकताओं को पूरा करती है:

  1. क्या कोई सक्रिय समुदाय है, जो लोगों को सहायता प्रदान करने में सक्षम है?
  2. क्या लाइसेंस मेरे विकास के लिए उपयुक्त है?
  3. क्या उत्पाद अभी भी सक्रिय विकास के तहत है?
  4. क्या यह आमतौर पर इस्तेमाल किया जाने वाला ढांचा है?
  5. क्या मुझे उत्पाद की कोई समीक्षा / ब्लॉग पोस्ट / आदि मिल सकती है और लोगों ने इसे कैसे एकीकृत किया है?

4 और 5 वास्तव में आला परियोजनाओं के लिए मदद नहीं करते हैं जो यह लगता है कि तुम्हारा है।

सबसे महत्वपूर्ण बात यह है कि यह आपकी आवश्यकताओं को पूरा करता है? यदि आपको लगता है कि यह करता है, तो अगली बात यह है कि परियोजना का परीक्षण करने के लिए एक सामंजस्य बनाकर देखें कि क्या आप वह कर सकते हैं जो आप करना चाहते हैं। यह आपको इसके एपीआई (यदि यह एक पुस्तकालय है) और यह कैसे काम करता है, इसके लिए आपको एक अनुभव देगा।

दिन के अंत में, अगर कुछ खुला स्रोत है जो आप जो करते हैं उसका 90% हिस्सा है, इसे कांटा, अतिरिक्त कार्यक्षमता जोड़ें और इसे समुदाय में वापस करें। मैंने वाणिज्यिक परियोजनाओं पर पहले भी ऐसा किया है।


6
यह कभी न भूलें कि 95% किया का मतलब केवल 95% करना बाकी है ....
Mattnz

6
  1. फ्रेमवर्क के लिए, मैं आम तौर पर केवल बड़े और परिपक्व ढांचे के साथ बहुत सारे पूर्व-लिखित मॉड्यूल और बड़े समुदाय के साथ जाता हूं। आम तौर पर, एक फ्रेमवर्क को दूसरे पर चुनने से वास्तव में आपके द्वारा अपने कोड पर खर्च किए जाने वाले काम की मात्रा कम नहीं होगी, कुछ फ्रेमवर्क एक अधिक सुंदर कोड को प्रोत्साहित कर सकते हैं, अन्य कुछ संचालन को आसान बना सकते हैं, लेकिन वे आम तौर पर बहुत ही योग करते हैं कुल विकास के प्रयास के लिए थोड़ा अंतर। हालांकि लोकप्रिय रूपरेखा में अधिक पूर्व-लिखित मॉड्यूल होंगे जिनका आप लाभ उठा सकते हैं और इस तरह आप आमतौर पर अधिक समय और प्रयास बचा सकते हैं।
  2. छोटे नॉन फ्रेमवर्क लाइब्रेरी के लिए, आम तौर पर आप बिना किसी समस्या के जरूरत पड़ने पर खुद ही संशोधन कर सकेंगे, इसलिए आमतौर पर मैं समुदाय को एक अतिरिक्त बोनस के रूप में मानता हूं। अधिकांश छोटे पुस्तकालय केवल एक ही व्यक्ति द्वारा प्रबंधित किए जाते हैं, लेकिन वे अभी भी अपने आप को बनाने से बेहतर हैं। बड़े पुस्तकालयों के लिए, हालांकि, एक परिपक्व, सक्रिय समुदाय और प्रलेखन आवश्यक है क्योंकि आप आसानी से खुद को परिवर्तन करने में सक्षम होने की संभावना नहीं रखते हैं।
  3. लाइसेंस जरूरी है। एक-आदमी पुस्तकालयों के लिए, यह संभावना है कि आपको पुस्तकालय में संशोधन करने की आवश्यकता होगी, इसलिए यह आवश्यक है कि उनका लाइसेंस आपको शर्तों के तहत ऐसा करने की अनुमति देता है जिससे आप सहमत होंगे।

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

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

बड़े पुस्तकालयों के लिए, चीजें अधिक कठिन हो जाती हैं। ओवर टेक करना अधिक शामिल है, सौभाग्य से बड़े पुस्तकालय आमतौर पर तेजी से नहीं चलते हैं, क्योंकि वे आम तौर पर अधिक परिपक्व होते हैं।

जैसा कि @Sam ने अपने जवाब में कहा, मैं सहमत हूं कि ओपन सोर्स लाइब्रेरी के मूल्यांकन में सबसे महत्वपूर्ण बात यह है कि यह आपकी आवश्यकता के हिसाब से कितना उपयुक्त है। एक बार किसी भी लाइसेंस के मुद्दे को हल करने के बाद, एक ओपन सोर्स लाइब्रेरी का उपयोग करना शायद ही कभी गलती होती है क्योंकि अगर चीजें दक्षिण में जाती हैं तो आप हमेशा कांटा कर सकते हैं।


3

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


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

वास्तव में, मुझे लगता है कि यह ठीक है अगर अधिकांश टिकट कुछ समय के लिए खुले हैं और हल नहीं हुए हैं। यह सॉफ़्टवेयर के बारे में किसी भी चीज़ की तुलना में उपयोगकर्ता आधार के आकार और जुड़ाव का अधिक संकेत हो सकता है। : उस विषय यहाँ पर अधिक rants.org/2010/01/bugs-users-and-tech-debt
कार्ल फोगेल

1

खबर अच्छी नहीं है, लेकिन इसका मतलब यह नहीं है कि यह गलत है: आप नहीं जानते।

यदि उत्पादन में अनुरूप कार्यान्वयन होते, तो आपको पता होता कि यह संभव है, लेकिन जैसा कि आपने कहा कि कोई "प्रमुख खिलाड़ी" परियोजनाओं का उपयोग नहीं करते हैं।

यदि आपने घर में विकास किया था, तो आपको पता होगा, लेकिन जैसा कि आपने कहा, आपके पास संसाधन नहीं हैं।

यह जानना उचित है, लेकिन ... आप नहीं चाहते।

मुझे उम्मीद है कि यह उत्तर मदद करता है, क्योंकि आपके पास किसी भी तकनीक पर प्लग को खींचने के लिए आकस्मिक योजनाएं होनी चाहिए, जो आप पर निर्भर करते हैं, लेकिन नियंत्रण नहीं करते हैं ... और यह जानते हुए कि आप नहीं जानते कि क्या यह भरोसेमंद है, उस दिशा में एक कदम है।


1

सवाल को अलग तरीके से रखना होगा। क्या आप वास्तव में पूछ रहे हैं कि इस ओपन-सोर्स प्रोजेक्ट का उपयोग उत्पाद के विकास का सबसे अच्छा तरीका है?

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

निश्चित रूप से अन्य प्रश्न उठता है कि क्या आपकी परियोजना व्यवहार्य है। यानी आपको ओपन-सोर्स कोड द्वारा प्रदान की जाने वाली कार्यक्षमता को ठीक करने या पूरा करने के किसी भी जोखिम सहित प्रयास का अनुमान लगाने की आवश्यकता है। यदि परियोजना व्यापक रूप से उपयोग नहीं की जाती है, तो आपको उसके लिए कोड की समीक्षा करनी होगी।

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