৪.৫ প্রযুক্তিগত ঋণ পরিমাপ
সারসংক্ষেপ এবং প্রেরণা
প্রযুক্তিগত ঋণ, ওয়ার্ড কানিংহাম দ্বারা তৈরি একটি রূপক, অতীতের শর্টকাটের সঞ্চিত খরচ বর্ণনা করে, সুবিধাজনক সিদ্ধান্ত যা কিছু দ্রুত সরবরাহ করেছিল কিন্তু কোডবেসকে পরে পরিবর্তন করা কঠিনতর রেখেছিল, ঠিক যেভাবে আর্থিক ঋণ আপনাকে এখন খরচ করতে দেয় পরে সুদের খরচে। প্রতিটি কোডবেস কিছু প্রযুক্তিগত ঋণ বহন করে, এবং এটি স্বয়ংক্রিয়ভাবে একটি ব্যর্থতা নয়; রূপকটির প্রকৃত মূল্য হলো এটি ঋণকে একটি ব্যবস্থাপনাযোগ্য বিনিময় হিসেবে গঠন করে একটি লজ্জাজনক গোপন ব্যাপার বা একটি অনিবার্য, স্থায়ী বোঝা হিসেবে নয়। এই বিষয়টি পরিমাপের মাধ্যমে সেই বিনিময়কে দৃশ্যমান ও ব্যবস্থাপনাযোগ্য করা সম্পর্কে, এটিকে একটি অস্পষ্ট, চিরস্থায়ীভাবে অগ্রাধিকার-হ্রাসকৃত উদ্বেগ হিসেবে রেখে দেওয়ার বদলে যা প্রতিটি প্রকৌশলী অনুভব করেন কিন্তু কেউ প্রমাণসহ এর উপর কাজ করতে পারেন না।
এর আগের বিষয়গুলো, জটিলতা (৪.১), কভারেজ (৪.২), churn ও হটস্পট (৪.৩), এবং স্ট্যাটিক বিশ্লেষণ (৪.৪), প্রতিটি প্রযুক্তিগত ঋণের একটি দিক প্রকাশ করে। এই বিষয়ের কাজ হলো সংশ্লেষণ: সেই পৃথক সংকেত, প্লাস আইটেম যা কোনো স্বয়ংক্রিয় স্ক্যানে কখনও প্রকাশ পায় না (একটি অনথিভুক্ত স্থাপত্য শর্টকাট, একটি ইচ্ছাকৃতভাবে বিলম্বিত মাইগ্রেশন), একটি একক, অগ্রাধিকারপ্রাপ্ত, দৃশ্যমান ব্যাকলগে পরিণত করা যা বৈশিষ্ট্য কাজের বিরুদ্ধে ন্যায্যভাবে বিনিয়োগের জন্য প্রতিযোগিতা করে, শুধু কারণ এর কোনো মেট্রিক সংযুক্ত নেই এবং পরিকল্পনা সভায় কোনো সমর্থক নেই বলে ডিফল্টভাবে সেই প্রতিযোগিতা হারানোর বদলে।
বড় দলের জন্য, অব্যবস্থাপিত প্রযুক্তিগত ঋণ এমনভাবে যৌগিক হয় যা প্রকৃতপক্ষে বিপজ্জনক ও অবমূল্যায়ন করা সহজ: প্রতিটি নতুন শর্টকাট পরবর্তী পরিবর্তনকে সামান্য কঠিনতর করে তোলে, যা আরও শর্টকাটের জন্য চাপ তৈরি করে, যা আরও যৌগিক হয়। অনেক বছর ধরে সিস্টেম রক্ষণাবেক্ষণকারী এন্টারপ্রাইজ ও সরকারি প্রতিষ্ঠান এই যৌগিক প্রভাবের বিশেষভাবে প্রকাশিত, এবং এই বিষয়ের কেন্দ্রীয় সুপারিশ, একটি দৃশ্যমান, পরিমাণগত, অগ্রাধিকারপ্রাপ্ত ঋণ ব্যাকলগ, হলো সেই প্রক্রিয়া যা একটি প্রতিষ্ঠানকে একটি সংকটের দিকে ভেসে যাওয়ার বদলে প্রকৃতপক্ষে ইচ্ছাকৃতভাবে বিনিময় ব্যবস্থাপনা করতে দেয়।
মূল নীতিসমূহ
- প্রযুক্তিগত ঋণ একটি ব্যবস্থাপনাযোগ্য বিনিময়ের জন্য একটি ইচ্ছাকৃত রূপক, একটি লজ্জাজনক গোপন বিষয় নয়। কিছু ঋণ, জ্ঞাতসারে নেওয়া, একটি যুক্তিসঙ্গত ব্যবসায়িক সিদ্ধান্ত।
- অপরিমাপিত ঋণ ডিফল্টভাবে বৈশিষ্ট্য কাজের বিরুদ্ধে অগ্রাধিকার প্রতিযোগিতা হারায়, এটি কম গুরুত্বপূর্ণ বলে নয়, বরং এর কোনো দৃশ্যমান সমর্থক নেই বলে।
- সিদ্ধান্ত গ্রহণকারীরা ওজন করতে পারেন এমন পদে ঋণ পরিমাণ নির্ধারণ করুন: ঠিক করার খরচ বনাম এটি বহন করার খরচ। একটি অস্পষ্ট “কোডটি অগোছালো” দাবি একটি সুনির্দিষ্ট বৈশিষ্ট্য অনুরোধের বিরুদ্ধে খুব কমই ভালো প্রতিযোগিতা করে।
- ঋণ যৌগিক হয়। প্রতিটি নতুন শর্টকাট ভবিষ্যতের পরিবর্তনকে প্রান্তিকভাবে কঠিনতর করে তোলে, এবং সেই প্রভাব অব্যবস্থাপিত থাকলে ত্বরান্বিত হয়।
- সব ঋণ পরিশোধ করা উচিত নয়। কিছু অনির্দিষ্টকালের জন্য বহন করার যোগ্য যদি এটি ঠিক করার খরচ এটির সাথে বেঁচে থাকার খরচ অতিক্রম করে।
সুপারিশসমূহ
একটি দৃশ্যমান, একক প্রযুক্তিগত ঋণ ব্যাকলগ তৈরি করুন
এই পর্বের আগের বিষয়গুলোর সংকেত একত্রিত করুন, জটিলতা আউটলায়ার, নিম্ন মিউট্যান্ট-নিধন-হার ক্ষেত্র, হটস্পট, অসমাধানকৃত স্ট্যাটিক বিশ্লেষণ অনুসন্ধান, শুধুমাত্র একজন মানুষ চিহ্নিত করতে পারেন এমন ঋণ আইটেমের পাশাপাশি (একটি স্থাপত্য শর্টকাট, একটি বিলম্বিত নির্ভরতা আপগ্রেড, একটি অনথিভুক্ত কাজ-চালানো), একটি দৃশ্যমান ব্যাকলগে, আপনার বৈশিষ্ট্য ব্যাকলগের মতোই একই কঠোরতা ও দৃশ্যমানতাসহ ট্র্যাক করা। ঋণ যা শুধু পৃথক প্রকৌশলীদের স্মৃতিতে বা বিক্ষিপ্ত কোড মন্তব্যে বাস করে কার্যকরভাবে অগ্রাধিকারের উদ্দেশ্যে বিদ্যমান নেই।
প্রতিটি ঋণ আইটেমের খরচ ও এর বহনকারী খরচ পরিমাণ নির্ধারণ করুন
প্রতিটি আইটেমের জন্য, দুটি পরিসংখ্যান অনুমান করুন: এটি ঠিক করার খরচ (প্রকৌশল সময়, সমাধানের নিজস্ব ঝুঁকি) এবং এটিকে অসমাধিত বহন করার খরচ (সংশ্লিষ্ট কাজ কতটা ধীর হয়, এটি কত অতিরিক্ত ত্রুটি ঝুঁকি বহন করে, এটি অন্য কাজকে কতটা ব্লক করে)। এই গঠন, সরাসরি আর্থিক ঋণ রূপকের নিজস্ব যুক্তি থেকে ধার করা, সিদ্ধান্ত গ্রহণকারীদের বৈশিষ্ট্য কাজের খরচ ও প্রত্যাশিত মূল্যের বিরুদ্ধে তুলনার একটি প্রকৃত ভিত্তি দেয়, একটি বিমূর্ত, অপরিমাণগত অভিযোগের বদলে।
বয়স বা সবচেয়ে জোরালো সমর্থক নয়, প্রভাব ব্যবহার করে অগ্রাধিকার দিন
তাদের বহনকারী খরচ ও প্রভাবিত কোড কত ঘন ঘন স্পৃষ্ট হয় তার সংমিশ্রণ দ্বারা ঋণ আইটেম র্যাঙ্ক করুন (বিষয় ৪.৩-এর churn উপাত্ত এখানে সরাসরি দরকারী): কোডবেসের একটি কদাচিৎ পরিবর্তিত কোণে একটি আইটেম, যত অপ্রীতিকরই হোক না কেন, আপনার সবচেয়ে সক্রিয় উন্নয়নের পথে সরাসরি বসে থাকা একটির চেয়ে অনেক কম গুরুত্বপূর্ণ। কোন আইটেমটি ব্যাকলগে সবচেয়ে দীর্ঘ সময় ধরে আছে বা কোন প্রকৌশলী এর জন্য সবচেয়ে নাছোড়বান্দাভাবে সমর্থন করেন তার দ্বারা অগ্রাধিকার দেওয়া প্রতিরোধ করুন, যাদের কোনোটিই নির্ভরযোগ্যভাবে প্রকৃত ব্যবসায়িক প্রভাবের সাথে সহসম্পর্কিত নয়।
ঋণ প্রতিকারের জন্য নিবেদিত, সুরক্ষিত ক্ষমতা বরাদ্দ করুন
একটি ঋণ ব্যাকলগ যা প্রতিটি পরিকল্পনা চক্রে প্রতিটি আগত বৈশিষ্ট্য অনুরোধের বিরুদ্ধে আইটেম অনুযায়ী প্রতিযোগিতা করতে হয় ধারাবাহিকভাবে হারানোর প্রবণতা রাখে, কারণ বৈশিষ্ট্য কাজের সাধারণত একটি স্পষ্টতর, আরও তাৎক্ষণিক ব্যবসায়িক চ্যাম্পিয়ন থাকে। প্রকৌশল ক্ষমতার একটি সুরক্ষিত শতাংশ বরাদ্দ করুন, একটি সাধারণ প্যাটার্ন ১০% থেকে ২০%-এর মধ্যে কোথাও, নির্দিষ্টভাবে ঋণ প্রতিকারের জন্য, প্রতি স্প্রিন্টে নতুনভাবে আলোচনা করার বদলে আগেভাগে সিদ্ধান্ত নেওয়া, যাতে ঋণ পরিশোধ একটি সংকটের পরিণতিতে শুধু ঘটার বদলে স্বাভাবিক বিষয় হিসেবে ঘটে।
কিছু ঋণকে স্থায়ী হিসেবে গ্রহণ করুন, এবং স্পষ্টভাবে তা বলুন
প্রতিটি আইটেম একটি সক্রিয় প্রতিকার পরিকল্পনার অন্তর্গত নয়। যেখানে ঠিক করার খরচ প্রকৃতপক্ষে একটি আইটেম অনির্দিষ্টকালের জন্য বহন করার খরচ অতিক্রম করে, বিশেষত একটি স্থিতিশীল, কদাচিৎ স্পৃষ্ট, শীঘ্রই-অবসরপ্রাপ্ত সিস্টেমের কোডের জন্য, স্পষ্টভাবে সেই সিদ্ধান্ত নথিভুক্ত করুন এবং আইটেমটিকে একটি ইচ্ছাকৃতভাবে অগ্রাধিকার-হ্রাসকৃত শ্রেণীতে সরান, এটিকে একটি সক্রিয় ব্যাকলগে অনির্দিষ্টকালের জন্য বসে থাকতে দেওয়ার বদলে যেখানে এর অব্যাহত উপস্থিতি নীরবে এমন কাজের ইঙ্গিত দেয় যা প্রকৃতপক্ষে কখনও ঘটবে না।
মূল্যবিচার: ভালো ও মন্দ দিক
| পদ্ধতি | ভালো দিক | মন্দ দিক |
|---|---|---|
| কোনো আনুষ্ঠানিক ঋণ ট্র্যাকিং নেই | কোনো ওভারহেড নেই | ঋণ ডিফল্টভাবে অগ্রাধিকার প্রতিযোগিতা হারায়; অদৃশ্যভাবে যৌগিক হয় |
| অনানুষ্ঠানিক, এডহক ঋণ সচেতনতা | কম ওভারহেড, কিছু দৃশ্যমানতা | অসামঞ্জস্যপূর্ণ; ব্যক্তিগত স্মৃতি ও সমর্থনের উপর নির্ভরশীল |
| আনুষ্ঠানিক, পরিমাণগত ঋণ ব্যাকলগ | বিনিয়োগের জন্য ন্যায্যভাবে প্রতিযোগিতা করে; অবগত বিনিময় সক্ষম করে | চলমান রক্ষণাবেক্ষণ ও পরিমাণগত নির্ধারণ শৃঙ্খলা প্রয়োজন |
| সুরক্ষিত, নিবেদিত প্রতিকার ক্ষমতা | পরিশোধ সামঞ্জস্যপূর্ণভাবে ঘটে তা নিশ্চিত করে, শুধু প্রতিক্রিয়াশীলভাবে নয় | স্বল্পমেয়াদে বৈশিষ্ট্য কাজের জন্য উপলব্ধ ক্ষমতা কমায় |
কেন্দ্রীয় টানাপোড়েন হলো তাৎক্ষণিক সরবরাহ চাপ বনাম দীর্ঘমেয়াদী রক্ষণাবেক্ষণযোগ্যতা। বৈশিষ্ট্য কাজের প্রায় সবসময় ঋণ প্রতিকারের চেয়ে একটি স্পষ্টতর, আরও তাৎক্ষণিক ব্যবসায়িক চ্যাম্পিয়ন থাকে, যা ঋণকে প্রতিটি পৃথক অগ্রাধিকার সিদ্ধান্তে হারানোর কাঠামোগত চাপ তৈরি করে এমনকি যখন এর সঞ্চিত খরচ বেশি। সুরক্ষিত, পূর্ব-বরাদ্দকৃত ক্ষমতার মাধ্যমে আইটেম-অনুযায়ী প্রতিযোগিতা থেকে সম্পূর্ণভাবে ঋণ প্রতিকার অপসারণ করে টানাপোড়েন সমাধান করুন, যাতে বিনিময়টি ইচ্ছাকৃতভাবে ও আগেভাগে সিদ্ধান্ত নেওয়া হয় প্রতিটি একক পরিকল্পনা চক্রে পুনরায় বিতর্কিত হওয়ার বদলে, এবং সাধারণত হারানো।
আপনার দলের সাথে আলোচনার প্রশ্ন
১. আমাদের কি একটি একক, দৃশ্যমান প্রযুক্তিগত ঋণ ব্যাকলগ আছে, নাকি ঋণ সচেতনতা মূলত পৃথক প্রকৌশলীদের মাথায় বাস করে? যদি সৎ উত্তর দ্বিতীয়টি হয়, এই বিষয় সুপারিশ করে প্রথমে বন্ধ করার একক বৃহত্তম ফাঁক তা।
২. আমাদের শীর্ষ ঋণ আইটেমের জন্য, আমরা কি একটি বৈশিষ্ট্য অনুরোধের বিরুদ্ধে ন্যায্যভাবে তুলনা করার জন্য যথেষ্ট নির্দিষ্ট পদে এর ঠিক করার খরচ ও বহনকারী খরচ বলতে পারি? যদি না, একটি প্রকৃত, বর্তমান আইটেম ব্যবহার করে একটি গোষ্ঠী অনুশীলন হিসেবে একসাথে এই পরিমাণ নির্ধারণ অনুশীলন করুন।
৩. আমাদের প্রকৌশল ক্ষমতার কত শতাংশ প্রকৃতপক্ষে ঋণ প্রতিকারের দিকে যায়, এবং সেই শতাংশ কি ইচ্ছাকৃতভাবে সিদ্ধান্ত নেওয়া হয়েছিল নাকি এটি বৈশিষ্ট্য কাজ বরাদ্দ করার পরে যা টিকে থাকে তাই ঘটে? আপনার প্রকৃত সাম্প্রতিক স্প্রিন্টের দিকে তাকান এবং ধারণার উপর নির্ভর করার বদলে প্রকৃত সংখ্যা গণনা করুন।
৪. আমাদের ঋণ ব্যাকলগ কি প্রকৃত ব্যবসায়িক প্রভাব দ্বারা অগ্রাধিকারপ্রাপ্ত, নাকি কোন আইটেমটি সবচেয়ে নাছোড়বান্দাভাবে উত্থাপিত হয়েছে বা সবচেয়ে দীর্ঘ সময় সেখানে বসে আছে তার দ্বারা? churn উপাত্তের (বিষয় ৪.৩) বিরুদ্ধে আপনার বর্তমান অগ্রাধিকার ক্রস-রেফারেন্স করুন এবং দেখুন দুটি সারিবদ্ধ কিনা।
৫. কোন ঋণ আইটেম আমাদের স্পষ্টভাবে স্থায়ী হিসেবে গ্রহণ করা উচিত, একটি সক্রিয় ব্যাকলগে অনির্দিষ্টকালের জন্য অস্পষ্টভাবে বসে থাকতে দেওয়ার বদলে? কমপক্ষে একটি প্রকৃত আইটেম চিহ্নিত করুন যেখানে ঠিক করার খরচ প্রকৃতপক্ষে বহনকারী খরচ অতিক্রম করে, এবং এটিকে একটি স্পষ্টভাবে অগ্রাধিকার-হ্রাসকৃত অবস্থায় সরানোর আলোচনা করুন।
৬. গত বছরে আমাদের ঋণ ব্যাকলগ কীভাবে পরিবর্তিত হয়েছে, বেড়েছে, সংকুচিত হয়েছে, নাকি সমতল থেকেছে, এবং সেই প্রবণতা কি আমাদের স্বজ্ঞার সাথে মেলে? শুধু একটি একক স্ন্যাপশট না দেখে সময়ের সাথে এটি ট্র্যাক করুন; প্রবণতা প্রায়ই যে কোনো প্রদত্ত মুহূর্তে পরম আকারের চেয়ে বেশি তথ্যপূর্ণ।
ক্ষেত্র লেন্স
স্টার্টআপ। এই পর্যায়ে ইচ্ছাকৃত, অবগত ঋণ প্রায়ই একটি যুক্তিসঙ্গত কৌশল: একটি হাইপোথিসিস যাচাই করতে দ্রুত সরবরাহ করা, পণ্যটি প্রমাণিত হলে নির্দিষ্ট শর্টকাট পুনরায় দেখার একটি স্পষ্ট পরিকল্পনাসহ, একটি বৈধ বাণিজ্য, একটি ব্যর্থতা নয়। ঝুঁকিটি হলো কোন শর্টকাটগুলো ইচ্ছাকৃত ও বিপরীতযোগ্য ছিল তার ট্র্যাক হারানো বনাম কোনটি নীরবে কোডবেস বৃদ্ধির সাথে সাথে স্থায়ী, অপরীক্ষিত দায় হয়ে উঠেছে।
ছোট ব্যবসা। একটি সরল, ভাগ করা তালিকা, এমনকি একটি অনানুষ্ঠানিকও, আপনার পরিচিত শর্টকাট ও তাদের ঠিক করার মোটামুটি খরচ নাম দেওয়া এই মাত্রায় সাধারণত যথেষ্ট। গ্রহণের যোগ্য প্রধান শৃঙ্খলা হলো পর্যায়ক্রমিকভাবে সেই তালিকা পুনরায় দেখা এটিকে নীরবে জমা হতে ও পরিচিতির মাধ্যমে অদৃশ্য হতে দেওয়ার বদলে।
এন্টারপ্রাইজ। এখানে সুরক্ষিত, পূর্ব-বরাদ্দকৃত প্রতিকার ক্ষমতা সবচেয়ে বেশি গুরুত্বপূর্ণ, যেহেতু ঋণ ও বৈশিষ্ট্য কাজের মধ্যে পৃথক অগ্রাধিকার প্রতিযোগিতা একটি কাঠামোগত ভারসাম্যকারী ছাড়াই একসাথে ডজন ডজন দল জুড়ে নির্ভরযোগ্যভাবে বৈশিষ্ট্যকে পছন্দ করে। প্রতিষ্ঠান-ব্যাপী ঋণ পরিমাণ নির্ধারণ অনুশীলন মানসম্মত করুন যাতে পোর্টফোলিও-স্তরের বিনিয়োগ সিদ্ধান্তের জন্য দল জুড়ে ঋণ আইটেম ন্যায্যভাবে তুলনা করা যায়।
সরকার। দীর্ঘজীবী সিস্টেম ক্রমবর্ধমান, পৃথকভাবে যুক্তিসঙ্গত প্রয়োজনীয়তা পরিবর্তনের বছর বা দশক ধরে ঋণ সঞ্চয় করে, প্রায়ই একটি সংকট সমস্যাটি বাধ্য না করা পর্যন্ত কোনো আনুষ্ঠানিক ঋণ ট্র্যাকিং ছাড়াই। একটি পরিমাণগত, দৃশ্যমান ঋণ ব্যাকলগ তদারকি সংস্থাদের কাছে আধুনিকীকরণ বাজেট ন্যায্যতা দেওয়ার একটি প্রকৃতপক্ষে প্ররোচনামূলক টুল, যেহেতু এটি একটি অস্পষ্ট “সিস্টেমটি পুরনো” দাবিকে বিনিয়োগের জন্য একটি নির্দিষ্ট, খরচযুক্ত মামলায় পরিণত করে।
উদাহরণ
এন্টারপ্রাইজ। একটি টেলিযোগাযোগ কোম্পানির বিলিং প্ল্যাটফর্ম দশকেরও বেশি সময় ধরে অনানুষ্ঠানিকভাবে স্বীকৃত কিন্তু কখনও আনুষ্ঠানিকভাবে ট্র্যাক করা হয়নি এমন প্রযুক্তিগত ঋণ সঞ্চয় করেছিল, প্রকৌশলীরা রেট্রোস্পেক্টিভে নিয়মিতভাবে “বিলিং ইঞ্জিনটি একটি জগাখিচুড়ি” উল্লেখ করতেন কোনো ফলো-থ্রু ছাড়াই। একজন নতুন প্রকৌশল পরিচালক প্রতিটি দলকে একটি পরিমাণগত ঋণ ব্যাকলগ তৈরি করতে বলেছিলেন, প্রতিটি আইটেমের জন্য ঠিক করার খরচ ও বহনকারী খরচ অনুমান করে, এবং এগিয়ে ঋণ প্রতিকারের জন্য প্রকৌশল ক্ষমতার একটি নির্দিষ্ট ১৫% বরাদ্দ করেছিলেন। এক বছরের মধ্যে, সর্বোচ্চ-বহনকারী-খরচের শীর্ষ পাঁচটি আইটেম, গণনা অনুসারে মোট ব্যাকলগের একটি ছোট অংশ প্রতিনিধিত্ব করে, সমাধান হয়েছিল, এবং বিলিং-সম্পর্কিত স্থাপনার জন্য পরিবর্তন ব্যর্থতার হার (বিষয় ২.১০) পরিমাপযোগ্যভাবে উন্নত হয়েছিল, স্বেচ্ছাচারী ক্রমে ব্যাকলগের মধ্য দিয়ে কাজ করার বদলে প্রথমে সর্বোচ্চ-বহনকারী-খরচের আইটেম লক্ষ্য করার অসামঞ্জস্যপূর্ণ প্রভাব প্রদর্শন করে।
সরকার। একটি জাতীয় পরিসংখ্যান সংস্থার মূল উপাত্ত-প্রক্রিয়াকরণ সিস্টেম, মূলত বিশ বছরেরও বেশি আগে নির্মিত, উল্লেখযোগ্য অংশ ভঙ্গুর ও খারাপভাবে বোঝা ছিল কর্মীদের মধ্যে ব্যাপক অনানুষ্ঠানিক স্বীকৃতি সত্ত্বেও কখনও একটি আনুষ্ঠানিক ঋণ মূল্যায়ন হয়নি। স্ট্যাটিক বিশ্লেষণ অনুসন্ধান, হটস্পট উপাত্ত, এবং প্রাচীনতম উপাদান বোঝেন এমন অবশিষ্ট কয়েকজন প্রকৌশলীর সাক্ষাৎকার একত্রিত করা একটি কাঠামোগত ঋণ মূল্যায়ন একটি পরিমাণগত, অগ্রাধিকারপ্রাপ্ত ব্যাকলগ উৎপাদন করেছিল যা সরাসরি একটি বহু-বছরের আধুনিকীকরণ বাজেট অনুরোধ সমর্থন করেছিল। গুরুত্বপূর্ণভাবে, মূল্যায়নটি স্পষ্টভাবে বেশ কয়েকটি স্থিতিশীল, কদাচিৎ স্পৃষ্ট উত্তরাধিকার উপাদানকেও অপরিবর্তিত রাখা যুক্তিসঙ্গত হিসেবে চিহ্নিত করেছিল, উপাত্ত যেখানে সর্বোচ্চ চলমান খরচ বহন করে দেখিয়েছিল সেই নির্দিষ্ট ক্ষেত্রে একটি লক্ষ্যযুক্ত বিনিয়োগের পক্ষে একটি অপ্রয়োজনীয়ভাবে বিস্তৃত ও ব্যয়বহুল সম্পূর্ণ-সিস্টেম পুনর্লিখন এড়িয়ে।
ব্যবসায়িক যুক্তি: প্রেরণা, ROI, এবং TCO
ইচ্ছাকৃতভাবে প্রযুক্তিগত ঋণ ব্যবস্থাপনার রিটার্ন হলো এড়ানো যৌগিক খরচ: প্রতিটি অসমাধিত শর্টকাট ভবিষ্যতের পরিবর্তনকে প্রান্তিকভাবে কঠিনতর করে তোলে, এবং সেই প্রভাব হস্তক্ষেপ ছাড়া ত্বরান্বিত হয়, অবশেষে এমন একটি কোডবেস উৎপাদন করে যা এত ভঙ্গুর যে এমনকি সরল পরিবর্তনও ধীর ও ঝুঁকিপূর্ণ হয়ে ওঠে। উপরের টেলিযোগাযোগ উদাহরণ সুনির্দিষ্টভাবে রিটার্ন দেখায়: সর্বোচ্চ-বহনকারী-খরচের একটি ছোট সংখ্যক আইটেম লক্ষ্য করা একটি পরিমাপযোগ্য সরবরাহ ও গুণমান উন্নতি উৎপাদন করেছিল, সেই আইটেমগুলো প্রতিনিধিত্ব করা মোট ব্যাকলগের পরিমিত অংশের অসামঞ্জস্যপূর্ণ।
মোট মালিকানা খরচ হলো প্রতিকারে বরাদ্দকৃত সুরক্ষিত ক্ষমতা, সাধারণত প্রকৌশল সময়ের ১০% থেকে ২০%, যা একটি প্রকৃত, দৃশ্যমান খরচ যা স্বল্পমেয়াদে বৈশিষ্ট্য বেগের সাথে প্রতিযোগিতা করে। সেই খরচ পরিশোধের যোগ্য কারণ বিকল্প, অব্যবস্থাপিত, যৌগিক ঋণ, অবশেষে শুধু নির্দিষ্ট অসমাধিত আইটেম নয় বরং সম্পূর্ণ কোডবেস জুড়ে ধীরগতির সরবরাহ ও উচ্চতর ত্রুটির হারে অনেক বেশি খরচ করে।
বিরোধী প্যাটার্ন এবং ফাঁদ
- কোনো দৃশ্যমান, ট্র্যাক করা ঋণ ব্যাকলগ নেই: ঋণ ডিফল্টভাবে অগ্রাধিকার প্রতিযোগিতা হারায় এবং অদৃশ্যভাবে যৌগিক হয়।
- অস্পষ্ট, অপরিমাণগত ঋণ দাবি: পরিকল্পনায় সুনির্দিষ্ট, পরিমাণগত বৈশিষ্ট্য অনুরোধের বিরুদ্ধে খুব কমই ভালো প্রতিযোগিতা করে।
- প্রভাবের বদলে বয়স বা সমর্থনের আয়তন দ্বারা ঋণ অগ্রাধিকার দেওয়া: সীমিত প্রতিকার ক্ষমতা ভুল দিক নির্দেশ করে।
- প্রতিকারের জন্য কোনো সুরক্ষিত ক্ষমতা নেই: ঋণ পরিশোধ শুধুমাত্র প্রতিক্রিয়াশীলভাবে, একটি সংকটের পরে ঘটে, রুটিন, ইচ্ছাকৃত অনুশীলন হিসেবে নয়।
- সব ঋণকে সমানভাবে ঠিক করার যোগ্য হিসেবে বিবেচনা করা: নিম্ন-প্রভাব আইটেমে প্রচেষ্টা অপচয় করে যখন উচ্চ-বহনকারী-খরচের আইটেম অসমাধিত থেকে যায়।
- এটি স্থায়ী তা কখনও সিদ্ধান্ত না নিয়ে একটি সক্রিয় ব্যাকলগে অনির্দিষ্টকালের জন্য ঋণ বসে থাকতে দেওয়া: ভবিষ্যতের কাজের ইঙ্গিত দেয় যা প্রকৃতপক্ষে কখনও ঘটবে না এবং প্রকৃত অগ্রাধিকারকে বিশৃঙ্খল করে।
পরিপক্বতা মডেল
- স্তর ১, শুরু: প্রযুক্তিগত ঋণ অনানুষ্ঠানিকভাবে আলোচিত হয়, কোনো ট্র্যাক করা ব্যাকলগ ও কোনো পরিমাণ নির্ধারণ ছাড়াই; এটি ধারাবাহিকভাবে বৈশিষ্ট্য কাজের কাছে হারায়।
- স্তর ২, উন্নয়ন: কিছু দল অনানুষ্ঠানিকভাবে ঋণ ট্র্যাক করে, কিন্তু কোনো সামঞ্জস্যপূর্ণ পরিমাণ নির্ধারণ, ক্রস-দল দৃশ্যমানতা, বা সুরক্ষিত প্রতিকার ক্ষমতা নেই।
- স্তর ৩, মানসম্মতকরণ: প্রতিষ্ঠান-ব্যাপী একটি দৃশ্যমান, পরিমাণগত ঋণ ব্যাকলগ বিদ্যমান, সামঞ্জস্যপূর্ণভাবে বরাদ্দকৃত সুরক্ষিত প্রতিকার ক্ষমতাসহ।
- স্তর ৪, ব্যবস্থাপনা: ঋণ আইটেম পরিমাপিত প্রভাব দ্বারা অগ্রাধিকারপ্রাপ্ত (churn-এর সাথে একত্রিত বহনকারী খরচ), এবং স্থায়ীভাবে গৃহীত ঋণ অস্পষ্ট রাখার বদলে স্পষ্টভাবে নথিভুক্ত।
- স্তর ৫, সমন্বয়: প্রতিষ্ঠান লক্ষ্যযুক্ত ঋণ প্রতিকারে ফিরে খুঁজে পাওয়া নির্দিষ্ট, পরিমাপযোগ্য সরবরাহ বা গুণমান উন্নতি নির্দেশ করতে পারে, এবং ঋণ ব্যবস্থাপনা বৈশিষ্ট্য কাজের পাশাপাশি প্রকৌশল বিনিয়োগ সিদ্ধান্তের একটি রুটিন, বিশ্বস্ত ইনপুট।
আলোচনার জন্য ধারণা
১. এখন আমাদের একক সর্বোচ্চ-বহনকারী-খরচের ঋণ আইটেম কী, এবং আমরা কি এটি পরিমাণ নির্ধারণ করতে পারি? ২. আজ আমাদের ক্ষমতার কত শতাংশ প্রকৃতপক্ষে ঋণ প্রতিকারে যায়? ৩. আমাদের ব্যাকলগে অস্পষ্টভাবে রেখে দেওয়ার বদলে কোন ঋণ আইটেম আমাদের স্পষ্টভাবে স্থায়ী হিসেবে গ্রহণ করা উচিত? ৪. গত বছরে আমাদের ঋণ ব্যাকলগ কি বেড়েছে, সংকুচিত হয়েছে, নাকি সমতল থেকেছে? ৫. একটি পরিমাণগত ঋণ মূল্যায়ন কী প্রকাশ করবে যা আমাদের বর্তমান অনানুষ্ঠানিক সচেতনতা মিস করছে?
মূল বিষয়সমূহ
- প্রযুক্তিগত ঋণ একটি ব্যবস্থাপনাযোগ্য বিনিময়, একটি লজ্জাজনক গোপন বিষয় নয়; এটিকে একটি অস্পষ্ট, চিরস্থায়ীভাবে অগ্রাধিকার-হ্রাসকৃত উদ্বেগ হিসেবে রেখে দেওয়ার বদলে পরিমাণ নির্ধারণ করুন।
- প্রতিটি আইটেমের জন্য ঠিক করার খরচ বনাম বহন করার খরচ পরিমাণ নির্ধারণ করুন যাতে এটি বৈশিষ্ট্য কাজের বিরুদ্ধে ন্যায্যভাবে প্রতিযোগিতা করে।
- বয়স বা সমর্থনের আয়তন নয়, প্রভাব দ্বারা অগ্রাধিকার দিন (churn-এর সাথে একত্রিত বহনকারী খরচ)।
- সুরক্ষিত, নিবেদিত প্রতিকার ক্ষমতা বরাদ্দ করুন, আগেভাগে সিদ্ধান্ত নেওয়া, যেহেতু অন্যথায় ঋণ নির্ভরযোগ্যভাবে বৈশিষ্ট্য কাজের বিরুদ্ধে আইটেম-অনুযায়ী প্রতিযোগিতা হারায়।
- যেখানে ঠিক করার খরচ বহন করার খরচ অতিক্রম করে সেখানে স্পষ্টভাবে কিছু ঋণকে স্থায়ী হিসেবে গ্রহণ করুন, এটিকে একটি সক্রিয় ব্যাকলগে অস্পষ্টভাবে রেখে দেওয়ার বদলে।
তথ্যসূত্র এবং অতিরিক্ত পাঠ
- Cunningham, Ward. “The WyCash Portfolio Management System.” OOPSLA Experience Report, 1992.
- Kruchten, Philippe, Robert Nord, and Ipek Ozkaya. Managing Technical Debt: Reducing Friction in Software Development. Addison-Wesley, 2019.
- Fowler, Martin. Refactoring: Improving the Design of Existing Code. Addison-Wesley, 1999.
- Tornhill, Adam. Your Code as a Crime Scene: Use Forensic Techniques to Arrest Defects, Bottlenecks, and Bad Design in Your Programs. Pragmatic Bookshelf, 2015.