အခန်း ၁၂ :: Risk Management

Project တစ်ခု စတင်ပြီဆိုတာနဲ့ မသေချာ မရေရာမှု (Uncertainty) တွေက အရိပ်လို လိုက်ပါလာစမြဲပါ။ "Server မီးပျက်ရင် ဘယ်လိုလုပ်မလဲ"၊ "Developer အဓိက လူ နှုတ်ထွက်သွားရင် ဘယ်လိုလုပ်မလဲ"၊ "Third-party API ကြီး down သွားရင် ဘယ်လိုလုပ်မလဲ" စသည်ဖြင့်ပေါ့။

Risk Management ဆိုတာ "အဆိုးမြင်ခြင်း" (Pessimism) မဟုတ်ပါဘူး။ "ကြိုတင်ပြင်ဆင်ခြင်း" (Preparation) ဖြစ်ပါတယ်။ Software Engineering မှာ Risk Management ဆိုတာ Project ရဲ့ အောင်မြင်မှုကို ထိခိုက်စေနိုင်တဲ့ အရာတွေကို စောစီးစွာ ရှာဖွေဖော်ထုတ်ပြီး၊ ထိခိုက်မှု အနည်းဆုံးဖြစ်အောင် စီမံခန့်ခွဲခြင်း ဖြစ်ပါတယ်။

၁၂.၁ Proactive vs. Reactive Risk Strategies

Risk ကို ကိုင်တွယ်တဲ့အခါ ချဉ်းကပ်ပုံ နှစ်မျိုး ရှိပါတယ်။

Reactive Strategy (မီးလောင်မှ မီးငြိမ်းသတ်ခြင်း)

ပြဿနာ တကယ် ဖြစ်လာမှ လိုက်ရှင်းတဲ့ နည်းလမ်းပါ။ Software လောကမှာတော့ "Firefighting Mode" လို့ ခေါ်ပါတယ်။

Proactive Strategy (မီးမလောင်ခင် တားဆီးခြင်း)

ပြဿနာ မဖြစ်ခင် ကတည်းက "ဘာတွေ ဖြစ်နိုင်မလဲ" တွက်ချက်ပြီး ကြိုတင် ကာကွယ်ထားတာပါ။

The Cost of Calm: Proactive Risk Management ဟာ အချိန်နဲ့ အားစိုက်မှုကို အစမှာ ပိုသုံးရပေမယ့်၊ Crisis အချိန်မှာ Team ကို အေးအေးဆေးဆေး ဆုံးဖြတ်နိုင်တဲ့ အခြေအနေကို ပေးစွမ်းနိုင်ပါတယ်။

ဥပမာ:

  • Reactive: Server Hard Disk ပျက်သွားမှ Data Recovery လုပ်ဖို့ ကြိုးစားတာ။ (ဒါက ကံတရားကို ပုံအပ်လိုက်တာပါ)
  • Proactive: Hard Disk မပျက်ခင် RAID စနစ် ခံထားတာ၊ နေ့စဉ် Backup လုပ်ထားတာ။ (ဒါက Engineering ပါ)

၁၂.၂ Risk Identification, Analysis, and Prioritization

Risk Management လုပ်ငန်းစဉ်ကို အဆင့် ၄ ဆင့် ခွဲခြားနိုင်ပါတယ်။

graph TD
    Identify[<b>1. Risk Identification</b><br/>ဘာတွေ ဖြစ်နိုင်မလဲ?] --> Analyze[<b>2. Risk Analysis</b><br/>ဖြစ်နိုင်ခြေ ဘယ်လောက်ရှိလဲ?]
    Analyze --> Prioritize[<b>3. Risk Prioritization</b><br/>ဘယ်ဟာ အရေးအကြီးဆုံးလဲ?]
    Prioritize --> Plan[<b>4. Response Planning</b><br/>ဘယ်လို ဖြေရှင်းမလဲ?]
    
    style Identify fill:#e1f5fe,stroke:#01579b
    style Analyze fill:#fff3e0,stroke:#e65100
    style Prioritize fill:#ffebee,stroke:#b71c1c
    style Plan fill:#e8f5e9,stroke:#1b5e20

၁။ Risk Identification (အန္တရာယ်များကို ဖော်ထုတ်ခြင်း)

ပထမဆုံး အဆင့်ကတော့ ဖြစ်နိုင်ခြေ ရှိသမျှ ပြဿနာတွေကို စာရင်းပြုစု (List Down) လုပ်တာပါ။ Brainstorming လုပ်ပြီး "What If" မေးခွန်းတွေ မေးရပါမယ်။

