System

Software Development Life Cycle (SDLC)

မင်္ဂလာပါ။
ကျွန်တော်ကတော့ Spiceworks Myanmar တွင် Web Developer အဖြစ် လုပ်ကိုင်လျက်ရှိသော ဌေးမင်းခေါင် ဖြစ်ပါတယ်။ ဒီနေ့ တင်ပြပေးသွားမယ့် အကြောင်းအရာကတော့ Software တစ်ခု develop လုပ်တဲ့အခါ မဖြစ်မနေ သိထားရမယ့် Software Development Life Cycle (SDLC) အကြောင်း ဖြစ်ပါတယ်။

WHY SDLC IS IMPORTANT ?
SDLC လို့ ခေါ်တဲ့ Software Development Life Cycle ကို ဘာကြောင့် လိုအပ်တာလဲ။ SDLC သည် software development လုပ်ဆောင်ရာတွင် စံပြုရမည့် ဘောင်တစ်ခုကို သတ်မှတ်ပေးပါတယ်။ Project Plan ဆွဲတာ၊ ကုန်ကျ စရိတ် ခန့်မှန်းတာနဲ့ လုပ်ဆောင်ရမည့် အချိန်ခန့်မှန်းသတ်မှတ်တာတို့ကို အကူအညီဖြစ်စေပါတယ်။ Project ကို Track လုပ်တာနဲ့ လုပ်ဆောင်နေစဥ် Process တွေကို စီမံရမှာလည်း လွယ်ကူစေပါမယ်။ Development Process အတွင်းမှာလည်း ရှုထောင့်အားလုံးကို မြင်နိုင်မှုမှာလည်း ပိုမိုကောင်းမွန်ပါတယ်။ Development အချိန်ကိုလည်း ပိုမိုမြန်ဆန်စေပါမယ်။ လုပ်ဆောင်နေစဥ်အတွင်းမှာလည်း Client တွေနဲ့ ပိုမို ချိတ်ဆက်နိုင်ပါတယ်။ Project လုပ်ရာတွင် ကြုံတွေ့ရမည့် risk တွေကိုလည်း လျှော့ချပေးနိုင်ပါတယ်။ ထို့အပြင် Project Management လုပ်ရတဲ့ ကုန်ကျစရိတ်ကိုလည်း အတန်အသင့် လျှော့ချနိုင်ပြီး Production ကုန်ကျစရိတ်ကိုလည်း Development အားလုံးကို ခြုံငုံပြီး ကြည့်ရှုနိုင်တဲ့အတွက် သက်သာစေပါတယ်။ ဤအချက်တွေကြောင့် Software Development လုပ်တဲ့အခါ SDLC လို့ အတိုကောက်ခေါ်တဲ့ Software Development Life Cycle က မဖြစ်မနေ သိထားပြီး လုပ်ဆောင်ရမည့် အချက်များတွင် အဓိက ပါဝင်နေပါတယ်။

7 Steps of SDLC
SDLC ရဲ့ အဆင့် (၇) ဆင့်နဲ့ ဆက်လက်တင်ပြပေးပါမယ်။

1. Analysis and Planning (ခွဲခြမ်းစိတ်ဖြာခြင်းနဲ့ အစီအစဥ်ချခြင်း)
Project ၏ ရည်ရွယ်ချက် နဲ့ သူ့၏ အကြီးမားဆုံးသော mission ကို သတ်မှတ်တာနဲ့ ရောက်ရှိအောင် အစီအစဥ်ချ ရေးဆွဲရပါမယ်။ လုပ်ဆောင်ရာမှာ ရရှိနိုင်မယ့် human resource, develop လုပ်ရမည့် tools နဲ့ လုပ်ဆောင်ဖို့အတွက် အပြင် resource တွေကို ခေါ်သင့်၊ မခေါ်သင့် စဥ်းစားရပါမယ်။ Develop လုပ်မည့် ကုန်ကျစရိတ်ကို ခန့်မှန်းတွက်ချက်ပြီး သတ်မှတ်ရပါမယ်။ ဤအဆင့်ကို သတ်မှတ်ရေးဆွဲပြီးပါက SOW (Scope of Work) လို့ ခေါ်တဲ့ ဘယ်ဟာကို တည်ဆောက်မယ်၊ ဘယ်အတွက်ကြောင့်လဲ၊ ဘယ်လို ဖြစ်ပေါ်လာမလဲလို့ခေါ်တဲ့ high-level scope တစ်ခုကို ရပါပြီ။

