ব্ল্যাক ফ্রাইডে সেল60% পর্যন্ত ছাড়
  • বার্ষিক প্ল্যানে প্রথম বছর 60% ছাড়
  • লাইফটাইম লাইসেন্সে 45% ছাড়
শেষ হবে
অফারটি নিন

Legacy Business Software আধুনিক করা: জরুরি Business Rule যেন না হারায়

নতুন interface পুরোনো business ভুল ঢেকে দিতে পারে। প্রকৃত risk বুঝুন, সঠিক rule সংরক্ষণ করুন ও স্পষ্ট data ownership দিয়ে একটি capability সরান।

লেখক

Anichur Rahaman

3 মাস আগে9 মিনিট পড়া116 দেখা
Legacy Business Software আধুনিক করা: জরুরি Business Rule যেন না হারায়

নতুন returns screen দেখতে সুন্দর। কিন্তু test refund USD 60, পুরোনো invoice অনুযায়ী হওয়ার কথা USD 54 । Product price নেওয়া হয়েছে, original order discount কীভাবে ভাগ হয়েছিল তা বাদ। এটি শিক্ষামূলক উদাহরণ, customer case নয়। Modernisation-এর কঠিন অংশ প্রায়ই সেই rule, যা কেউ বলার প্রয়োজন মনে করেননি।

লক্ষ্য সব পুরোনো behaviour হুবহু রাখা বা সব component বদলানো নয়। Business যেন নিরাপদে চলে ও বদলায়। আজকের risk-এর evidence নিন, intended rule ঠিক করুন, তারপর bounded দায়িত্ব সরান—দুটি competing truth বানিয়ে নয়।

বয়স আর risk এক নয়

পুরোনো supported/tested system নতুন undocumented system-এর চেয়ে নিরাপদে বদলানো সহজও হতে পারে। কী reliably হচ্ছে না দেখুন: order restore, invoice correction, leaver access removal, supplier payment reconciliation বা বিশেষ contractor ছাড়া release। এগুলো তদন্তের capability, পুরোনো হলেই replacement-এর প্রমাণ নয়।

Actual runtime/framework/plugin/deployment অনুযায়ী support যাচাই করুন। PHP-এর current support table উদাহরণ: 5 নভেম্বর 2026 অনুযায়ী PHP 8.2 security support 31 ডিসেম্বর 2026 পর্যন্ত, active support শেষ। Ordinary fix নেই, upstream unsupported ও paid vendor coverage—আলাদা তথ্য। Supported runtime-ও app security certify করে না।

কাজ করার মতো risk register

Operations, finance ও maintainer-দের সঙ্গে বসুন। Table-এর প্রতিটি risk-এ failure scenario, evidence, affected process/data, current control, impact, likelihood/time horizon, confidence, owner ও next action লিখুন। Unknown হলে তদন্ত, বানানো likelihood নয়। Active compromise নিশ্চিত হলে এখনই containment লাগতে পারে, পরের quarter-এর roadmap নয়।

NIST risk-assessment guidance threat, vulnerability, likelihood, impact ও uncertainty বিবেচনা করে। Workshop-এ consistent qualitative rating বা 1–5 triage চলতে পারে। কিন্তু দুটি ordinal score গুণ করে probability বা টাকার ক্ষতি পাওয়া যায় না। Heatmap-এর লাল ঘর পরের incident বলে দেয় না। 15 point হলেই সব business এই quarter-এ fix করবে—এমন নিয়ম নেই।

যে risk দেখবেনEvidenceকাজের next action
Support exposureExact version, vendor date, patchApproved upgrade/support plan
Key-person dependenceদ্বিতীয় কেউ restore/release পারেন?Rehearsal ও runbook
দুর্বল change testCritical success/failure journeyIntended rule ও regression ধরুন
সীমাহীন shared writeScript/table/trigger/data ownerএক owner ও controlled seam
Security/control gapCredential/scope/session/denialExposure contain; control verify
বিরোধী dataID/balance/source ownerActual value reconcile; authority ঠিক
Fragile integrationLag/retry/unknown effect/alertOwner-সহ bounded recovery
Capacity ceilingRepresentative demand-এ waitপ্রমাণিত constraint ঠিক
Privacy/audit gapAccess/event/applicable retentionScope/owner/retrieval লিখুন
Exit/licence constraintExport/attachment/contractUsable export ও dependency rehearsal