Software Project တွေမှာ အတွေ့ရများတဲ့ Risk အမျိုးအစားတွေကတော့ -

Note: Risk List ဆိုတာ Project အစမှာ တစ်ခါရေးပြီး ပစ်ထားရမယ့် Document မဟုတ်ပါဘူး။ Sprint တစ်ခု ပြီးတိုင်း၊ Milestone တစ်ခု ပြီးတိုင်း ပြန်လည် Update လုပ်ရမယ့် Living Document ဖြစ်ပါတယ်။

၂။ Risk Analysis & Ownership (ဆန်းစစ်လေ့လာခြင်း)

Risk တွေကို စာရင်းရပြီဆိုရင် တစ်ခုချင်းစီကို Probability (ဖြစ်နိုင်ခြေ) နဲ့ Impact (ထိခိုက်မှု) တိုင်းတာရုံသာမက၊ ဒီ Risk ကို ဘယ်သူ တာဝန်ယူမလဲ ဆိုတဲ့ Owner ကိုပါ သတ်မှတ်ရပါမယ်။ Owner မရှိတဲ့ Risk ကို ဘယ်သူမှ မကိုင်တွယ်ကြပါဘူး။

Risk Register Example:

Risk Description Probability Impact Owner Status
Key Dev leaves Medium High Tech Lead Mitigating (Documentation)
API downtime High Medium Backend Team Monitoring (Health Checks)
Server Cost Overrun Medium Low Project Manager Ignored

၃။ Risk Prioritization (ဦးစားပေး အဆင့်သတ်မှတ်ခြင်း)

Risk တိုင်းကို လိုက်ဖြေရှင်းဖို့ မဖြစ်နိုင်ပါဘူး။ ဒါကြောင့် Probability နဲ့ Impact ကို မြှောက်ပြီး ရလာတဲ့ ရလဒ်အပေါ် မူတည်ပြီး ဦးစားပေး စီရပါမယ်။

Risk Map Example:

Impact \ Probability Low Medium High
High Monitor Plan Action Now
Medium Ignore Monitor Plan
Low Ignore Ignore Monitor

၁၂.၃ Risk Mitigation, Monitoring, and Management (RMMM)

Risk တွေကို သိပြီ ဆိုရင် ဘယ်လို တုံ့ပြန်မလဲ (Response Strategy) ဆိုတာ ဆုံးဖြတ်ရပါမယ်။ အဓိက နည်းလမ်း (၄) မျိုး ရှိပါတယ်။

1. Avoidance (ရှောင်ရှားခြင်း)

Risk ဖြစ်စေမယ့် အကြောင်းရင်းကို လုံးဝ ဖယ်ရှားလိုက်တာပါ။

2. Mitigation (လျော့ချခြင်း)

Risk ဖြစ်နိုင်ခြေ (Probability) သို့မဟုတ် ဖြစ်လာရင် ထိခိုက်မှု (Impact) ကို လျော့နည်းအောင် လုပ်တာပါ။

Warning (Over-Mitigation): Risk Mitigation ဟာ "အကောင်းဆုံးနည်းပညာ" ကို သုံးရမယ်ဆိုတာ မဟုတ်ပါဘူး။ Risk တစ်ခုကို လျော့ချဖို့ သုံးတဲ့ ကုန်ကျစရိတ်က Risk ကိုယ်တိုင်ထက် ပိုကြီးနေပြီဆိုရင် အဲဒါဟာ Over-Engineering ဖြစ်သွားနိုင်ပါတယ်။

3. Transfer (လွှဲပြောင်းခြင်း)

Risk ကို ကိုယ်တိုင် မယူဘဲ သူများဆီ လွှဲလိုက်တာပါ။

4. Acceptance (လက်ခံခြင်း)

Acceptance ဆိုတာ Risk ကို မသိမသာ လွှတ်ထားတာ (သို့) တာဝန်မယူချင်တာ မဟုတ်ပါဘူး။ Risk ရဲ့ Probability, Impact, Cost ကို သေချာတွက်ချက်ပြီး၊ ဖြေရှင်းရမယ့် ကုန်ကျစရိတ်က အလွန်များပြားနေတဲ့အတွက်၊ အမြင့်ဆုံး ဆုံးဖြတ်ချက်နဲ့ လက်ခံလိုက်ခြင်း (Calculated Decision) ဖြစ်ပါတယ်။

Monitoring (စောင့်ကြည့်ခြင်း)

