4.5 तकनीकी ऋण माप
अवलोकन और प्रेरणा
तकनीकी ऋण, Ward Cunningham द्वारा गढ़ा गया एक रूपक, पिछले शॉर्टकटों की संचित लागत का वर्णन करता है, सुविधाजनक निर्णय जिन्होंने कुछ जल्दी शिप किया लेकिन बाद में कोडबेस को बदलना कठिन छोड़ दिया, उसी तरह जैसे वित्तीय ऋण आपको अभी ख़र्च करने देता है बाद में ब्याज की क़ीमत पर। हर कोडबेस कुछ तकनीकी ऋण ले जाता है, और यह स्वचालित रूप से एक विफलता नहीं है; रूपक का वास्तविक मूल्य यह है कि यह ऋण को एक शर्मनाक रहस्य या एक अपरिहार्य, स्थायी बोझ की बजाय एक प्रबंधनीय समझौते के रूप में तैयार करता है। यह विषय उस समझौते को माप के माध्यम से दृश्यमान और प्रबंधनीय बनाने के बारे में है, इसे एक अस्पष्ट, स्थायी रूप से अप्राथमिकता दी गई चिंता के रूप में छोड़ने की बजाय जिसे हर इंजीनियर महसूस करता है लेकिन कोई भी प्रमाण के साथ कार्य नहीं कर सकता।
इससे पहले के विषय, जटिलता (4.1), कवरेज (4.2), चर्न और हॉटस्पॉट (4.3), और स्थैतिक विश्लेषण (4.4), हर एक तकनीकी ऋण के एक पहलू को उजागर करता है। इस विषय का काम संश्लेषण है: उन अलग-अलग संकेतों, साथ ही उन आइटमों को जो कभी किसी स्वचालित स्कैन में सामने नहीं आते (एक अदस्तावेज़ीकृत वास्तुशिल्पीय शॉर्टकट, एक जान-बूझकर टाला गया माइग्रेशन), को एक एकल, प्राथमिकता प्राप्त, दृश्यमान बैकलॉग में बदलना जो फ़ीचर काम के विरुद्ध निवेश के लिए निष्पक्ष रूप से प्रतिस्पर्धा करता है, केवल इसलिए डिफ़ॉल्ट रूप से वह प्रतिस्पर्धा हारने की बजाय क्योंकि इससे कोई मेट्रिक जुड़ा नहीं है और योजना बैठकों में कोई पैरोकार नहीं है।
बड़ी टीमों के लिए, अप्रबंधित तकनीकी ऋण एक ऐसे तरीक़े से संयोजित होता है जो वास्तव में ख़तरनाक और कम आँकने में आसान है: हर नया शॉर्टकट अगले परिवर्तन को थोड़ा कठिन बनाता है, जो अधिक शॉर्टकटों के लिए दबाव बनाता है, जो आगे संयोजित होता है। कई वर्षों में प्रणालियों को बनाए रखने वाले एंटरप्राइज़ और सरकारी संगठन इस संयोजित प्रभाव के प्रति विशेष रूप से उजागर हैं, और इस विषय की केंद्रीय सिफ़ारिश, एक दृश्यमान, मात्रात्मक, प्राथमिकता प्राप्त ऋण बैकलॉग, वह तंत्र है जो एक संगठन को संकट में बहने की बजाय वास्तव में जान-बूझकर समझौते का प्रबंधन करने देता है।
प्रमुख सिद्धांत
- तकनीकी ऋण एक प्रबंधनीय समझौते के लिए एक जान-बूझकर रूपक है, एक शर्मनाक रहस्य नहीं। कुछ ऋण, जानबूझकर लिया गया, एक उचित व्यावसायिक निर्णय है।
- अमापा ऋण डिफ़ॉल्ट रूप से फ़ीचर काम के विरुद्ध प्राथमिकता प्रतियोगिता हार जाता है, इसलिए नहीं कि यह कम मायने रखता है, बल्कि इसलिए कि इसका कोई दृश्यमान पैरोकार नहीं है।
- ऋण को ऐसे शब्दों में मात्रात्मक करें जिन्हें निर्णयकर्ता तौल सकें: ठीक करने की लागत बनाम इसे ले जाने की लागत। एक अस्पष्ट “कोड गड़बड़ है” दावा एक ठोस फ़ीचर अनुरोध के विरुद्ध शायद ही कभी अच्छी तरह प्रतिस्पर्धा करता है।
- ऋण संयोजित होता है। हर नया शॉर्टकट भविष्य के परिवर्तनों को सीमांत रूप से कठिन बनाता है, और यह प्रभाव अगर अप्रबंधित छोड़ा जाए तो तेज़ होता है।
- सारा ऋण चुकाने लायक़ नहीं है। कुछ अनिश्चित काल तक ले जाने लायक़ है यदि इसे ठीक करने की लागत इसके साथ जीने की लागत से अधिक है।
सिफ़ारिशें
एक दृश्यमान, एकल तकनीकी ऋण बैकलॉग बनाएँ
इस भाग के पहले के विषयों से संकेतों को समेकित करें, जटिलता आउटलायर, कम म्यूटेशन-किल-दर क्षेत्र, हॉटस्पॉट, अनसुलझी स्थैतिक विश्लेषण खोजें, साथ ही उन ऋण आइटमों के साथ जिन्हें केवल एक मानव पहचान सकता है (एक वास्तुशिल्पीय शॉर्टकट, एक टाला गया निर्भरता अपग्रेड, एक अदस्तावेज़ीकृत वर्कअराउंड), एक दृश्यमान बैकलॉग में, आपके फ़ीचर बैकलॉग के समान कठोरता और दृश्यता के साथ ट्रैक किया गया। ऋण जो केवल व्यक्तिगत इंजीनियरों की याददाश्त में या बिखरी हुई कोड टिप्पणियों में रहता है वह प्राथमिकता उद्देश्यों के लिए प्रभावी रूप से अस्तित्व में नहीं है।
हर ऋण आइटम की लागत और इसकी वहन लागत को मात्रात्मक करें
हर आइटम के लिए, दो आँकड़ों का अनुमान लगाएँ: इसे ठीक करने की लागत (इंजीनियरिंग समय, समाधान का ही जोखिम) और इसे बिना ठीक किए ले जाने की लागत (संबंधित काम कितना धीमा जाता है, यह कितना अतिरिक्त दोष जोखिम रखता है, यह कितना अन्य काम अवरुद्ध करता है)। यह फ़्रेमिंग, सीधे वित्तीय ऋण रूपक के अपने तर्क से उधार ली गई, निर्णयकर्ताओं को फ़ीचर काम की लागत और अपेक्षित मूल्य के विरुद्ध तुलना का एक वास्तविक आधार देती है, एक अमूर्त, अमात्रात्मक शिकायत की बजाय।
आयु या सबसे ज़ोरदार पैरोकार से नहीं, प्रभाव का उपयोग करके प्राथमिकता दें
ऋण आइटमों को उनकी वहन लागत और प्रभावित कोड कितनी बार छुआ जाता है (विषय 4.3 का चर्न डेटा यहाँ सीधे उपयोगी है) के संयोजन से रैंक करें: कोडबेस के एक शायद ही कभी संशोधित कोने में एक आइटम, चाहे कितना भी अप्रिय हो, आपके सबसे सक्रिय विकास के पथ में सीधे बैठे एक आइटम से कहीं कम मायने रखता है। इस आधार पर प्राथमिकता देने का विरोध करें कि कौन-सा आइटम बैकलॉग पर सबसे लंबे समय से है या कौन-सा इंजीनियर इसकी सबसे लगातार पैरवी करता है, इनमें से कोई भी वास्तविक व्यावसायिक प्रभाव से विश्वसनीय रूप से सहसंबंधित नहीं है।
ऋण उपचार के लिए समर्पित, संरक्षित क्षमता आवंटित करें
एक ऋण बैकलॉग जिसे हर योजना चक्र में हर आने वाले फ़ीचर अनुरोध के विरुद्ध आइटम-दर-आइटम प्रतिस्पर्धा करनी पड़ती है वह लगातार हारता है, क्योंकि फ़ीचर काम में आमतौर पर एक स्पष्ट, अधिक तत्काल व्यावसायिक चैंपियन होता है। ऋण उपचार के लिए विशेष रूप से इंजीनियरिंग क्षमता का एक संरक्षित प्रतिशत आवंटित करें, एक सामान्य पैटर्न 10% और 20% के बीच कहीं है, हर स्प्रिंट में फिर से बातचीत करने की बजाय पहले से तय किया गया, ताकि ऋण चुकाना एक संकट के परिणाम में ही नहीं बल्कि एक सामान्य बात के रूप में होता रहे।
कुछ ऋण को स्थायी मानें, और इसे स्पष्ट रूप से कहें
हर आइटम एक सक्रिय उपचार योजना का हिस्सा नहीं है। जहाँ ठीक करने की लागत वास्तव में इसे अनिश्चित काल तक ले जाने की लागत से अधिक है, विशेष रूप से एक स्थिर, शायद ही कभी छुए जाने वाले, जल्द ही सेवानिवृत्त होने वाली प्रणाली में कोड के लिए, उस निर्णय को स्पष्ट रूप से दस्तावेज़ीकृत करें और आइटम को एक जान-बूझकर अप्राथमिकता प्राप्त श्रेणी में ले जाएँ, इसे एक सक्रिय बैकलॉग पर अनिश्चित काल तक बैठे रहने देने की बजाय जहाँ इसकी निरंतर उपस्थिति चुपचाप ऐसे काम का संकेत देती है जो वास्तव में कभी नहीं होगा।
समझौते: लाभ और हानि
| दृष्टिकोण | लाभ | हानि |
|---|---|---|
| कोई औपचारिक ऋण ट्रैकिंग नहीं | कोई ओवरहेड नहीं | ऋण डिफ़ॉल्ट रूप से प्राथमिकता प्रतियोगिता हारता है; अदृश्य रूप से संयोजित होता है |
| अनौपचारिक, तदर्थ ऋण जागरूकता | कम ओवरहेड, कुछ दृश्यता | असंगत; व्यक्तिगत याददाश्त और पैरवी पर निर्भर |
| औपचारिक, मात्रात्मक ऋण बैकलॉग | निवेश के लिए निष्पक्ष रूप से प्रतिस्पर्धा करता है; सूचित समझौते सक्षम बनाता है | निरंतर रखरखाव और मात्रीकरण अनुशासन की आवश्यकता |
| संरक्षित, समर्पित उपचार क्षमता | सुनिश्चित करता है कि चुकाना लगातार होता है, केवल प्रतिक्रियात्मक रूप से नहीं | अल्पावधि में फ़ीचर काम के लिए उपलब्ध क्षमता को घटाता है |
केंद्रीय तनाव है तत्काल डिलीवरी दबाव बनाम दीर्घकालिक रखरखाव-योग्यता। फ़ीचर काम में लगभग हमेशा ऋण उपचार से अधिक स्पष्ट, अधिक तत्काल व्यावसायिक चैंपियन होता है, जो ऋण के लिए हर व्यक्तिगत प्राथमिकता निर्णय हारने का संरचनात्मक दबाव बनाता है भले ही इसकी संचयी लागत अधिक हो। तनाव को ऋण उपचार को संरक्षित, पूर्व-आवंटित क्षमता के माध्यम से आइटम-दर-आइटम प्रतियोगिता से पूरी तरह हटाकर हल करें, ताकि समझौते को जान-बूझकर और अग्रिम रूप से तय किया जाए, हर एक योजना चक्र में फिर से बहस किए जाने और आमतौर पर हारने की बजाय।
अपनी टीम के साथ चर्चा करने के प्रश्न
क्या हमारे पास एक एकल, दृश्यमान तकनीकी ऋण बैकलॉग है, या ऋण जागरूकता अधिकांशतः व्यक्तिगत इंजीनियरों के दिमाग़ों में रहती है? यदि ईमानदार उत्तर बाद वाला है, तो यह इस विषय द्वारा सुझाया गया पहला बंद करने के लिए सबसे बड़ा अंतर है।
हमारे शीर्ष ऋण आइटम के लिए, क्या हम इसकी ठीक करने की लागत और इसकी ले जाने की लागत को इतने विशिष्ट शब्दों में बता सकते हैं कि यह एक फ़ीचर अनुरोध के विरुद्ध निष्पक्ष रूप से तुलना करे? यदि नहीं, तो एक वास्तविक, वर्तमान आइटम का उपयोग करके इस मात्रीकरण का एक समूह अभ्यास के रूप में अभ्यास करें।
हमारी इंजीनियरिंग क्षमता का कितना प्रतिशत वास्तव में ऋण उपचार की ओर जाता है, और क्या वह प्रतिशत जान-बूझकर तय किया गया था या यह बस वही है जो फ़ीचर काम आवंटित होने के बाद बच जाता है? अपने वास्तविक हाल के स्प्रिंटों को देखें और धारणा पर निर्भर रहने की बजाय वास्तविक संख्या की गणना करें।
क्या हमारा ऋण बैकलॉग वास्तविक व्यावसायिक प्रभाव द्वारा प्राथमिकता प्राप्त है, या जो भी आइटम सबसे लगातार उठाया गया या सबसे लंबे समय से बैठा है उसके द्वारा? अपनी वर्तमान प्राथमिकता को चर्न डेटा (विषय 4.3) के विरुद्ध क्रॉस-रेफ़रेंस करें और देखें कि क्या दोनों संरेखित हैं।
किन ऋण आइटमों को हमें स्पष्ट रूप से स्थायी मानना चाहिए, एक सक्रिय बैकलॉग पर अनिश्चित काल तक बैठे रहने देने की बजाय? कम से कम एक वास्तविक आइटम की पहचान करें जहाँ ठीक करने की लागत वास्तव में ले जाने की लागत से अधिक है, और इसे एक स्पष्ट रूप से अप्राथमिकता प्राप्त स्थिति में ले जाने पर चर्चा करें।
पिछले वर्ष में हमारा ऋण बैकलॉग कैसे बदला है, बढ़ रहा है, सिकुड़ रहा है, या स्थिर रह रहा है, और क्या वह प्रवृत्ति हमारे अंतर्ज्ञान से मेल खाती है? केवल हमेशा एक एकल स्नैपशॉट देखने की बजाय समय के साथ इसे ट्रैक करें; प्रवृत्ति अक्सर किसी दिए गए क्षण के पूर्ण आकार से अधिक सूचनात्मक होती है।
क्षेत्र दृष्टिकोण
स्टार्टअप। इस चरण में जान-बूझकर, सूचित ऋण अक्सर एक उचित रणनीति है: एक परिकल्पना को सत्यापित करने के लिए तेज़ी से शिप करना, यदि उत्पाद साबित होता है तो विशिष्ट शॉर्टकटों को फिर से देखने की एक स्पष्ट योजना के साथ, एक वैध व्यापार है, कोई विफलता नहीं। जोखिम यह है कि कौन-से शॉर्टकट जान-बूझकर और उलटने योग्य थे बनाम कौन-से कोडबेस बढ़ने के साथ चुपचाप स्थायी, अनजाँची देनदारियाँ बन गए हैं इसका ट्रैक खोना।
छोटा व्यवसाय। एक सरल, साझा सूची, यहाँ तक कि एक अनौपचारिक सूची, जो आपके ज्ञात शॉर्टकटों और उन्हें ठीक करने की मोटी लागत को नाम देती है, इस पैमाने पर आमतौर पर पर्याप्त है। अपनाने लायक़ मुख्य अनुशासन उस सूची को चुपचाप जमा होने और परिचितता के माध्यम से अदृश्य बनने देने की बजाय समय-समय पर फिर से देखना है।
एंटरप्राइज़। यहाँ संरक्षित, पूर्व-आवंटित उपचार क्षमता सबसे अधिक मायने रखती है, क्योंकि ऋण और फ़ीचर काम के बीच व्यक्तिगत प्राथमिकता प्रतियोगिता दर्जनों टीमों में एक साथ बिना किसी संरचनात्मक प्रतिकार के विश्वसनीय रूप से विशेषताओं का पक्ष लेती है। पोर्टफ़ोलियो-स्तरीय निवेश निर्णयों के लिए टीमों में ऋण आइटमों की निष्पक्ष तुलना की जा सके इसके लिए संगठन-व्यापी ऋण मात्रीकरण प्रथा को मानकीकृत करें।
सरकार। दीर्घजीवी प्रणालियाँ वर्षों या दशकों की वृद्धिशील, व्यक्तिगत रूप से उचित आवश्यकता परिवर्तनों में ऋण जमा करती हैं, अक्सर एक संकट मुद्दे को मजबूर करने तक बिना किसी औपचारिक ऋण ट्रैकिंग के। एक मात्रात्मक, दृश्यमान ऋण बैकलॉग निगरानी निकायों को आधुनिकीकरण बजट को न्यायोचित ठहराने के लिए एक वास्तव में प्रेरक उपकरण है, क्योंकि यह “प्रणाली पुरानी है” के अस्पष्ट दावे को निवेश के लिए एक विशिष्ट, लागत वाले मामले में बदल देता है।
उदाहरण
एंटरप्राइज़। एक दूरसंचार कंपनी के बिलिंग प्लेटफ़ॉर्म ने एक दशक से अधिक अनौपचारिक रूप से स्वीकृत लेकिन कभी औपचारिक रूप से ट्रैक नहीं किया गया तकनीकी ऋण जमा किया था, इंजीनियरों ने रेट्रोस्पेक्टिव में नियमित रूप से “बिलिंग इंजन एक गड़बड़ है” का हवाला दिया बिना किसी अनुवर्ती कार्रवाई के। एक नए इंजीनियरिंग निदेशक ने हर टीम को एक मात्रात्मक ऋण बैकलॉग बनाने की आवश्यकता रखी, हर आइटम के लिए समाधान लागत और वहन लागत का अनुमान लगाते हुए, और आगे बढ़ते हुए ऋण उपचार के लिए इंजीनियरिंग क्षमता का एक निश्चित 15% आवंटित किया। एक वर्ष के भीतर, शीर्ष पाँच उच्चतम-वहन-लागत आइटम, गिनती के हिसाब से कुल बैकलॉग का एक छोटा हिस्सा प्रतिनिधित्व करते हुए, हल कर दिए गए थे, और बिलिंग-संबंधित डिप्लॉय के लिए चेंज फ़ेल्योर रेट (विषय 2.10) मापने योग्य रूप से सुधरा, यह प्रदर्शित करते हुए कि मनमाने क्रम में बैकलॉग के माध्यम से काम करने की बजाय पहले उच्चतम-वहन-लागत आइटमों को लक्षित करने का असंगत प्रभाव।
सरकार। एक राष्ट्रीय सांख्यिकी एजेंसी की मुख्य डेटा-प्रोसेसिंग प्रणाली, जिसे मूल रूप से बीस साल पहले बनाया गया था, में कभी एक औपचारिक ऋण आकलन नहीं हुआ था इस व्यापक अनौपचारिक स्वीकृति के बावजूद कि स्टाफ़ के बीच महत्वपूर्ण हिस्से नाज़ुक और ख़राब समझे गए थे। स्थैतिक विश्लेषण खोजों, हॉटस्पॉट डेटा, और सबसे पुराने घटकों को समझने वाले शेष कुछ इंजीनियरों के साक्षात्कारों को जोड़ने वाले एक संरचित ऋण आकलन ने एक मात्रात्मक, प्राथमिकता प्राप्त बैकलॉग उत्पन्न किया जिसने सीधे एक बहु-वर्षीय आधुनिकीकरण बजट अनुरोध का समर्थन किया। महत्वपूर्ण रूप से, आकलन ने कई स्थिर, शायद ही कभी छुए जाने वाले विरासत घटकों को भी स्पष्ट रूप से पहचाना जिन्हें अपरिवर्तित छोड़ना उचित है, एक अनावश्यक रूप से व्यापक और महंगे पूर्ण-प्रणाली पुनर्लेखन से बचते हुए उन विशिष्ट क्षेत्रों में एक लक्षित निवेश के पक्ष में जिन्हें डेटा ने उच्चतम चल रही लागत के रूप में दिखाया।
व्यावसायिक तर्क: प्रेरणाएँ, ROI, और TCO
तकनीकी ऋण को जान-बूझकर प्रबंधित करने का प्रतिफल टाली गई संयोजित लागत है: हर असंबोधित शॉर्टकट भविष्य के परिवर्तनों को सीमांत रूप से कठिन बनाता है, और वह प्रभाव हस्तक्षेप के बिना तेज़ होता है, अंततः एक ऐसा कोडबेस उत्पन्न करता है जो इतना नाज़ुक है कि साधारण परिवर्तन भी धीमे और जोखिम भरे हो जाते हैं। ऊपर का दूरसंचार उदाहरण प्रतिफल को ठोस रूप से दिखाता है: उच्चतम-वहन-लागत आइटमों की एक छोटी संख्या को लक्षित करने से एक मापने योग्य डिलीवरी और गुणवत्ता सुधार उत्पन्न हुआ, कुल बैकलॉग के उस मामूली हिस्से के अनुपात में असंगत जिसे वे आइटम प्रतिनिधित्व करते थे।
कुल स्वामित्व लागत उपचार के लिए आवंटित संरक्षित क्षमता है, आमतौर पर इंजीनियरिंग समय का 10% से 20%, जो एक वास्तविक, दृश्यमान लागत है जो अल्पावधि में फ़ीचर वेलोसिटी के साथ प्रतिस्पर्धा करती है। वह लागत चुकाने लायक़ है क्योंकि विकल्प, अप्रबंधित, संयोजित ऋण, अंततः धीमी डिलीवरी और पूरे कोडबेस में ऊँची दोष दरों में कहीं अधिक क़ीमत लेता है, केवल विशिष्ट असंबोधित आइटमों में नहीं।
विरोधी-पैटर्न और नुक़सान
- कोई दृश्यमान, ट्रैक किया गया ऋण बैकलॉग नहीं: ऋण डिफ़ॉल्ट रूप से प्राथमिकता प्रतियोगिता हार जाता है और अदृश्य रूप से संयोजित होता है।
- अस्पष्ट, अमात्रात्मक ऋण दावे: योजना में ठोस, मात्रात्मक फ़ीचर अनुरोधों के विरुद्ध शायद ही कभी अच्छी तरह प्रतिस्पर्धा करते हैं।
- प्रभाव की बजाय आयु या पैरवी मात्रा द्वारा ऋण को प्राथमिकता देना: सीमित उपचार क्षमता को ग़लत दिशा देता है।
- उपचार के लिए कोई संरक्षित क्षमता नहीं: ऋण चुकाना केवल प्रतिक्रियात्मक रूप से होता है, एक संकट के बाद, नियमित, जान-बूझकर प्रथा के रूप में नहीं।
- सभी ऋण को ठीक करने के लायक़ समान मानना: कम-प्रभाव आइटमों पर प्रयास बर्बाद करता है जबकि उच्च-वहन-लागत आइटम असंबोधित रहते हैं।
- यह कभी तय किए बिना कि यह स्थायी है, ऋण को एक सक्रिय बैकलॉग पर अनिश्चित काल तक बैठे रहने देना: भविष्य के काम का संकेत देता है जो वास्तव में कभी नहीं होगा और वास्तविक प्राथमिकता को अव्यवस्थित करता है।
परिपक्वता मॉडल
- स्तर 1, आरंभ: तकनीकी ऋण की अनौपचारिक रूप से चर्चा की जाती है, बिना किसी ट्रैक किए गए बैकलॉग या मात्रीकरण के; यह लगातार फ़ीचर काम से हार जाता है।
- स्तर 2, विकास: कुछ टीमें अनौपचारिक रूप से ऋण ट्रैक करती हैं, लेकिन कोई सुसंगत मात्रीकरण, क्रॉस-टीम दृश्यता, या संरक्षित उपचार क्षमता नहीं है।
- स्तर 3, मानकीकरण: एक दृश्यमान, मात्रात्मक ऋण बैकलॉग संगठन-व्यापी मौजूद है, संरक्षित उपचार क्षमता लगातार आवंटित की गई।
- स्तर 4, प्रबंधन: ऋण आइटमों को मापे गए प्रभाव (चर्न के साथ संयुक्त वहन लागत) द्वारा प्राथमिकता दी जाती है, और स्थायी रूप से स्वीकृत ऋण को अस्पष्ट छोड़ने की बजाय स्पष्ट रूप से दस्तावेज़ीकृत किया जाता है।
- स्तर 5, संयोजन: संगठन लक्षित ऋण उपचार से ट्रेस किए गए विशिष्ट, मापने योग्य डिलीवरी या गुणवत्ता सुधारों की ओर इशारा कर सकता है, और ऋण प्रबंधन फ़ीचर काम के साथ-साथ इंजीनियरिंग निवेश निर्णयों के लिए एक नियमित, विश्वसनीय इनपुट है।
चर्चा के लिए विचार
- अभी हमारा एकल उच्चतम-वहन-लागत ऋण आइटम क्या है, और क्या हम इसे मात्रात्मक कर सकते हैं?
- आज हमारी क्षमता का कितना प्रतिशत वास्तव में ऋण उपचार में जाता है?
- किस ऋण आइटम को हमें बैकलॉग पर अस्पष्ट छोड़ने की बजाय स्पष्ट रूप से स्थायी मानना चाहिए?
- क्या पिछले वर्ष में हमारा ऋण बैकलॉग बढ़ा, सिकुड़ा, या स्थिर रहा?
- एक मात्रात्मक ऋण आकलन क्या उजागर करेगा जो हमारी वर्तमान अनौपचारिक जागरूकता चूक रही है?
मुख्य निष्कर्ष
- तकनीकी ऋण एक प्रबंधनीय समझौता है, शर्मनाक रहस्य नहीं; इसे एक अस्पष्ट, स्थायी रूप से अप्राथमिकता प्राप्त चिंता छोड़ने की बजाय मात्रात्मक करें।
- हर आइटम के लिए समाधान की लागत बनाम वहन करने की लागत को मात्रात्मक करें ताकि यह फ़ीचर काम के विरुद्ध निष्पक्ष रूप से प्रतिस्पर्धा करे।
- आयु या पैरवी मात्रा से नहीं, प्रभाव द्वारा प्राथमिकता दें (चर्न के साथ संयुक्त वहन लागत)।
- संरक्षित, समर्पित उपचार क्षमता आवंटित करें, अग्रिम रूप से तय की गई, क्योंकि अन्यथा ऋण विश्वसनीय रूप से फ़ीचर काम के विरुद्ध आइटम-दर-आइटम प्रतियोगिता हारता है।
- जहाँ समाधान की लागत वहन करने की लागत से अधिक है वहाँ कुछ ऋण को स्पष्ट रूप से स्थायी स्वीकार करें, इसे एक सक्रिय बैकलॉग पर अस्पष्ट छोड़ने की बजाय।
संदर्भ और आगे पढ़ने के लिए
- Cunningham, Ward, “The WyCash Portfolio Management System” (OOPSLA अनुभव रिपोर्ट, 1992): तकनीकी ऋण रूपक की उत्पत्ति।
- Managing Technical Debt: Reducing Friction in Software Development, by Philippe Kruchten, Robert Nord, and Ipek Ozkaya (तकनीकी ऋण माप और प्रबंधन का एक व्यापक उपचार)।
- Refactoring: Improving the Design of Existing Code, by Martin Fowler (उपचार तकनीकें जिन पर एक ऋण बैकलॉग अंततः निर्भर करता है)।
- Your Code as a Crime Scene, by Adam Tornhill (ऋण प्राथमिकता के लिए एक इनपुट के रूप में हॉटस्पॉट विश्लेषण, विषय 4.3)।