2. Requirements
လိုအပ်မည့် နည်းပညာများ နဲ့ SOW အတွက် အချက်များကို ဖြည့်ရပါမယ်။ လိုအပ်သော နည်းပညာများမှာ ဘယ် technology တွေကို ထည့်သုံးမလဲ၊ အချင်းချင်း ချိတ်ဆက်ဖို့အတွက် ဘယ် channel တွေကို သုံးမလဲ၊ ဘယ် Management Tool တွေကို သုံးမလဲ စသည်ဖြင့် သတ်မှတ်ပေးရပါမယ်။ SOW အတွက် အချက်များကတော့ Software က လက်ရှိ လူတွေကြုံတွေ့နေရတဲ့ မည်သည့် ပြဿနာကို ဖြေရှင်းပေးဖို့ ဦးတည်မလဲ၊ Product ထုတ်ပြီးလျှင်ကော ဘယ်သူတွေက အဓိက သုံးကြမလဲ၊ ဘာကြောင့် သုံးမှာလဲ၊ သူတို့အတွက် ဘယ်လို အကျိုးရှိနိုင်မလဲ စသည်ဖြင့် သတ်မှတ်ပေးရပါမယ်။ Software အတွက် လိုအပ်တဲ့ အချက်အလက်တွေကို ဘယ်လို စုဆောင်းမလဲ။ Third-party API (သို့) Packages တွေ ထည့်သုံးဖို့ လိုသလား။ ဤအချက်တွေကို ထည့်သွင်း သတ်မှတ်ပြီးပါက တစ်ဆင့်ချင်းစီ လုပ်ဆောင်ရမည့် အဆင့်တွေ scope သတ်မှတ်ရပါမယ်။

3. Design and Prototyping
ဒီဇိုင်းဆိုသည်မှာ ဘယ်လို ပေါ်တာအပြင် ဘယ်လို အလုပ်လုပ်သလဲဆိုတာကိုပါ ဆိုလိုပါတယ် (Not just what it looks and feels like. Also, how it works. – By Steve Jobs)။ ထည့်သွင်းမည့် Function တွေနဲ့ Flow တွေကို သတ်မှတ်ပါမယ်။ user interactions တွေရဲ့ လုပ်ဆောင်ချက်တွေကို ရိုးရှင်းတဲ့ wireframes ကို ဆွဲတာ (သို့) full-fledged prototypes လို့ခေါ်တဲ့ ပိုပြီး ပြီးပြည့်စုံတဲ့ Software နမူနာကို Marvel, Figma or InVision တွေလို software တွေ အသုံးပြုပြီး ဆွဲတာမျိုး လုပ်ဆောင်ရပါမယ်။ ဤအဆင့်မှာဆိုလျှင် ထွက်လာမယ့် Software ကို Prototype အနေနဲ့ ကြည့်ရှုပြီး လိုအပ်တာတွေ ထပ်ထည့်တာ၊ မလိုအပ်တာတွေကို ဖြုတ်ရမှာတွေကို မြင်လာပါလိမ့်မယ်။ Software Project ကို ကုဒ် စတင်မလုပ်ခင် ideas တွေကို စဥ်းစားတာ၊ client တွေကနေ feedback တွေကို ယူတာတွေကို လုပ်ဆောင်နိုင်ပါမယ်။