Risk Management ဟာ Project အစမှာ တစ်ခါတည်း လုပ်ပြီး ပစ်ထားရမယ့် အရာ မဟုတ်ပါဘူး။ အပတ်စဉ် Meeting တွေမှာ Risk List ကို ပြန်စစ်ဆေးရပါမယ်။

Monitoring လုပ်ရာမှာ Risk တစ်ခုချင်းစီအတွက် Trigger Point (ဥပမာ – Error Rate > 5%, Cost > Budget 80%) သတ်မှတ်ထားသင့်ပါတယ်။ ဒါမှသာ Trigger Point ကို ထိလာရင် Risk ဖြစ်လာပြီလို့ သတ်မှတ်ပြီး၊ ခံစားနေရတာမျိုး မဟုတ်ဘဲ ချက်ချင်း သိသိသာသာ ကိုင်တွယ်ဖြေရှင်းနိုင်မှာ ဖြစ်ပါတယ်။

၁၂.၄ Business Continuity and Disaster Recovery Planning

Software Engineer တွေ အနေနဲ့ Technical ပိုင်းသာမက Business ပိုင်းဆိုင်ရာ ဆက်လက် လည်ပတ်နိုင်မှု (Continuity) ကိုပါ ထည့်သွင်း စဉ်းစားရပါမယ်။

Business Continuity Planning (BCP)

BCP ဆိုတာ "ကပ်ဘေး တစ်ခုခု (Disaster) ကြုံလာခဲ့ရင် လုပ်ငန်းကြီး ဆက်လက် လည်ပတ်နိုင်ဖို့ ဘာတွေ လုပ်မလဲ" ဆိုတဲ့ မဟာဗျူဟာ (Strategy) ဖြစ်ပါတယ်။

Software ကြောင့် မဟုတ်ဘဲ၊ ရုံးမီးလောင်သွားတာ၊ ကိုဗစ်ကပ်ရောဂါကြောင့် ရုံးတက်မရတာ၊ Cyber Attack ခံရတာ စတဲ့ အခြေအနေတွေမှာ ဝန်ထမ်းတွေ ဘယ်လို အလုပ်ဆက်လုပ်မလဲ၊ Customer တွေကို ဝန်ဆောင်မှု ဘယ်လို ဆက်ပေးမလဲ ဆိုတာ ပါဝင်ပါတယ်။

Disaster Recovery (DR)

DR ကတော့ BCP ရဲ့ အစိတ်အပိုင်း တစ်ခုဖြစ်ပြီး IT System တွေကို ဘယ်လို ပြန်ကယ်မလဲ (Restore) ဆိုတာကို အဓိက ထားပါတယ်။

DR Plan တစ်ခု ရေးဆွဲရာမှာ အရေးကြီးဆုံး Metric နှစ်ခု ရှိပါတယ်။

1. Recovery Point Objective (RPO)
"Data ဘယ်လောက် ပျက်စီးတာကို လက်ခံနိုင်မလဲ"

2. Recovery Time Objective (RTO)
"System ပြန်ကောင်းဖို့ အချိန် ဘယ်လောက် ပေးနိုင်မလဲ"

timeline
    title Disaster Recovery Timeline
    Last Backup : RPO (Max Data Loss)
    Disaster Strikes : System Goes Down
    Recovery Starts : Log Analysis / Restore
    System Restored : RTO (Max Downtime)

Critical Note: Disaster Recovery Plan ဟာ စာရွက်ပေါ်မှာ ရေးထားရုံနဲ့ မလုံလောက်ပါဘူး။ Periodic DR Drill (Restore Test) မလုပ်ရင်၊ တကယ် အရေးပေါ် အချိန်မှာ အလုပ်မလုပ်နိုင်တဲ့ Plan ဖြစ်သွားနိုင်ပါတယ်။ Backup လုပ်ထားရုံနဲ့ မပြီးဘဲ၊ Restore ပြန်လုပ်လို့ ရမရ စမ်းသပ်ထားမှသာ Plan ဟု ခေါ်ဆိုနိုင်ပါသည်။

Summary

Risk Management ဆိုတာ Project တစ်ခုအတွက် "အသက်အာမခံ" ဝယ်ထားသလိုပါပဲ။

Risk Management ဆိုတာ ပြဿနာ မဖြစ်အောင် ဆုတောင်းတာ မဟုတ်ဘဲ၊ ပြဿနာ ဖြစ်လာရင်တောင် ထိန်းချုပ်နိုင်အောင် ပြင်ဆင်ထားခြင်း ဖြစ်ပါတယ်။