Treatment বাছুন, fashionable architecture নয়

Risk গ্রহণযোগ্য healthy capability retain/operate করুন। Supported upgrade, কঠিন boundary refactor, fit-gap test-এর পরে replace বা অপ্রয়োজনীয় কাজ retire—বিকল্প আছে। Re-platform supportability বাড়িয়েও পুরোনো business defect বয়ে নিতে পারে। Standard module কিনলেই tax/stock/payroll/export/integration মেলে না।

ছোট ও বোঝা system-এ tested cutover-সহ bounded full replacement যুক্তিসংগত হতে পারে। বড় rewrite-এ hidden rule ও দেরিতে feedback-এর risk থাকে। “Rewrite সাধারণত ব্যর্থ” বা “incremental সবসময় জেতে”—সার্বজনীন statistic নয়। Coexistence cost, deadline, team, data access ও recovery option মিলিয়ে বাছুন।

পুরোনো screen-এর পেছনের অর্থ উদ্ধার করুন

Representative order, failed payment, return, partial delivery, rounding, timezone ও permission boundary থেকে example নিন। Characterisation test বর্তমান behaviour ধরে, change দেখায়। Business owner ঠিক করবেন কোনটি valid rule, কোনটি bug। ইচ্ছাকৃত correction-এর agreed expected result চাই; bug চিরকাল নকলের প্রতিশ্রুতি নয়।

উদাহরণ order-এ tax-এর আগে দুই unit প্রতিটি USD 50 । USD 10 order discount সমানভাবে ভাগ, shipping/অন্য charge নেই, discounted amount-এ assumed 20% tax। Net 90 + tax 18 = paid 108 । Agreed proportional-return rule-এ এক unit net 45 + tax 9 =USD 54 । Full price+tax দিলে USD 60, এই assumptions-এ USD 6 বেশি। Actual allocation, rounding ও tax duty যাচাই করুন; universal return formula নয়।

Shadow comparison-এ safe calculation বা protected fixture তুলনা করুন। একই live refund, stock movement, payroll বা courier booking দুই system-এ পাঠাবেন না। Replay-এর আগেই external effect বন্ধ করুন। Screen-এ “test” লেখা থাকলেই input দুবার নিরাপদ নয়।

এক authoritative writer রেখে capability সরান

Strangler Fig pattern একটি bounded দায়িত্ব ধীরে replace করে, বাকি system চলে। Routing facade একটি seam হতে পারে; microservice বানাতেই হবে নয়। Modular app, adapter বা existing integration যথেষ্টও হতে পারে। Facade-এরও availability/performance/security review লাগে; নতুন gateway failure point হতে পারে।

Value আছে, dependency বোঝা ও recoverable handover সম্ভব—এমন boundary নিন। Stock/order tightly coupled হতে পারে, প্রথমে ঝুঁকিপূর্ণ। Identifier, ownership, field meaning, state transition ও কোন ধাপে কে কোন fact লিখতে পারবে নির্ধারণ করুন। Anti-corruption layer model translate করে; access-control ছাড় নয়।

প্রকৃত record/action-এ authorisation বহাল থাকতে হবে। Old/new দুই route-এ tenant/outlet scope, restricted field, audit attribution ও service identity রাখুন। Feature flag route বেছে দেয়; permission দেয় না বা নতুন data ফিরিয়ে দেয় না।

Synchronisation-এর recovery semantics লাগে

Legacy transaction বদলানো গেলে transactional outbox business change ও publication intent একই transaction-এ commit করতে পারে। Relay duplicate, late বা out-of-order দিতে পারে। Stable event/operation ID, safe deduplication, version/order rule ও reconciliation লাগবে। Outbox দুই database বা external refund-কে এক atomic transaction বানায় না।

