10.4 বড় ও দীর্ঘজীবী সিস্টেম টিকিয়ে রাখা
পরিচিতি ও প্রেরণা
সফটওয়্যার প্রকৌশল নিয়ে বেশিরভাগ লেখা নতুন জিনিস গড়ার বিষয়ে। কিন্তু বিশ্বের বেশিরভাগ গুরুত্বপূর্ণ সফটওয়্যার পুরনো, বড় এবং এখনো চলছে: কর সিস্টেম, সুবিধা পেমেন্ট, বিমান-ট্রাফিক নিয়ন্ত্রণ, মূল ব্যাংকিং, শিল্প নিয়ন্ত্রণ, এবং দৈনন্দিন জীবনের অবকাঠামো। এই সিস্টেম নিয়মিত দশ, কুড়ি বা তিরিশ বছর চলে। এটি যারা গড়েছে তাদের মেয়াদের চেয়ে অনেক দীর্ঘ, এবং প্রায়ই যে কোম্পানি ও ভাষা তৈরি করেছিল তার চেয়েও। এমন সিস্টেম টিকিয়ে রাখার অর্থ তাদের নির্ভরযোগ্য, নিরাপদ, বোঝা এবং দশক ও কর্মীর প্রজন্ম জুড়ে পরিবর্তনযোগ্য রাখা। এটি ক্ষেত্রের সবচেয়ে কঠিন ও কম চাকচিক্যময় শৃঙ্খলাগুলোর একটি, এবং যেখানে বড় এন্টারপ্রাইজ ও সরকার সবচেয়ে ভারী বোঝা বহন করে।
কেন এটি বড় প্রতিষ্ঠানের জন্য বেশি গুরুত্বপূর্ণ? বাধ্যবাধকতার ধারাবাহিকতা। একটি স্টার্টআপ তার সফটওয়্যার পুনর্লিখন বা পরিত্যাগ করতে পারে। একটি জাতীয় সরকার রিফ্যাক্টর করার সময় পেনশন দেওয়া বন্ধ করতে পারে না। এন্টারপ্রাইজ ও সংস্থা এমন সিস্টেমের মালিক যার ব্যর্থতার পরিণতি জীবিকা, নিরাপত্তা বা জনআস্থায় মাপা। এবং তারা একসঙ্গে অনেকগুলোর মালিক, দশক ধরে যোগ দেওয়া ও ছেড়ে যাওয়া মানুষদের দ্বারা কর্মী দেওয়া। কেন্দ্রীয় হুমকি বিদেশি নয়। এগুলো সিস্টেম বোঝা মানুষের ধীর ক্ষয় (বাস ফ্যাক্টর, একটি সিস্টেমের জ্ঞান হারানোর আগে কতজন কম মানুষ ছেড়ে যেতে হয়), কয়েকটি মাথায় অনথিবদ্ধ জ্ঞান জমা, প্রযুক্তি স্ট্যাকের জীবনের শেষ-এর দিকে ক্ষয়, এবং একটি সিস্টেম ছোঁয়ার জন্য খুব জটিল ও নিরাপদে বদলানোর জন্য খুব কম-বোঝা হয়ে গেলে যে পঙ্গুত্ব নামে।
এই অধ্যায় তত্ত্বাবধানের বিষয়ে: একটি সিস্টেমকে সুন্দরভাবে তার লেখকদের ছাড়িয়ে বাঁচতে সাহায্য করার সুচিন্তিত, অগ্লামারাস কাজ। এটি মালিকানা ধারাবাহিকতা ও বাস-ফ্যাক্টর হ্রাস, পরিকল্পিত অবচয় ও সূর্যাস্ত, জ্ঞান স্থানান্তর, দশক-দীর্ঘ সিস্টেমের বিশেষ চ্যালেঞ্জ, এবং নাগরিক ও গ্রাহকরা নির্ভর করা স্থিতিশীলতা রক্ষা ও উদ্ভাবনের মধ্যে ধ্রুব ভারসাম্য খেলা ঢাকে।
মূল নীতিসমূহ
- প্রতিটি জটিল সিস্টেমের সর্বদা একজন মালিক দরকার। মালিকানা একটি নিরন্তর বরাদ্দ, কে লিখেছিল তার স্মৃতি নয়।
- একটি মাথায় থাকা জ্ঞান ঝুঁকি, সম্পদ নয়। ব্যক্তি ছেড়ে যাওয়ার আগে বোঝাপড়া প্রাতিষ্ঠানিক করুন।
- বিরক্তিকর একটি ফিচার। দীর্ঘজীবী জটিল সিস্টেমের জন্য স্থিতিশীলতা ও পূর্বাভাসযোগ্যতা প্রায়ই নতুনত্বকে ছাড়িয়ে যায়।
- শুরুতে শেষ পরিকল্পনা করুন। প্রতিটি সিস্টেম অবসর বা প্রতিস্থাপিত হবে; সেই দিনের জন্য নকশা ও নথিবদ্ধ করুন।
- পরিবর্তনই আপনি নিরাপদ থাকার উপায়। ছোঁয়ার জন্য ভীতিজনক সিস্টেম ইতিমধ্যে ব্যর্থ হচ্ছে; পরিবর্তনের সামর্থ্য টিকে থাকার বৈশিষ্ট্য।
- ধারাবাহিকতা ব্যক্তিদের ছাড়িয়ে টেকে। দল, নথি ও প্রক্রিয়া এমনভাবে নকশা করুন যাতে কোনো একক প্রস্থান সংকট নয়।
- আস্থাই প্রকৃত পণ্য। নাগরিক- ও গ্রাহক-মুখী সিস্টেমের জন্য সময় জুড়ে টেকসই নির্ভরযোগ্যতা ও ন্যায্যতাই মিশন।
সুপারিশ
তত্ত্বাবধান ও মালিকানা ধারাবাহিকতা স্থাপন করুন
গুরুত্বপূর্ণ প্রতিটি সিস্টেমের জন্য সুস্পষ্ট, বর্তমান মালিকানা বরাদ্দ করুন। ব্যক্তি স্তরে নয়, দল স্তরে মালিক হোন, যাতে মালিকানা প্রস্থান টিকে। একটি সেবা ক্যাটালগ রাখুন যা প্রতিটি সিস্টেমের জন্য রেকর্ড করে কে মালিক, এটি কী করে, কিসের ওপর নির্ভর করে এবং কতটা জটিল। নিয়মিত মালিকানা পর্যালোচনা করুন, এবং কখনো কোনো সিস্টেম এতিম হতে দেবেন না। একটি মালিকহীন জটিল সিস্টেম একটি অপেক্ষারত জরুরি অবস্থা। দল পুনর্গঠিত হলে মালিকানা অনুমানে নয়, একটি হস্তান্তরসহ সুচিন্তিতভাবে স্থানান্তর করুন। সবচেয়ে জটিল দীর্ঘজীবী সিস্টেমের জন্য নিশ্চিত করুন মালিকানায় কেবল পরিচালনা নয়, সিস্টেম বোঝা ও বদলানোর সামর্থ্যও আছে, যাতে তত্ত্বাবধান নিছক শিশুপালনে ক্ষয় না হয়।
বাস ফ্যাক্টর ও মূল-ব্যক্তি ঝুঁকি কমান
জ্ঞানের কেন্দ্রীভবন সক্রিয়ভাবে মাপুন ও কমান। কেবল একজন ব্যক্তি যদি একটি সিস্টেম ডিপ্লয়, ডিবাগ বা বদলাতে পারেন, সেটি যেকোনো হার্ডওয়্যারের মতো প্রকৃত একক ব্যর্থতা বিন্দু। জোড়া ও ঘূর্ণন, বাধ্যতামূলক কোড পর্যালোচনা, ভাগ করা অন-কল এবং কোনো জটিল কাজের ঠিক একজন সক্ষম ব্যক্তি নেই এমন সুচিন্তিত নিয়মের মাধ্যমে এটি কমান। ক্রস-ট্রেন করুন যাতে প্রতিটি অপরিহার্য কাজ অন্তত দুজন (আদর্শভাবে তিনজন) করতে পারেন। একজন মূল ব্যক্তির প্রস্থানকে নিরন্তর প্রস্তুত থাকা এমন পূর্বাভাসযোগ্য ঘটনা গণ্য করুন, শোষণ করা ধাক্কা নয়। নথি সাহায্য করে। কিন্তু প্রকৃত চর্চার মাধ্যমে একটি দল জুড়ে ছড়ানো কাজের জ্ঞান কেউ অনুশীলন করেনি এমন নথির চেয়ে অনেক বেশি টেকসই।
জ্ঞান স্থানান্তর প্রাতিষ্ঠানিক করুন
যে জ্ঞান অন্যথায় মানুষের সঙ্গে চলে যাবে তা ধরুন। প্রথমে পুনর্গঠন করা কঠিন জ্ঞানে মনোনিবেশ করুন: সিদ্ধান্ত কেন নেওয়া হয়েছিল, কোন বিকল্প কেন প্রত্যাখ্যাত হয়েছিল, ধারালো কিনারা ও সিস্টেমের বাকিটা নীরবে যার ওপর নির্ভর করে সেই জটিল হ্যাক কোথায়, এবং চাপের মধ্যে সিস্টেম কীভাবে আচরণ করে। পছন্দের পিছনের যুক্তি, কেবল পছন্দ নয়, সংরক্ষণ করতে স্থাপত্য সিদ্ধান্ত রেকর্ড ব্যবহার করুন। রানবুক ও পরিচালনগত নথি সিস্টেমের কাছে রাখুন, এবং সেগুলো সত্য রাখতে নিয়মিত অনুশীলন করুন। নতুন তত্ত্বাবধায়কদের প্রকৃত দক্ষতায় পৌঁছানো অনবোর্ডিং পথ গড়ুন। প্রস্থানকে প্রকৃত হস্তান্তর সময়সহ জ্ঞান-স্থানান্তর ঘটনা গণ্য করুন। মনে রাখুন অন্তর্নিহিত জ্ঞান, একটি সিস্টেমের অনুভূতি, প্রধানত যার কাছে তা আছে তার পাশে কাজ করে স্থানান্তরিত হয়, তাই যেখানে পারেন বিদায়ী ও আগত তত্ত্বাবধায়কদের ওভারল্যাপ করান।
অবচয়, সূর্যাস্ত ও জীবনের শেষ পরিচালনা করুন
সমাপ্তি সুচিন্তিতভাবে পরিকল্পনা করুন। একটি সিস্টেম অবসর বা প্রতিস্থাপনের সিদ্ধান্ত নিলে সূর্যাস্তকে নিজ অধিকারে একটি প্রকল্প গণ্য করুন: প্রতিটি ভোক্তা ও নির্ভরতা শনাক্ত করুন, একটি মাইগ্রেশন পথ ও বাস্তবসম্মত সময়রেখা দিন, স্পষ্টভাবে ও বারবার যোগাযোগ করুন, এবং ভোক্তাদের রূপান্তরের মধ্য দিয়ে সমর্থন দিন। কেউ পুরনোটি বন্ধ করার কঠিন কাজ করবে না বলে চিরকাল পুরনো ও নতুন সিস্টেম সমান্তরালে চালানোর ফাঁদ এড়ান। বিয়োজন সম্পূর্ণ করার জন্য সুস্পষ্ট জবাবদিহি বরাদ্দ করুন। সিস্টেম চলা বন্ধ হওয়ার অনেক পরেও, বিশেষত যেখানে আইনি ধারণ নিয়ম প্রযোজ্য, ডেটা, রেকর্ড এবং অবসর নেওয়া সিস্টেম সম্পর্কে প্রশ্নের উত্তর দেওয়ার সামর্থ্য সংরক্ষণ করুন। খারাপভাবে করা সূর্যাস্ত জম্বি সিস্টেম রেখে যায় যা অরক্ষিত কিন্তু এখনো নির্ভর করা: সব জগতের সবচেয়ে খারাপ।
দশক জুড়ে সিস্টেম টিকিয়ে রাখুন
যে সিস্টেম কুড়ি বা তিরিশ বছর চলতে হবে তার জন্য সবকিছু ছাড়িয়ে বাঁচার পরিকল্পনা করুন: মূল দল, বিক্রেতা, ভাষা ইকোসিস্টেম এবং হার্ডওয়্যার। ভবিষ্যৎ রক্ষণাবেক্ষণকারীদের সুযোগ দিতে মালিকানাধীন কালো বাক্সের বদলে উন্মুক্ত মান ও নথিবদ্ধ ইন্টারফেস পছন্দ করুন। মডুলার করুন, যাতে অংশ একসঙ্গে সব-বা-কিছু-না পুনর্লিখন যা চেষ্টা করার জন্য খুব ঝুঁকিপূর্ণ তার বদলে একটি একটি করে প্রতিস্থাপিত হতে পারে। সিস্টেম নিরন্তর রক্ষণাবেক্ষণ করুন। ছোট ধাপে হালনাগাদ রাখা সিস্টেম টেকসই থাকে। “কারণ এটি কাজ করে” বলে স্থির করা সিস্টেম তার স্ট্যাক সমর্থনের বাইরে বুড়ো হলে নীরবে অরক্ষণীয় হয়ে ওঠে। এটি চালানোর দক্ষতাও রাখুন: সত্যিই পুরনো প্রযুক্তির জন্য শেষ বিশেষজ্ঞ কখনো অবসর নেবেন না আশা করার বদলে সুচিন্তিতভাবে উত্তরসূরি প্রশিক্ষণ দিন।
উদ্ভাবনকে স্থিতিশীলতা ও আস্থার সঙ্গে ভারসাম্য করুন
আপনার সম্পত্তির কোন অংশে নতুনত্ব মূল্য তৈরি করে এবং কোন অংশে স্থিতিশীলতাই মূল্য তা আলাদা করুন। নাগরিক ও গ্রাহকরা দৈনন্দিন নির্ভর করে এমন মূল সিস্টেম সাধারণত নির্ভরযোগ্যতা, পশ্চাদ্মুখী সামঞ্জস্য এবং উত্তেজক পুনর্লিখনের চেয়ে সতর্ক পরিবর্তন পুরস্কৃত করে। প্রান্তে (নতুন চ্যানেল, নতুন ফিচার, নতুন ইন্টারফেস) উদ্ভাবনে বিনিয়োগ করুন যখন টেকসই কোর স্থিতিশীল ও ভালো-বোঝা রাখুন। হ্যাঁ, কোর বদলান, কিন্তু বীরোচিত লাফের বদলে ছোট, ফেরানো-যোগ্য, ভালো-পরীক্ষিত ধাপে। লক্ষ্য একটি সিস্টেম যা একই সঙ্গে নির্ভরযোগ্য ও বিবর্তনে সক্ষম: কখনো এত স্থির নয় যে পচে, কখনো এত আন্দোলিত নয় যে অনির্ভরযোগ্য হয়।
ট্রেড-অফ: সুবিধা ও অসুবিধা
| পদ্ধতি | সুবিধা | অসুবিধা |
|---|---|---|
| পুরনো সিস্টেম রাখুন ও রক্ষণাবেক্ষণ করুন | প্রাতিষ্ঠানিক জ্ঞান সংরক্ষণ করে; কম ব্যাঘাত; প্রমাণিত নির্ভরযোগ্যতা | বুড়ো স্ট্যাক; দুর্লভ দক্ষতা; অরক্ষিত হলে ক্রমবর্ধমান ঝুঁকি |
| বিগ-ব্যাং পুনর্লিখন | নতুন স্ট্যাক; জমা জঞ্জাল ঝেড়ে ফেলে | অত্যন্ত উচ্চ ব্যর্থতা হার; কঠিনে-অর্জিত প্রান্ত-কেস জ্ঞান হারায় |
| ধাপে ধাপে আধুনিকীকরণ | নিরন্তর ঝুঁকি হ্রাস; চালু রাখে | ধীর; টেকসই অর্থায়ন ও শৃঙ্খলা লাগে |
| নথি-ভারী স্থানান্তর | সুস্পষ্ট, অনুসন্ধানযোগ্য রেকর্ড | অরক্ষিত হলে ক্ষয়; অন্তর্নিহিত জ্ঞান মিস করে |
| মানুষ-ভিত্তিক স্থানান্তর (জোড়া/ঘূর্ণন) | টেকসই কাজের জ্ঞান; স্থিতিস্থাপক দল | বর্তমান উৎপাদনশীলতা খরচ করে; সুচিন্তিত সূচি লাগে |
| জটিল কোর স্থির করুন | স্বল্পমেয়াদে সর্বোচ্চ স্থিতিশীলতা | স্ট্যাক অরক্ষণীয়তায় বুড়ো হয়; ছোঁয়ার জন্য খুব ভীতিজনক হয় |
সংজ্ঞায়ক ট্রেড-অফ স্থিতিশীলতা বনাম বিবর্তন, এবং সরল সমাধান দুটিই ব্যর্থ। রক্ষা করতে একটি জটিল সিস্টেম স্থির করুন, এবং আপনি নিশ্চিত করেন এটি শেষ পর্যন্ত অরক্ষণীয় ও অনিরাপদ হবে। আধুনিকীকরণ করতে এটি পুরো পুনর্লিখন করুন, এবং আপনি বিগ-ব্যাং প্রতিস্থাপনের কুখ্যাত উচ্চ ব্যর্থতা হার ডেকে আনেন, এবং কারও মনে না থাকা দশকের এনকোড করা প্রান্ত-কেস জ্ঞান বাতিল করেন। টেকসই পথ হলো নিরন্তর, ধাপে ধাপে পরিবর্তন: সিস্টেম ছোট ধাপে জীবিত ও চলমান রাখুন, যাতে এটি কখনো সমর্থনের বাইরে বুড়ো না হয় এবং কখনো ভীতিজনক লাফ না লাগে। জ্ঞান স্থানান্তর একটি অনুরূপ ট্রেড-অফ, নথির সহজতা ও জীবন্ত অভিজ্ঞতার স্থায়িত্বের মধ্যে। উত্তর দুটিই: মেরুদণ্ড হিসেবে জীবন্ত, দল-ধরা জ্ঞান, এবং রেফারেন্স হিসেবে নথি।
আপনার দলের সঙ্গে আলোচনার প্রশ্ন
আপনার কোন জটিল সিস্টেমের এই মুহূর্তে কোনো বর্তমান, নামকরা দল মালিক নেই? মালিকানা একটি নিরন্তর বরাদ্দ, কে কোড লিখেছিল তার স্মৃতি নয়, এবং একটি মালিকহীন জটিল সিস্টেম একটি অপেক্ষারত জরুরি অবস্থা, কেবল ভাঙলে লক্ষ করা হয়। আপনার সেবা ক্যাটালগ হাঁটুন (বা একটি গড়ুন) এবং পরীক্ষা করুন প্রতিটি সিস্টেম রেকর্ড করে কে মালিক, কিসের ওপর নির্ভর করে এবং কতটা জটিল। প্রমাণ আনুন: তিনটি গুরুত্বপূর্ণ সিস্টেম বাছুন এবং জবাবদিহিযোগ্য দল ও মালিকানা শেষবার কখন পর্যালোচিত হয়েছিল তার নাম দেওয়ার চেষ্টা করুন। যেখানে একটি সিস্টেম এতিম, বা একটি পুনর্গঠন নীরবে তা বাদ দিয়েছে, অনুমানে নয়, প্রকৃত হস্তান্তরসহ সুচিন্তিতভাবে মালিকানা বরাদ্দ করুন। নিশ্চিত করুন মালিকানায় সিস্টেম বোঝা ও বদলানোর সামর্থ্য আছে, যাতে তত্ত্বাবধান নিছক শিশুপালনে ক্ষয় না হয়।
একটি সিস্টেম প্রতিস্থাপন করলে পুরনোটি আসলে বন্ধ করার জন্য কে জবাবদিহিযোগ্য? চিরন্তন সমান্তরাল চালনা একটি সাধারণ ও ব্যয়বহুল ব্যর্থতা: পুরনো ও নতুন সিস্টেম অনির্দিষ্টকাল পাশাপাশি চলে কারণ বন্ধ করার মালিক কেউ নন, আপনাকে দুটি সিস্টেম রক্ষণাবেক্ষণ করা ও কোনোটির নিরাপত্তা না পাওয়া রেখে। প্রতিটি সূর্যাস্তকে বিয়োজন সম্পূর্ণ করার জন্য নামকরা জবাবদিহি, ভোক্তাদের একটি মানচিত্র করা তালিকা, একটি মাইগ্রেশন পথ এবং একটি বাস্তবসম্মত সময়রেখাসহ একটি পরিচালিত প্রকল্প গণ্য করুন। প্রমাণ আনুন: আপনার সম্পত্তিতে আজ কতগুলো “অস্থায়ী” সমান্তরাল চালনা বা অর্ধ-অবসরপ্রাপ্ত সিস্টেম রক্ষণাবেক্ষণ টানছে? সিস্টেম চলা বন্ধ হওয়ার অনেক পরেও আইনি ধারণ নিয়ম পূরণে ডেটা ও রেকর্ড সংরক্ষণ করুন, কিন্তু ধারণকে কখনো শেষ না করার অজুহাত হতে দেবেন না। খারাপভাবে করা সূর্যাস্ত জম্বি সিস্টেম রেখে যায় যা অরক্ষিত কিন্তু এখনো নির্ভর করা, সব জগতের সবচেয়ে খারাপ।
আপনার দীর্ঘজীবী সিস্টেমের কোন দক্ষতা শ্রমবাজার সরবরাহ বন্ধ করবে, এবং আপনার উত্তরাধিকার পরিকল্পনা কী? কুড়ি বা তিরিশ বছর চলা সিস্টেম তাদের ভাষা ইকোসিস্টেম, বিক্রেতা এবং পুরনো স্ট্যাক বোঝা মানুষদের ক্যারিয়ারকে ছাড়িয়ে বাঁচে, এবং বাজার নির্ভরযোগ্যভাবে আপনাকে প্রতিস্থাপন হাতে দেবে না। সুচিন্তিতভাবে বাস ফ্যাক্টর কমান যাতে কোনো জটিল কাজের ঠিক একজন সক্ষম ব্যক্তি নেই, এবং ক্রস-ট্রেন করুন যাতে অন্তত দুজন, আদর্শভাবে তিনজন, প্রতিটি অপরিহার্য কাজ করতে পারেন। প্রমাণ আনুন: প্রতিটি বুড়ো হওয়া জটিল সিস্টেমের জন্য কতজন নিরাপদে তা বদলাতে পারেন এবং সবচেয়ে জ্ঞানীরা অবসরের কত কাছে গণনা করুন। উত্তর উত্তরসূরির সুচিন্তিত প্রশিক্ষণ এবং বিদায়ী ও আগত তত্ত্বাবধায়কদের প্রকৃত ওভারল্যাপ চালানো উচিত, কারণ অন্তর্নিহিত জ্ঞান (একটি সিস্টেমের অনুভূতি) প্রধানত যার কাছে তা আছে তার পাশে কাজ করে স্থানান্তরিত হয়। নথি রেফারেন্স; জীবন্ত, দল-ধরা জ্ঞান মেরুদণ্ড।
আপনি শেষবার কখন আপনার সবচেয়ে জটিল দীর্ঘজীবী সিস্টেম বদলেছেন, এবং কেউ কি এখনো সাহস করে? যে সিস্টেম এক বছর কেউ ছোঁয়নি তা স্থিতিশীল নয়, এটি “ছোঁয়ার জন্য খুব ভীতিজনক” ফাঁদের দিকে ভাসছে, যেখানে প্রতিটি পরিবর্তন ভয় পাওয়া হয় তাই স্ট্যাক নীরবে সমর্থনের বাইরে বুড়ো হয়। একটি বড় প্রতিষ্ঠানের জন্য এটি গুরুত্বপূর্ণ কারণ পঙ্গুত্ব চক্রবৃদ্ধি হয়: স্থিরতা যত দীর্ঘ, জ্ঞান তত বিবর্ণ হয় এবং অনিবার্য পরিবর্তন তত ঝুঁকিপূর্ণ। প্রমাণ আনুন: প্রতিটি জটিল সিস্টেমের জন্য শেষ সুচিন্তিত পরিবর্তনের তারিখ, আজ কেউ চেষ্টা করবে এমন ক্ষুদ্রতম পরিবর্তনের আকার, এবং একটি রুটিন নির্ভরতা বা নিরাপত্তা প্যাচ বীরত্ব ছাড়া এই সপ্তাহে পাঠানো যেত কি না। প্রতিদ্বন্দ্বী বিবেচনা প্রকৃত, কারণ পরিবর্তনও ঝুঁকি ঢোকায়, তাই লক্ষ্য আন্দোলন নয়, ছোট, ফেরানো-যোগ্য, ভালো-পরীক্ষিত ধাপের একটি স্থির ছন্দ। এন্টারপ্রাইজ ও সরকারি সম্পত্তিতে, যেখানে একটি স্থির কোর এক দশক একটি নাগরিক সেবার নিচে বসতে পারে, “আমরা কখনো এটি বদলাই না”-কে আশ্বাসের বদলে লাল পতাকা গণ্য করুন, এবং বদলানোর বিকল্প জীবিত রাখা নিরন্তর রক্ষণাবেক্ষণে অর্থায়ন করুন।
আপনার সম্পত্তির কতটা জীবনের শেষে বা কাছাকাছি একটি প্রযুক্তিতে চলছে, এবং সেই ঘড়ি কে অনুসরণ করছে? বুড়ো রানটাইম, অসমর্থিত ডেটাবেস এবং রক্ষণাবেক্ষণের বাইরের ফ্রেমওয়ার্ক ধীর ব্যর্থতার ধরন যা একটি নিরাপত্তা প্যাচ আসা বন্ধ হওয়ার দিন আকস্মিক সংকটে পরিণত হয়। একটি বড় দলের জন্য বিপদ হলো দিগন্তের কেউ মালিক নয়: স্বতন্ত্র দল যা ভাঙে তা প্যাচ করে, কিন্তু কেউ কোন স্ট্যাক কখন বিক্রেতা সমর্থন হারায় তার পোর্টফোলিও দৃশ্য রক্ষণাবেক্ষণ করে না। প্রমাণ আনুন: প্রতিটি জটিল সিস্টেমের মূল প্রযুক্তির তালিকা, তাদের প্রকাশিত জীবনের-শেষ বা সমর্থন-শেষের তারিখ, এবং আপনি যা চালান ও যা এখনো সমর্থিত তার মধ্যকার বর্তমান ফাঁক। টানাপোড়েন হলো নিরন্তর আপগ্রেডের খরচ ও স্থগিতের ঝুঁকির মধ্যে, এবং স্থগিতকরণ সাধারণত জেতে যতক্ষণ না তা বিপর্যয়করভাবে হারে। এন্টারপ্রাইজ ও সরকারি পরিবেশে, যেখানে ক্রয় ও স্বীকৃতি চক্র এক বছর বা তার বেশি নিতে পারে, দূরে দেখানো জীবনের-শেষ তারিখ প্রায়ই ইতিমধ্যে আপনার লিড টাইমের ভেতরে, তাই উত্তরাধিকার ও আপগ্রেড কাজ ঘড়ি ফুরানোর অনেক আগে শুরু করতে হবে।
আপনার সম্পত্তির কোথায় স্থিতিশীলতাই মূল্য আর নতুনত্ব দায়, এবং আপনি সেই সীমানা কীভাবে সৎ রাখেন? সব সিস্টেম একই আচরণ পুরস্কৃত করে না: নাগরিক ও গ্রাহকরা দৈনন্দিন নির্ভর করা মূল সিস্টেম সাধারণত নির্ভরযোগ্যতা ও সতর্ক পরিবর্তন পুরস্কৃত করে, যখন প্রান্ত পরীক্ষা পুরস্কৃত করে, এবং দুটি গুলিয়ে ফেলা অর্থ অপচয় করে বা বিভ্রাট আমন্ত্রণ জানায়। একটি বড় প্রতিষ্ঠানের জন্য ঝুঁকি হলো উচ্চাকাঙ্ক্ষা ও ক্যারিয়ার প্রণোদনা উত্তেজক পুনর্লিখন ঠিক সেই টেকসই কোরে ঠেলে যা বিরক্তিকর থাকা উচিত। প্রমাণ আনুন: আপনার সম্পত্তির একটি মানচিত্র যেখানে চিহ্নিত নির্ভরযোগ্যতা কোথায় মিশন এবং নতুনত্ব কোথায় মূল্য তৈরি করে, সঙ্গে সাম্প্রতিক পরিবর্তন যা সেই রেখা পেরিয়েছে এবং কী খরচ করেছে। প্রতিদ্বন্দ্বী বিবেচনা হলো এমনকি একটি স্থিতিশীল কোরকেও বিবর্তিত হতে হবে, তাই “স্থিতিশীল” স্থির করার অজুহাত হতে পারে না। এন্টারপ্রাইজ ও সরকারি প্রেক্ষাপটে এই সীমানা স্পষ্ট জটিলতা স্তর এবং জনগণ ব্যর্থ হতে দেখার সামর্থ্য নেই এমন সিস্টেমের ঝুঁকিপূর্ণ পুনর্লিখন ভেটো করতে পারা একজন নামকরা কর্তৃপক্ষের সঙ্গে বাঁধুন, যাতে বিচার এই ত্রৈমাসিকে সবচেয়ে জোরালো কে তার সঙ্গে ভেসে না যায়।
খাতভেদে দৃষ্টিভঙ্গি
স্টার্টআপ। মুষ্টিমেয় ইঞ্জিনিয়ার ও সামান্য রানওয়েতে আপনার টেকসইতা ঝুঁকি এক বা দুজনে কেন্দ্রীভূত যাঁরা বিলিং বা প্রমাণীকরণের মতো সিস্টেম লিখেছেন যা আপনি হারাতে সামর্থ্য দিতে পারেন না। প্রক্রিয়ায় প্রায় কিছুই খরচ করবেন না, কিন্তু এখনই সস্তা, উচ্চ-মূল্যের জিনিস করুন: প্রতিটি জটিল সিস্টেমের মধ্য দিয়ে দ্বিতীয় একজনকে জোড়া দিন, বিস্ময়কর অংশের জন্য এক-পাতার স্থাপত্য সিদ্ধান্ত রেকর্ড লিখুন, এবং আপনি আসলে ব্যবহার করেন এমন একটি রানবুক রাখুন। কেবল পুরনো বলে কিছু পুনর্লিখনের তাড়না প্রতিরোধ করুন, কারণ আপনার আকারে একটি মূল সিস্টেমের ব্যর্থ পুনর্লিখন কোম্পানি শেষ করতে পারে।
ছোট ব্যবসা। কোনো নিবেদিত রক্ষণাবেক্ষণ দল নেই আর বাজেট কম, তাই আপনাকে নিজে টিকিয়ে রাখতে হবে এমন কিছু গড়ার বদলে কেনা ও হোস্ট করা পছন্দ করুন। আপনাকে ছাড়তে দেয় এমন বিক্রেতা ও উন্মুক্ত মান পছন্দ করুন, এবং কোন বাইরের সিস্টেম কোন জটিল ফাংশন চালায় ও ভাঙলে কাকে ডাকবেন তার একটি সরল রেকর্ড রাখুন। যেখানে আপনার নিজস্ব কাস্টম কোড আছে সেখানে নিশ্চিত করুন অন্তত দুজন (বা একজন বিশ্বস্ত ঠিকাদার ও একজন কর্মচারী) তা বোঝেন, যাতে একটি প্রস্থান বা লুপ্ত সমর্থন চুক্তি আপনাকে আটকে না ফেলে।
এন্টারপ্রাইজ। আপনার চ্যালেঞ্জ পোর্টফোলিও পরিসর: অনেক দীর্ঘজীবী সিস্টেম, অনেক দল, এবং দশক ধরে ঘুরতে থাকা কর্মী। একটি সেবা ক্যাটালগে দল-স্তরের মালিকানা প্রমিত করুন, সম্পত্তি জুড়ে বাস ফ্যাক্টর মাপুন, এবং বিগ-ব্যাং পুনর্লিখনের ওপর বাজির বদলে নিরন্তর ধাপে ধাপে আধুনিকীকরণে অর্থায়ন করুন। জীবনের-শেষ দিগন্ত কেন্দ্রীয়ভাবে শাসন করুন যাতে কোনো জটিল স্ট্যাক নীরবে সমর্থনের বাইরে বুড়ো না হয়, এবং প্রতিটি সূর্যাস্ত বিয়োজন সম্পূর্ণ করার নামকরা জবাবদিহিসহ একটি নিরীক্ষিত প্রকল্প হিসেবে চালান।
সরকার। বাধ্যবাধকতার ধারাবাহিকতা পরম: আপনি রিফ্যাক্টর করার সময় সুবিধা দেওয়া বা বিমান-ট্রাফিক নিয়ন্ত্রণ চালানো বন্ধ করতে পারেন না, এবং ব্যর্থতা জনসম্মুখ ও পরিণতিমূলক। ক্রয় নিয়ম আপনাকে উন্মুক্ত মান, ডেটা বহনযোগ্যতা এবং নথিবদ্ধ ইন্টারফেসের দিকে ঠেলে যাতে ভবিষ্যৎ রক্ষণাবেক্ষণকারী ও ভবিষ্যৎ বিক্রেতার সুযোগ থাকে। শ্রমবাজার আর সরবরাহ করে না এমন পুরনো প্রযুক্তির জন্য সুচিন্তিত উত্তরাধিকার প্রশিক্ষণে অর্থায়ন করুন, বিধিবদ্ধ ধারণ পূরণে অবসর নেওয়া সিস্টেমের রেকর্ড সংরক্ষণ করুন, এবং নাগরিক সেবার টেকসই নির্ভরযোগ্যতাকে ওভারহেডের বদলে জবাবদিহিযোগ্য মিশন গণ্য করুন।
উদাহরণ
স্টার্টআপ। পাঁচজনের একটি স্টার্টআপের ইতিমধ্যে এমন একটি সিস্টেম আছে যা সে হারাতে সামর্থ্য দেয় না: প্রথম মাসে একজন প্রতিষ্ঠাতার লেখা বিলিং সেবা যা এখন প্রতিটি গ্রাহক চার্জ চালায়। কেবল সেই প্রতিষ্ঠাতা এটি বোঝেন, তাই দল বাস ফ্যাক্টরকে প্রশংসার বদলে প্রকৃত ঝুঁকি গণ্য করে। তারা একজন দ্বিতীয় ইঞ্জিনিয়ারকে একটি পূর্ণ বিলিং চক্রের মধ্য দিয়ে জোড়া দেয়, অদ্ভুত পুনঃচেষ্টা যুক্তি কেন আছে ব্যাখ্যা করে একটি সংক্ষিপ্ত স্থাপত্য সিদ্ধান্ত রেকর্ড লেখে, এবং কোডের পাশে একটি রানবুক রাখে যা তারা আসলে একটি ঘটনার সময় অনুশীলন করে। তারা কেবল পুরনো ও অগ্লামারাস বলে এটি পুনর্লিখনের প্রতিরোধ করে, এবং ছোট ফেরানো-যোগ্য ধাপে এটি উন্নত করে, যাতে কোম্পানিকে বাঁচিয়ে রাখা সেবা একটির বেশি মাথায় বোঝা হয়।
এন্টারপ্রাইজ। একটি বড় বিমাকারী দশক আগে প্রথম লেখা এবং এখনো তার ব্যবসার কেন্দ্রীয় একটি পলিসি-প্রশাসন সিস্টেম চালায়। একটি ঝুঁকিপূর্ণ পুরো পুনর্লিখনের চেষ্টার বদলে এটি সিস্টেমকে সুসংজ্ঞায়িত ইন্টারফেসের পিছনে মডুলার করেছে এবং এখন একবারে একটি উপাদান প্রতিস্থাপন করে, প্রতিটি পরিবর্তন ছোট ও ফেরানো-যোগ্য। প্রতিটি জটিল ফাংশন করতে পারেন অন্তত তিনজন। অন-কল ভাগ করা। স্থাপত্য সিদ্ধান্ত রেকর্ড ধরে সিস্টেম কেন এভাবে কাজ করে। একটি বাছাই করা অভ্যন্তরীণ কোর্স নতুন ইঞ্জিনিয়ারদের লেগেসি স্ট্যাকে দক্ষতায় আনে, এবং বিদায়ী বিশেষজ্ঞরা উত্তরসূরিদের সঙ্গে ওভারল্যাপ করে যাতে অন্তর্নিহিত জ্ঞান করে স্থানান্তরিত হয়।
সরকার। একটি জাতীয় সামাজিক-নিরাপত্তা সংস্থা ত্রিশ বছরেরও বেশি চলা সুবিধা-পেমেন্ট সিস্টেম পরিচালনা করে যা থামতে পারে না। এটি একটি সেবা ক্যাটালগে সুস্পষ্ট দল মালিকানা রেকর্ড করে। এটি সিস্টেম স্থির করার বদলে নিরন্তর রক্ষণাবেক্ষণে অর্থায়ন করে। এটি পুরনো প্রযুক্তিতে সুচিন্তিতভাবে উত্তরসূরি প্রশিক্ষণ দেয়, কারণ শ্রমবাজার তা সরবরাহ করবে না। একটি অপ্রচলিত উপ-সিস্টেম অবসর দিলে এটি সূর্যাস্ত একটি পরিচালিত প্রকল্প হিসেবে চালায়: প্রতিটি ভোক্তা মানচিত্র করে, মাইগ্রেশন সহায়তা দিয়ে, আইনি ধারণ নিয়ম পূরণে রেকর্ড সংরক্ষণ করে, এবং বিয়োজন আসলে সম্পূর্ণ করার জবাবদিহি বরাদ্দ করে, যাতে কোনো জম্বি সিস্টেম থেকে যায় না।
ব্যবসায়িক যুক্তি: প্রেরণা, ROI ও TCO
দীর্ঘজীবী সিস্টেম টিকিয়ে রাখার প্রতিদান আসে তাদের মালিকানার মোট খরচ-এ প্রাধান্য পাওয়া দুটি বিপর্যয়কর ব্যর্থতা ধরন এড়ানো থেকে। প্রথমটি আকস্মিক সংকট: একজন মূল ব্যক্তি ছেড়ে যান, একটি অসমর্থিত উপাদান ভাঙা হয়, বা একটি এতিম সিস্টেম বোঝে এমন কেউ না থাকা অবস্থায় ব্যর্থ হয়। দ্বিতীয়টি ব্যর্থ মেগা-প্রকল্প: একটি তাড়াহুড়ো করা পুরো পুনর্লিখন যা ছাড়িয়ে যায়, কম দেয় বা ধসে পড়ে। দুটিই অত্যন্ত ব্যয়বহুল, এবং দুটিই স্থির তত্ত্বাবধান দ্বারা বহুলাংশে প্রতিরোধযোগ্য। একটি একক এড়ানো পুনর্লিখন ব্যর্থতা, বা একটি জটিল নাগরিক সেবার একটি একক এড়ানো দীর্ঘ বিভ্রাটের খরচ সাধারণত টেকসই রক্ষণাবেক্ষণ বিনিয়োগের বছরগুলো ছাড়িয়ে যায়।
গ্রহণ খরচ চলমান ও অগ্লামারাস: নতুন ফিচার তৈরি না করা রক্ষণাবেক্ষণে অর্থায়ন, স্বল্পমেয়াদি আউটপুট কমানো ক্রস-ট্রেনিং ও নথির সময়ের দাম, এবং কখনো শিরোনাম না করা ধাপে ধাপে আধুনিকীকরণে বিনিয়োগ। গ্রহণ না করার খরচ স্থগিত ও বড়: স্ট্যাক বুড়ো হলে ক্রমবর্ধমান ঝুঁকি, ফুলে ওঠা মূল-ব্যক্তি উন্মুক্ততা, এবং শেষ পর্যন্ত জরুরি অবস্থায় একটি বাধ্য, উচ্চ-ঝুঁকি, উচ্চ-খরচ প্রতিস্থাপন। নেতৃত্বের কাছে যুক্তি দিতে রক্ষণাবেক্ষণকে “খরচ কেন্দ্র” থেকে “প্রতিষ্ঠান হারাতে সামর্থ্য দিতে পারে না এমন সিস্টেমের ঝুঁকি ব্যবস্থাপনা”-য় ফ্রেম করুন। কেবল নির্মাণ নয়, (টেকসই ও শেষ বিয়োজনসহ) পুরো বহু-দশকের জীবন জুড়ে মালিকানার মোট খরচ উপস্থাপন করুন। এবং এটিতে জোর দিন: নাগরিক- ও গ্রাহক-মুখী সিস্টেমের জন্য টেকসই নির্ভরযোগ্যতা ওভারহেড নয়। এটি সেই আস্থা যা প্রকৃত পণ্য।
অ্যান্টি-প্যাটার্ন ও ফাঁদ
- বীর রক্ষণাবেক্ষণকারী। একজন অপূরণীয় ব্যক্তি যিনি সিস্টেম বোঝেন; তাঁর প্রস্থান একটি অস্তিত্ব ঘটনা।
- স্থির করুন ও ভুলে যান। একটি জটিল সিস্টেমকে “সম্পন্ন” ঘোষণা করা, রক্ষণাবেক্ষণ বন্ধ করা, এবং এর স্ট্যাক অরক্ষণীয়তায় বুড়ো হতে দেখা।
- অভিশপ্ত পুনর্লিখন। একটি পুরো প্রতিস্থাপনে প্রতিষ্ঠানের বাজি ধরা যা এনকোড করা জ্ঞান বাতিল করে এবং সাধারণত ছাড়িয়ে যায় বা ব্যর্থ হয়।
- এতিম সিস্টেম। কোনো বর্তমান মালিক ছাড়া জটিল সফটওয়্যার, কেবল ভাঙলে লক্ষ করা হয়।
- নথি নাট্য। পুরনো, অনুশীলনহীন এবং কেউ বিশ্বাস না করা নথির খণ্ড।
- চিরন্তন সমান্তরাল চালনা। পুরনো ও নতুন সিস্টেম অনির্দিষ্টকাল পাশাপাশি চলছে কারণ বন্ধ করার জন্য কেউ জবাবদিহিযোগ্য নয়।
- অন্তর্নিহিত-জ্ঞান ক্ষতি। কোনো ওভারল্যাপ ছাড়া বিশেষজ্ঞদের ছেড়ে যেতে দেওয়া, ফলে সিস্টেমের অনুভূতি উবে যায়।
- ছোঁয়ার জন্য খুব ভীতিজনক। এত কম-বোঝা সিস্টেম যে যেকোনো পরিবর্তন ভয় পাওয়া হয়, যা নিশ্চিত করে এটি ক্ষয়ে যায়।
পরিপক্বতা মডেল
স্তর 1: সূচনা। টেকসইতা অ্যাড হক ও প্রতিক্রিয়াশীল। সিস্টেম স্বতন্ত্র বীরদের ওপর নির্ভর করে, মালিকানা বরাদ্দের বদলে স্মরণ করা, এবং জ্ঞান কয়েকটি মাথায় অনথিবদ্ধ থাকে। পুরনো সিস্টেম ভাঙা পর্যন্ত স্থির, বুড়ো স্ট্যাক অলক্ষিতে জীবনের শেষের দিকে ভাসে, এবং অবসর ঘোষিত হয় কিন্তু কখনো সম্পূর্ণ হয় না।
স্তর 2: বিকাশ। মৌলিক চর্চা দেখা দেয় কিন্তু দল-ধরে-দল ভিন্ন। সবচেয়ে সুস্পষ্ট বড় সিস্টেমের জন্য মালিকানা লিখে রাখা হয়েছে, কিছু রানবুক ও নথি আছে, এবং কয়েকটি জটিল ফাংশনের একজন দ্বিতীয় সক্ষম ব্যক্তি আছে। রক্ষণাবেক্ষণ অর্থায়িত কিন্তু প্রতিক্রিয়াশীল, কেউ মনে রাখলে ক্রস-ট্রেনিং ঘটে, এবং সংগঠন জুড়ে এর কোনোটি করার কোনো ভাগ করা উপায় নেই।
স্তর 3: মানসম্মতকরণ। তত্ত্বাবধান চর্চা নথিবদ্ধ এবং প্রতিষ্ঠান-ব্যাপী প্রয়োগ করা। দল-স্তরের মালিকানা একটি সেবা ক্যাটালগে রেকর্ড করা এবং পুনর্গঠন টিকে। ঘূর্ণন ও ক্রস-ট্রেনিংয়ের মাধ্যমে বাস-ফ্যাক্টর হ্রাস একটি স্থায়ী নিয়ম, স্থাপত্য সিদ্ধান্ত রেকর্ড ও অনুশীলন করা রানবুক প্রত্যাশিত, আধুনিকীকরণ নীতিতে ধাপে ধাপে, এবং প্রতিটি সূর্যাস্ত বিয়োজন সম্পূর্ণ করার নামকরা জবাবদিহিসহ একটি পরিচালিত প্রকল্প হিসেবে চলে।
স্তর 4: ব্যবস্থাপনা। টেকসইতা ভিত্তিরেখার বিপরীতে ডেটা দিয়ে মাপা ও নিয়ন্ত্রিত। আপনি প্রতি জটিল সিস্টেমে বাস ফ্যাক্টর, প্রতিটি নিরাপদে বদলাতে পারে এমন মানুষের গণনা, প্রতিটি মূল প্রযুক্তির বয়স তার জীবনের-শেষ তারিখের বিপরীতে, নিরন্তর বনাম স্থগিত রক্ষণাবেক্ষণের অধীন সম্পত্তির অংশ, এবং থমকানো সমান্তরাল চালনা ও অর্ধ-সমাপ্ত বিয়োজনের সংখ্যা অনুসরণ করেন। এই মেট্রিক কাজ ট্রিগার করা সীমা বহন করে: বাস-ফ্যাক্টর ফ্লোরের নিচে নামা বা সমর্থন-শেষ দিগন্ত পেরোনো একটি সিস্টেম অর্থায়িত প্রতিকার পায়, এবং তত্ত্বাবধান স্বাস্থ্য ডেলিভারির পাশাপাশি নেতৃত্বকে প্রতিবেদিত হয়।
স্তর 5: সমন্বয়। তত্ত্বাবধান নিরন্তর উন্নত ও প্রতিষ্ঠান জুড়ে একীভূত। কোনো জটিল সিস্টেম মানুষের একক ব্যর্থতা বিন্দু নয়, ওভারল্যাপের মাধ্যমে অন্তর্নিহিত জ্ঞানসহ জ্ঞান স্থানান্তর রুটিন, এবং সিস্টেম ছোট ফেরানো-যোগ্য ধাপে বিবর্তিত হয় যাতে কোনোটি সমর্থনের বাইরে বুড়ো হয় না। মালিকানা, জীবনের-শেষ অনুসরণ, উত্তরাধিকার এবং সূর্যাস্ত পরিকল্পনা পোর্টফোলিও ও ঝুঁকি পরিকল্পনায় বোনা, প্রযুক্তি ও বাধ্যবাধকতা সরলে সম্পত্তি পুনঃভারসাম্য করা হয়, এবং নির্ভর করা মানুষের আস্থা সংরক্ষণ করে বহু-দশক সিস্টেম টেকানো হয়।
আলোচনার ভাবনা
- আপনি বাস ফ্যাক্টর অর্থবহভাবে কীভাবে মাপেন, এবং বিভিন্ন জটিলতা স্তরের জন্য সঠিক লক্ষ্য কী?
- ধাপে ধাপে আধুনিকীকরণ কখন সত্যিই অসম্ভব, পুনর্লিখনকে কম ঝুঁকি করে?
- রক্ষণাবেক্ষণ কাজে আপনি কীভাবে অর্থায়ন ও পুরস্কার দেন যাতে তত্ত্বাবধান একটি সম্মানিত ক্যারিয়ার পথ, বন্ধ গলি নয়?
- শেষ বিশেষজ্ঞ অবসরের কাছে এবং কোনো ওভারল্যাপ সম্ভব না হলে অন্তর্নিহিত জ্ঞান সংরক্ষণের সঠিক উপায় কী?
- অবসর নেওয়া একটি সিস্টেম সম্পর্কে প্রশ্নের উত্তর দেওয়ার সামর্থ্য কতদিন রাখা উচিত, এবং কে তার দাম দেয়?
- আপনার সম্পত্তির কোথায় স্থিতিশীলতাই মূল্য আর নতুনত্ব দায়, এবং সময়ের সঙ্গে আপনি সেই বিচার কীভাবে সৎ রাখেন?
প্রধান শিক্ষা
- বেশিরভাগ গুরুত্বপূর্ণ সফটওয়্যার পুরনো ও দীর্ঘজীবী; দশক ও কর্মীর প্রজন্ম জুড়ে তা টিকিয়ে রাখা একটি প্রথম-শ্রেণির শৃঙ্খলা।
- প্রতিটি জটিল সিস্টেমের বর্তমান, দল-স্তরের মালিকানা দরকার; এতিম জটিল সিস্টেম সুপ্ত জরুরি অবস্থা।
- সুচিন্তিতভাবে বাস ফ্যাক্টর কমান (কোনো জটিল কাজের ঠিক একজন সক্ষম ব্যক্তি থাকা উচিত নয়) এবং কেবল নথি নয়, ওভারল্যাপের মাধ্যমে অন্তর্নিহিত জ্ঞান স্থানান্তর করুন।
- দীর্ঘজীবী সিস্টেম নিরন্তর ও ধাপে ধাপে রক্ষণাবেক্ষণ করুন; স্থির করা এবং পুরো পুনর্লিখনের ওপর বাজি দুটিই ব্যর্থতা ধরন।
- সমাপ্তি জবাবদিহিযোগ্য সম্পূর্ণতাসহ পরিচালিত প্রকল্প হিসেবে পরিকল্পনা করুন, বাধ্যবাধকতা পূরণে ডেটা ও রেকর্ড সংরক্ষণ করে।
- নাগরিক- ও গ্রাহক-মুখী সিস্টেমের জন্য টেকসই নির্ভরযোগ্যতা ও ন্যায্যতা মিশন, এবং রক্ষণাবেক্ষণ হলো আপনি হারাতে সামর্থ্য দিতে পারেন না তার ঝুঁকি ব্যবস্থাপনা।
তথ্যসূত্র ও আরও পড়ার জন্য
- Michael Feathers, Working Effectively with Legacy Code
- Titus Winters, Tom Manshreck, and Hyrum Wright, Software Engineering at Google
- Frederick P. Brooks Jr., The Mythical Man-Month
- Nat Pryce and Steve Freeman, Growing Object-Oriented Software, Guided by Tests
- Sam Newman, Monolith to Microservices
- Martin Fowler, Refactoring and writings on the Strangler Fig pattern
- Betsy Beyer et al., Site Reliability Engineering and The Site Reliability Workbook (Google)
- Diomidis Spinellis, Code Reading: The Open Source Perspective
- U.S. Government Accountability Office, reports on federal legacy IT modernisation