4. Software Development
ဤအဆင့်မှာတော့ Software ကို ရုပ်ပုံဖော်အောင် စတင်လုပ်ဆောင်ပါပြီ။ SDLC အဆင့်တွေမှာဆိုလျှင် ဤအဆင့်ဟာ Risk အများဆုံးဖြစ်ပြီး အခက်ခဲဆုံးလည်း ဖြစ်ပါတယ်။ SOW မှာ ဖြည့်ထားတဲ့ အချက်တွေကို ကိုက်ညီအောင် လုပ်ဆောင်ရမှာ ဖြစ်ပြီး သတ်မှတ်ထားသော scope တွေကနေ မသွေဖယ်သွားအောင် လုပ်ဆောင်ရပါမယ်။ ရိုးရှင်းပြီး ပြင်ရလွယ်ကူအောင် develop လုပ်ရမှာ ဖြစ်သလို သုံးရအဆင်ပြေမယ့် software တစ်ခုဖြစ်အောင်လည်း လုပ်ဆောင်ရပါမယ်။

5. Testing
အထက်ပါ အဆင့် (၄) ဆင့် ပြီးဆုံးပါက Testing လို့ခေါ်တဲ့ Software ကို စတင် ကောင်းစွာ အလုပ်လုပ်၊ မလုပ် စမ်းသပ်ပါမယ်။ ထွက်ပေါ်လာတဲ့ bugs တွေကို ပြင်ဆင်ခြင်း၊ testing အတွက် third-party software တွေကို အသုံးပြုပြီး document လုပ်ထားခြင်း၊ ui/ux ကို ကောင်းစွာ အလုပ်လုပ်၊မလုပ် စစ်ဆေးခြင်းများ လုပ်ဆောင်ပါမယ်။ beta version အနေနဲ့ ကနဦး စတင် ထုတ်ပြီး အသုံးပြုရတာ အဆင်ပြေလား၊ အသုံးပြုသူတွေ ဘယ်လို အခက်အခဲရှိလဲ ဆိုတာတွေကို small groups တစ်ခုတည်ဆောက်ပြီး feedback ကို ရယူကာ ပြင်ဆင်သင့်တာတွေကို ပြန်လည်ပြင်ဆင်ရပါမယ်။

6. Deployment
Software ကို လူအများကို ချပြဖို့ လုပ်ဆောင်ရပါမယ်။ ထည့်သွင်းတည်ဆောက်ထားသော ကုဒ်များကို Production သို့ ပြောင်းပါမယ်။ ယနေ့ ကုမ္ပဏီတော်တော်များများက ARA လို့ခေါ်တဲ့ Application Release Automation တွေကို အသုံးပြုပြီး လုပ်ဆောင်ရပါတယ်။

7. Maintenance and Updates
Software အတွက် လိုအပ်ချက်နဲ့ အသုံးပြုသူများရဲ့ ထပ်မံ တောင်းဆိုချက်တွေဟာ အမြဲတစေ ထွက်ပေါ်လာတတ်ပါတယ်။ အသုံးပြုသူ customer တွေဟာ bugs တွေကို ရှာတာ၊ features အသစ်တွေကို ထည့်သွင်းပေးဖို့ တောင်းဆိုတာတွေဆိုတာ ရှိလာမှာဖြစ်ပြီး ထိုအတွက်လည်း လုပ်ဆောင်ဖို့ လိုအပ်ပါမယ်။

ယခုဆိုလျှင် SDLC လို့ခေါ်တဲ့ Software Development Life Cycle ၏ အချက် (၇) ချက်ကို တင်ပြပြီးဖြစ်ပါတယ်။ Software Development ပဲ လုပ်လုပ်၊ Web App Development ပဲ လုပ်လုပ် အထက်ဖော်ပြပါ အချက် (၇) ချက်သည် မဖြစ်မနေ ထည့်သွင်းစဥ်းစားပေးဖို့ လိုမှာ ဖြစ်ပါတယ်။ အခုလို အချိန်ပေး ဖတ်ရှုပေးတဲ့အတွက် ကျေးဇူးတင်ပါတယ်။ သာယာ ပျော်ရွှင်သော နေ့ရက်လေး ဖြစ်ပါစေလို့ ဆုမွန်ကောင်းတောင်းပေးရင်း blog လေးကို ဤနေရာမှာပဲ အဆုံးသတ်လိုက်ပါတယ် ခင်ဗျ။

Hello

Leave a Reply

Your email address will not be published. Required fields are marked *