Outbox সম্ভব না হলে supported API/export/change-data capture-এর constraint যাচাই করুন। Table change দেখলেই business meaning জানা যায় না। Initial snapshot/catch-up boundary, delete, historic correction, schema change ও downtime নির্ধারণ করুন। Lag/failed message monitor; bounded retry/backoff, poison message isolate ও unresolved কাজের owner দিন। চিরকাল retry নয়; sensitive payload authorised boundary-তে রাখুন।

Handover ও ফেরার পথ প্রমাণ করুন

Write authority বদলানোর আগে defined checkpoint-এ ID, actual field, balance, state ও external reference reconcile করুন; শুধু row total নয়। Real DB engine/production-like constraint test করুন। Permission denial, duplicate/out-of-order event, interrupted import, missing dependency ও restored backup দেখুন। Migration/reference-data script repeatable হোক, user choice overwrite না করে।

Cutover-এ old write stop/coordinate, agreed boundary পর্যন্ত change drain/capture, catch-up, validate, তারপর new authority চালু। নিরাপদ হলে limited observable cohort-এ end-to-end outcome/exception দেখুন। Screen 200 দিলেই ledger/stock/payment মেলে না। Business outcome-এর পাশাপাশি baseline/new latency, error ও manual reconciliation effort তুলনা করুন। Internal detail না দেখিয়ে readable/localised failure দিন; unknown external result-কে false failure বানিয়ে duplicate action নয়।

New system write নিয়ে ফেললে route ফেরালে new store-এ data আটকে বা effect replay হতে পারে। Tested reverse sync, forward repair বা controlled pause/reconciliation লাগতে পারে; শুধু flag flip নয়। Compatible data state, decision owner, stop condition ও completed external action সামলানো ঠিক করুন। দেখুন safe-deployment guide।

আগে legacy write authority, new capability শুধু safe comparison। Validation-এর পরে এক planned switch-এ new writer। New write হয়ে গেলে route ফেরানোর সঙ্গে reconciliation লাগে।
Parallel run-এ live payment/refund/stock effect duplicate নয়। Route selector data recovery mechanism নয়।

শুধু login page নয়, dependency retire করুন

Decommission-এর আগে report, scheduled job, webhook, supplier script, support tool, credential, licence ও archive reader খুঁজুন। Agreed operational/contractual/applicable legal purpose অনুযায়ী প্রয়োজনীয় data/software রাখুন—controlled access ও tested retrieval-সহ। Personal data সবসময় চিরকাল রাখা নয়, request পেলেই সব financial evidence মুছেও নয়। প্রযোজ্য retention/privacy duty ও vendor exit term নিশ্চিত করুন।

Fit-gap-এ StoreConsole candidate হতে পারে। Exact version, enabled module, integration contract, migration tooling, permission ও recovery pilot-এ যাচাই করুন। Module list দেখে স্বাধীনভাবে সব adopt করা বা সব control আছে ধরে নয়। নিচের overview demo, সব module সব action log/2FA enforce বা day-one risk close করে—তার certification নয়।

বিদ্যমান interface overview (0:47)। Demo মাত্র; pilot-এ version-specific permission, sign-in ও audit coverage যাচাই করুন।

প্রথম deliverable একটি নিরাপদ সিদ্ধান্ত

সবার জন্য 30-day transformation promise নয়, ছোট discovery window ঠিক করুন। Owner-সহ risk register, recoverable system-এর evidence, critical rule example ও acceptance/recovery criteria-সহ bounded pilot plan দিন। Urgent exposure আগে contain। Dependency/data quality অজানা হলে প্রথম migration পরে হতে পারে।

USD 54 test refund-এ ফিরুন। ফল শুধু new screen old-এর সঙ্গে মিলেছে নয়। Intended discount rule লেখা, calculation checked, এক system-ই refund issue করতে পারে, আর authorised ব্যক্তি actual outcome trace করেন। পরের পরিবর্তনের ভিত্তি এখানেই শক্ত হয়।

পর্যালোচনা 5 নভেম্বর 2026 । Anichur Rahaman StoreConsole-এর নির্মাতা। Refund/migration দৃশ্য উদাহরণ; customer outcome বা universal timetable নয়।

লেখকের পরিচয়

Anichur Rahaman

পড়া চালিয়ে যান