एक बॉक्स में दो (यदि आप कर सकते हैं) और दस्तावेज़ीकरण में सभी (हमेशा)।
एक आईटी संदर्भ में, "एक बॉक्स में दो" दो सर्वरों या घटकों को संदर्भित करता है जो अतिरेक और बढ़ी हुई विश्वसनीयता प्रदान करने के लिए एक साथ काम करने के लिए डिज़ाइन किए गए हैं। यह सेटअप यह सुनिश्चित कर सकता है कि यदि एक घटक विफल हो जाता है, तो दूसरा इसके संचालन को संभाल लेगा, इस प्रकार सेवा की निरंतरता बनी रहेगी। "एक बॉक्स में दो" होने का लक्ष्य उच्च उपलब्धता और आपदा वसूली प्रदान करना है। यह किसी संगठन में मानवीय भूमिकाओं पर भी लागू होता है; हालाँकि, इसे शायद ही कभी लागू किया जाता है।
आइए एक प्रासंगिक विश्लेषिकी उदाहरण देखें। हम सभी अपनी कंपनी या संगठन में किसी व्यक्ति को नाम से जानते हैं जो एनालिटिक्स के लिए "गो-टू" व्यक्ति है। वे ही हैं जिनके नाम पर रिपोर्ट या डैशबोर्ड हैं - माइक की रिपोर्ट या जेन का डैशबोर्ड। ज़रूर, ऐसे और भी लोग हैं जो एनालिटिक्स जानते हैं, लेकिन ये सच्चे चैंपियन हैं जो यह जानते हैं कि सबसे कठिन काम कैसे किए जाते हैं और समय सीमा पर अधिक हासिल किया जाता है। मुद्दा यह है कि ये लोग अकेले खड़े हैं। कई मामलों में दबाव में, वे किसी के साथ काम नहीं करते क्योंकि इससे उनकी गति धीमी हो सकती है और यहीं से समस्या शुरू होती है। हम कभी नहीं सोचते कि हम इस व्यक्ति को खोने जा रहे हैं। मैं विशिष्ट "मान लीजिए कि वे एक बस से टकरा जाते हैं" या वर्तमान नौकरी बाजार के अवसरों का लाभ उठाने वाले उदाहरण का उपयोग करते हैं और कुछ सकारात्मक कहते हैं जैसे "उन्होंने लॉटरी जीती!", क्योंकि हम सभी को सकारात्मक होने के लिए अपना हिस्सा करना चाहिए आये दिन।
स्टोरी
सोमवार की सुबह आती है, और हमारे विश्लेषिकी विशेषज्ञ और चैंपियन एमजे ने अपना इस्तीफा सौंप दिया है। एमजे ने लॉटरी जीती और दुनिया की परवाह किए बिना पहले ही देश छोड़ चुका है। एमजे को जानने वाली टीम और लोग रोमांचित और ईर्ष्यालु हैं, फिर भी काम चलना चाहिए। अब जब एमजे जो कर रहा था उसकी कीमत और हकीकत समझ में आने वाली है। एमजे अंतिम प्रकाशन और एनालिटिक्स के सत्यापन के लिए जिम्मेदार था। हर किसी को विश्लेषण प्रदान करने से पहले वे हमेशा कार्यकुशलता में सुधार करने या कठिन परिवर्तन करने में सक्षम प्रतीत होते थे। किसी ने वास्तव में परवाह नहीं की कि यह कैसे किया गया और इस तथ्य में सुरक्षित था कि यह अभी हुआ, और एमजे एक एनालिटिक्स व्यक्तिगत रॉक स्टार था इसलिए स्वायत्तता का एक स्तर प्रदान किया गया था। अब जैसे ही टीम टुकड़ों को उठाना शुरू करती है, अनुरोध, दैनिक मुद्दे, संशोधन अनुरोध वे खो जाते हैं और हाथापाई शुरू कर देते हैं। रिपोर्ट/डैशबोर्ड अज्ञात अवस्था में पाए जाते हैं; कुछ संपत्तियाँ सप्ताहांत में अपडेट नहीं हुईं, और हम नहीं जानते कि क्यों; लोग पूछ रहे हैं कि क्या हो रहा है और चीजें कब ठीक होंगी, एमजे ने जो संपादन किए थे वे दिखाई नहीं दे रहे हैं और हमें पता नहीं है कि क्यों। टीम खराब दिख रही है। यह एक आपदा है और अब हम सभी एमजे से नफरत करते हैं।
सबक
कुछ आसान और स्पष्ट उपाय हैं।
- किसी व्यक्ति को अकेले काम करने की अनुमति कभी न दें। अच्छा लगता है लेकिन छोटी फुर्तीली टीमों में, हमारे पास ऐसा करने के लिए समय या लोग नहीं हैं। लोग आते हैं और चले जाते हैं, कार्य बहुत हैं, इसलिए यह उत्पादकता के नाम पर बांटो और जीतो है।
- सभी को अपना ज्ञान साझा करना चाहिए। सुनने में भी अच्छा लगता है लेकिन क्या हम सही व्यक्ति या लोगों के साथ शेयर कर रहे हैं? ध्यान रखें कि कई लॉटरी विजेता सहकर्मी होते हैं। नॉलेज शेयर सेशन करने से कार्यों से समय भी लगता है और ज्यादातर लोग कौशल और ज्ञान में केवल तभी निवेश करते हैं जब इसकी आवश्यकता होती है।
तो, कुछ वास्तविक समाधान क्या हैं जिन्हें हर कोई लागू करने और पीछे हटने में सक्षम हो सकता है?
आइए कॉन्फ़िगरेशन प्रबंधन से शुरू करें। हम इसे कई समान विषयों के लिए छत्र शब्द के रूप में उपयोग करेंगे।
- परिवर्तन प्रबंधन: संरचित और व्यवस्थित तरीके से सॉफ़्टवेयर सिस्टम में परिवर्तन की योजना बनाने, लागू करने और नियंत्रित करने की प्रक्रिया। इस प्रक्रिया का उद्देश्य यह सुनिश्चित करना है कि मौजूदा प्रणाली में न्यूनतम व्यवधान और संगठन को अधिकतम लाभ के साथ परिवर्तन नियंत्रित और कुशल तरीके से (वापस करने की क्षमता के साथ) किए जाते हैं।
- परियोजना प्रबंधन: सॉफ्टवेयर विकास परियोजनाओं की योजना, संगठन और नियंत्रण यह सुनिश्चित करने के लिए कि वे समय पर, बजट के भीतर और वांछित गुणवत्ता मानकों के अनुसार पूरे हों। इसमें परियोजना के उद्देश्यों को प्राप्त करने और सॉफ्टवेयर उत्पाद को समय पर वितरित करने के लिए पूरे सॉफ्टवेयर विकास जीवनचक्र में संसाधनों, गतिविधियों और कार्यों का समन्वय शामिल है।
- सतत एकीकरण और सतत वितरण (सीआई/सीडी): सॉफ्टवेयर के निर्माण, परीक्षण और परिनियोजन को स्वचालित करने की प्रक्रिया। निरंतर एकीकरण के लिए नियमित रूप से विकास प्रक्रिया में त्रुटियों का पता लगाने के लिए एक साझा रिपॉजिटरी में कोड परिवर्तनों को मर्ज करने और स्वचालित परीक्षण चलाने की आवश्यकता होती है। सतत वितरण/परिनियोजन में स्वचालित रूप से परीक्षण किए गए और मान्य कोड परिवर्तनों को उत्पादन में जारी करना शामिल है, जिससे नई सुविधाओं और सुधारों की तीव्र और लगातार रिलीज़ की अनुमति मिलती है।
- संस्करण नियंत्रण: विशिष्ट सॉफ़्टवेयर टूल का उपयोग करके समय के साथ स्रोत कोड और अन्य सॉफ़्टवेयर कलाकृतियों में परिवर्तनों को प्रबंधित करने की प्रक्रिया। यह डेवलपर्स को कोडबेस पर सहयोग करने, परिवर्तनों का पूरा इतिहास बनाए रखने और मुख्य कोडबेस को प्रभावित किए बिना नई सुविधाओं के साथ प्रयोग करने की अनुमति देता है।
उपरोक्त सभी अच्छी सॉफ्टवेयर विकास प्रथाओं का संदर्भ देते हैं। एनालिटिक्स जो व्यवसाय को चलाते हैं और चलाते हैं, वे कम योग्य नहीं हैं क्योंकि वे निर्णय लेने के लिए मिशन महत्वपूर्ण हैं। सभी एनालिटिक्स एसेट्स (ETL जॉब्स, सिमेंटिक डेफिनिशन्स, मेट्रिक्स डेफिनिशन्स, रिपोर्ट्स, डैशबोर्ड्स, स्टोरीज ... आदि) डिजाइनिंग के लिए विजुअल इंटरफेस के साथ सिर्फ कोड स्निपेट्स हैं और मामूली बदलाव ऑपरेशन पर कहर ढा सकते हैं।
कॉन्फ़िगरेशन प्रबंधन का उपयोग हमें एक अच्छी स्थिति में चलते रहने के लिए कवर करता है। संपत्तियों को संस्करणित किया जाता है ताकि हम देख सकें कि उनके जीवन काल में क्या हुआ है, हम जानते हैं कि प्रगति और समय-सीमा के साथ-साथ कौन क्या काम कर रहा है, और हम जानते हैं कि उत्पादन जारी रहेगा। किसी भी शुद्ध प्रक्रिया में जो शामिल नहीं है वह है ज्ञान का हस्तांतरण और यह समझना कि चीजें जैसी हैं वैसी क्यों हैं।
हर सिस्टम, डेटाबेस और एनालिटिक्स टूल की अपनी ख़ासियतें होती हैं। चीजें जो उन्हें तेज या धीमी गति से चलती हैं, चीजें जो उन्हें एक निश्चित तरीके से व्यवहार करती हैं या वांछित परिणाम उत्पन्न करती हैं। ये एक सिस्टम या वैश्विक स्तर पर सेटिंग हो सकते हैं या एसेट डिज़ाइन के भीतर चीजें हो सकती हैं जो उन्हें वैसे ही चलाती हैं जैसे उन्हें चलना चाहिए। समस्या यह है कि इनमें से अधिकतर चीजें समय के साथ सीखी जाती हैं और उन्हें दस्तावेज करने के लिए हमेशा कोई जगह नहीं होती है। यहां तक कि जब हम क्लाउड सिस्टम में जाते हैं, जहां हम अब यह नियंत्रित नहीं करते हैं कि एप्लिकेशन कैसे निष्पादित होता है और हम इसे जितनी जल्दी हो सके बनाने के लिए आपूर्तिकर्ता पर भरोसा करते हैं, हमारी संपत्ति के भीतर परिभाषाओं का ट्वीकेशन जारी रहता है ताकि हम जो खोज रहे हैं उसे अनलॉक कर सकें। इस ज्ञान को पकड़ने और इसे दूसरों को उपलब्ध कराने के लिए साझा करने की आवश्यकता है। संपत्ति के प्रलेखन के भाग के रूप में इस ज्ञान की आवश्यकता होती है और संस्करण नियंत्रण और सीआई/सीडी चेक इन और अनुमोदन प्रक्रिया का एक अभिन्न अंग बना दिया जाता है और कुछ मामलों में यहां तक कि चीजों को प्रकाशित करने से पहले चेकलिस्ट के हिस्से के रूप में भी किया जाता है और नहीं करना।
हमारी विश्लेषिकी प्रक्रियाओं में शॉर्टकट या कमी को कवर करने के लिए कोई जादुई जवाब या एआई नहीं है। टीम के आकार के बावजूद जो डेटा और एनालिटिक्स को सिस्टम में प्रवाहित करने वाले परिवर्तनों को ट्रैक करने, सभी संपत्तियों का संस्करण बनाने और विकास प्रक्रिया को दस्तावेज करने में मदद करने और ज्ञान प्राप्त करने में मदद करता है, यह जरूरी है। प्रक्रियाओं में निवेश और आगे का समय हमारे विश्लेषिकी की स्वस्थ स्थिति को बनाए रखने के लिए बाद में चीजों का पता लगाने में बर्बाद होने वाले समय को बचाएगा। चीजें होती हैं और एमजे और अन्य लॉटरी विजेताओं के लिए बीमा पॉलिसी लेना सबसे अच्छा है।