MMM क्या है
पहले मैं ब्रूक के नियम के संदर्भ को समझाना चाहता हूं। 1975 में उसे वापस बनाने के लिए क्या धारणा थी?
एक आदमी-महीना एक काल्पनिक इकाई है जो एक व्यक्ति द्वारा एक महीने में किए गए कार्य का प्रतिनिधित्व करता है; ब्रूक्स का कानून कहता है कि मानव-महीनों में उपयोगी काम को मापना असंभव है।
स्रोत: https://en.wikipedia.org/wiki/The_Mythical_Man-Month
दिन में वापस, जटिल प्रोग्रामिंग परियोजनाओं का मतलब होगा बड़ी अखंड प्रणाली। और ब्रूक्स का दावा है कि इन्हें पूरी तरह से असतत कार्यों में विभाजित नहीं किया जा सकता है, जो डेवलपर्स के बीच संचार के बिना और कार्यों और उन लोगों के बीच जटिल अंतर्संबंधों के एक सेट की स्थापना के बिना काम कर सकते हैं।
यह अत्यधिक सामंजस्यपूर्ण सॉफ़्टवेयर मोनोलिथ में बहुत हद तक सही है। कोई फर्क नहीं पड़ता कि कितना डिकॉप्लिंग किया जाता है, फिर भी नए प्रोग्रामर्स को मोनोलिथ के बारे में जानने के लिए बड़े मोनोलिथ के लिए समय की आवश्यकता होती है। और बढ़ा हुआ संचार उपरि जो उपलब्ध समय की बढ़ती मात्रा का उपभोग करेगा।
लेकिन क्या वास्तव में इस तरह से होना है? क्या हमें मोनोलिथ लिखना है और संचार चैनलों को रखना है n(n − 1) / 2
जहां n
डेवलपर्स की संख्या है?
हम जानते हैं कि ऐसी कंपनियां हैं जहां हजारों डेवलपर बड़ी परियोजनाओं पर काम कर रहे हैं ... और यह काम करता है। इसलिए ऐसा कुछ होना चाहिए जो 1975 से बदल गया हो।
MMM को कम करने की संभावना
2015 में, PuppetLabs और IT Revolution ने 2015 स्टेट ऑफ डेवप्स रिपोर्ट के परिणाम प्रकाशित किए । उस रिपोर्ट में, उन्होंने उच्च प्रदर्शन करने वाले संगठनों बनाम गैर-उच्च प्रदर्शन के बीच अंतर पर ध्यान केंद्रित किया।
उच्च प्रदर्शन करने वाले संगठन कुछ अप्रत्याशित गुण दिखाते हैं। उदाहरण के लिए, उनके पास विकास में सबसे अच्छा परियोजना नियत तारीख का प्रदर्शन है। संचालन में सर्वश्रेष्ठ परिचालन स्थिरता और विश्वसनीयता। साथ ही सबसे अच्छी सुरक्षा और अनुपालन ट्रैक रिकॉर्ड।
रिपोर्ट में उजागर की गई आश्चर्यजनक चीजों में से एक प्रति दिन मीट्रिक की तैनाती है। लेकिन प्रति दिन केवल तैनाती नहीं, उन्होंने तैनाती / दिन / डेवलपर को भी मापा और उच्च प्रदर्शन वाले संगठनों बनाम गैर-उच्च प्रदर्शन में अधिक डेवलपर्स को जोड़ने का क्या प्रभाव है।
यह उस रिपोर्ट का ग्राफ है -
जबकि कम प्रदर्शन करने वाले संगठन पौराणिक पुरुष महीने की धारणाओं के साथ संरेखित करते हैं। उच्च प्रदर्शन करने वाले संगठन, डेवलपर्स की संख्या के साथ रेखीय रूप से तैनाती / दिन / देव की संख्या को स्केल कर सकते हैं।
जीन किम द्वारा DevOpsDays लंदन 2016 में एक उत्कृष्ट प्रस्तुति इन निष्कर्षों के बारे में बात करती है।
यह कैसे करना है
पहला, उच्च प्रदर्शन करने वाला संगठन कैसे बने? ऐसी कुछ किताबें हैं जो इस बारे में बात करती हैं, इस जवाब में पर्याप्त जगह नहीं है इसलिए मैं सिर्फ उनसे लिंक करूंगा।
सॉफ्टवेयर और आईटी संगठनों के लिए, उच्च प्रदर्शन वाले संगठन बनने के लिए महत्वपूर्ण कारकों में से एक है: गुणवत्ता और गति पर ध्यान केंद्रित करना ।
उदाहरण के लिए वार्ड कनिंघम तकनीकी ऋण की व्याख्या करता है क्योंकि सभी चीजें जिन्हें हम छोड़ देने की अनुमति देते हैं उन्हें अधूरा छोड़ दिया जाता है। यह प्रबंधन द्वारा स्वीकार किया जाता है क्योंकि यह हमेशा एक वादा के साथ आता है कि यह समय होने पर तय होने वाला है।
पर्याप्त समय नहीं है, और तकनीकी ऋण बस बदतर और बदतर हो जाता है।
ये कौन सी चीजें हैं जो तकनीकी ऋण को बढ़ने का कारण बनती हैं?
- लीगेसी कोड
- पर्यावरण का मैनुअल विन्यास
- मैनुअल परीक्षण
- मैनुअल तैनाती
लिगेसी कोड जैसा कि माइकल फेदर द्वारा लिगेसी कोड के साथ प्रभावी रूप से कार्य करने में परिभाषित किया गया है, वह कोई भी कोड है जिसका स्वचालित परीक्षण नहीं होता है।
कोड प्राप्त करने के लिए किसी भी समय शॉर्टकट का उपयोग किया जाता है; परिचालन इस ऋण के रखरखाव के लिए हमेशा के लिए बोझ है। फिर तैनाती की प्रक्रिया लंबी और लंबी हो जाती है।
जीन एक कंपनी के बारे में अपनी प्रस्तुति में एक कहानी बताती है, जिसकी छह सप्ताह की लंबी तैनाती है। 400 लोगों को बांधते हुए, दसियों हज़ार अति त्रुटि वाले थकाऊ कदमों को शामिल करना और वे हर साल ऐसा चार बार करेंगे।
DevOps के सिद्धांतों में से एक यह है कि विश्वसनीयता छोटे तैनाती को अधिक बार करने से आती है।
उदाहरण
ये दो प्रस्तुतियां उन सभी चीजों को दिखाती हैं जो अमेज़ॅन ने उत्पादन में कोड को तैनात करने में लगने वाले समय को कम करने के लिए किया था।
जीन के अनुसार, इन उच्च प्रदर्शन वाले संगठनों में समय के साथ बदल जाने वाली एकमात्र चीज़ डेवलपर्स की संख्या है। इसलिए अमेज़ॅन के उदाहरण से, आप कह सकते हैं कि चार वर्षों में उन्होंने अधिक लोगों को जोड़कर अपनी तैनाती को दस गुना बढ़ा दिया।
इसका मतलब यह है कि कुछ शर्तों के तहत, सही आर्किटेक्चर, सही तकनीकी प्रथाओं, सही सांस्कृतिक मानदंडों के साथ, डेवलपर उत्पादकता बढ़ सकती है क्योंकि डेवलपर्स की संख्या बढ़ जाती है। और DevOps निश्चित रूप से इस सब के बीच में है।