Software Product တခုဖန်တီးတယ်လို့ပြောလိုက်တာနဲ့ အများစုက Code တွေချည်းထိုင်ရေးရမယ်လို့ ထင်တတ်ကျပါတယ်။တကယ်တော့ Code ရေးတယ်ဆိုတာ Software Development Process ရဲ့ ၁၅% လောက်ပဲရှိပါတယ်။ ဒါဆိုကျန်တဲ့ ၈၅% ကဘာတွေဖြစ်မလဲ။ ဒီ Post မှာ Software Development Lifecycle (SDLC) အကြောင်းကို အကြမ်းဖျဉ်းရှင်းပြပေးမှာဖြစ်ပါတယ်။
Software Development Lifecycle အကြောင်းကိုနားလည်ဖို့ အဓိကကျတဲ့ အဆင့် ၇ ဆင့်ရှိပါတယ်။
1. Planning
2. Requirement Analysis
3. Design
4. Implementation / Coding
5. Testing
6. Deployment
7. Maintenance
တို့ပဲဖြစ်ပါတယ်။ဒါကိုကြည့်ခြင်းအားဖြင့် Coding ဆိုတာ Software Development Lifecycle မှာ ပါတဲ့ အဆင့်တဆင့်မျှသာဖြစ်ပါတယ်။အခုဆက်ပြီး အဆင့်တဆင့်ချင်းစီကို လေ့လာကြည့်ရအောင်။
အဆင့် ၁ ။ Planning
လူတယောက်မှာ Business Idea တခုရှိတယ်ဆိုပါတော့။ သူ့ idea ကိုအကောင်အထည်ဖော်ဖို့အတွက် Company တခုကိုလိုက်ရှာမယ်။ သဘောကျတဲ့ Company တွေ့ရင် အပ်နှံမယ်ပေါ့။ ဒါဆို သူ့ Project ကိုစတင်ဖို့အတွက် Project Manager နဲ့တွေ့ဖို့လိုပါလိမ့်မယ်။ ပြီးရင်လိုအပ်ချက်တွေ( Requirements ) ကို Plan ဆွဲရပါမယ်။ Software ကဘယ်သူတွေအတွက်ရည်ရွယ်တာလဲ၊ Software ရဲ့ Value ကဘာလဲ၊ Requirements တွေကဘာတွေဖြစ်မလဲ စသဖြင့် Product Owner နဲ့ Project Manager တို့က အသေးစိတ် Plan ဆွဲရပါတယ်။ ဒါကို Planning အဆင့်လို့ခေါ်ပါတယ်။ ဒီအဆင့်ပြီးရင်တော့ Software မှာ ဘယ်လို Features တွေပါမလဲဆိုတာ အကြမ်းဖျဉ်းထွက်ပါပြီ။
အဆင့် ၂ ။ ။ Requirement Analysis
ပထမအဆင့် Planning ပိုင်းပြီးရင် Programmer တွေ၊ Software Engineer တွေ၊ Tester တွေပါဝင်တဲ့ Team ဟာ Project Manager ၊ Product Owner တို့နဲ့အတူ Requirement တခုချင်းစီအတွက် အသေးစိတ်အချက်အလက်တွေကို စိစစ်ရပါတယ်။ ဥပမာ Software မှာ User Registration လိုအပ်တယ်ဆိုရင် ၎င်းအတွက်ဘာတွေပါဖို့လိုမလဲပေါ့၊ username field လိုမယ်၊ password ထည့်ပေးရမယ်၊ password ကို confirm လုပ်ရမယ်၊ Terms and Conditions အတွက် Check Box တခုလိုမယ် ၊ Submit Button လိုမယ် စသဖြင့်ပေါ့။ ဒါဆိုရင်တော့ Requirement တခုချင်းတွေအတွက် အသေးစိတ်လိုအပ်ချက်တွေကို စိစစ်တဲ့အဆင့်ဖြစ်တာဖြစ်လို့ Requirement Analysis လို့ခေါ်တာပါ။
အဆင့် ၃။ ။ Design
ဒီအဆင့်မှာ ဘယ် Language တွေကိုသုံးမလဲ၊ ဘယ် Framework တွေကိုသုံးမလဲ၊ UI Design အတွက် Color အတွဲအစပ်၊ Web App ဆိုရင် ဘယ် Browser တွေမှာအသုံးပြုနိုင်မလဲ၊ System Server Design တွေ၊ Database Relationship တွေ၊ ဘယ် Mobile Device တွေမှာသုံးလို့ရမလဲ၊ စသည်ဖြင့်များစွာပါဝင်နိုင်ပါတယ်။ Project အတွက် Design အသေးစိတ်ဆွဲပေးခြင်းဖြင့် Coding ပိုင်းမှာ ပိုမိုလွယ်ကူစေမှာဖြစ်ပါတယ်။
အဆင့် ၄။ ။ Implementation / Coding
Project အတွက် Coding စရေးတဲ့အဆင့်ဖြစ်ပါတယ်။ ဘယ် Programmer က ဘယ် Module ကိုတာဝန်ယူပြီးရေးမလဲ။ ကိုယ်ရေးရမယ့်အပိုင်းကို စတင် Coding လုပ်တဲ့အဆင့်ပဲဖြစ်ပါတယ်။ Desginer တွေကလည်း Application အတွက် Design ဆက်လုပ်ပါတယ်။ Developer တွေကလည်း Code ဆက်ပြီးရေးပါတယ်။ Code ရေးရာမှာလည်း Coding Standards ကိုလိုက်နာဖို့လိုမယ်။ Code Design ကိုသေချာလုပ်ရမယ်။ Best Practices တွေနဲ့ရေးသားရပါမယ်။ ပြီးတော့ သာမာန် Project အသေးတွေမှာဆိုရင် Developer တွေကပဲ Coding လုပ်ရင်း Testing လုပ်ကြပါတယ်။
အဆင့် ၅။ ။ Testing
ဒီအဆင့်ကလည်း အရမ်းအရေးကြီးပါတယ်။ Bug လုံးဝကိုကင်းတဲ့ Application ဆိုတာမရှိသလောက်ရှားပါတယ်။ တခါတခါ Bug တွေက User က လက်တွေ့သုံးတဲ့အချိန်ရောက်မှ ပေါ်လာတတ်တာလဲရှိပါတယ်။ Testing လုပ်တဲ့အပိုင်းက Function တခုဆီတိုင်းကို Testing လုပ်ဖို့လိုပါတယ်။ ဥပမာပြောရင် Developer က Logout Feature တခုကို Coding လုပ်ပြီးပြီဆိုပါတော့ ၊အဲ့ဒီမှာ Logout လုပ်ရင် session ကို clear လုပ်ရမှာကို မလုပ်မိဘူး။ ဒါကို တယောက်ယောက်က Login Button ကိုနှိပ်လိုက်ရုံ၊ link ကို refresh လုပ်လိုက်ရုံနဲ့ access ရရှိသွားမယ်ဆို ပထမ User ရဲ့ Credit Card ထဲက ပိုက်ဆံတွေကိုအကုန်သုံးသွားလို့ရပါမယ်။ ဒါကြောင့် သေသေချာချာ Testingလုပ်ဖို့အရေးကြီးပါတယ်။ Bug တွေကို Testing လုပ်တဲ့အဆင့်မှာတွေ့ပါမှ သေချာ Fix လုပ်နိုင်မှာဖြစ်ပါတယ်။
အဆင့် ၆။ ။ Deployment
Testing သေချာလုပ်ပြီးပြီဆိုရင် Product ကို Develop လုပ်တဲ့အဆင့်ပြီးပြီလို့ဆိုရမှာပါ။ အခုအဆင့်က တော့ Product ကိုဖြန့်ဖြူးတဲ့အဆင့်ပေါ့။ User တွေက စတင်သုံးလို့ရပြီပဲဖြစ်ပါတယ်။ Web Application ဆိုရင်တော့ Software ကို Server ပေါ်တင်တဲ့အဆင့်ကိုဆိုလိုတာပါ။ သာမန် Business App ဆိုရင်တော့ Software ကို installation လုပ်တဲ့အဆင့်ဖြစ်ပါတယ်။ ဒါပြီးရင်တော့ User က Software ကိုစတင်အသုံးပြုလို့ရပြီပဲဖြစ်ပါတယ်။
အဆင့် ၇။ ။ Maintenance
ကျတော်တို့က Web Application တခုဖန်တီးတယ်ဆိုပါစို့။ Application က အရမ်းပေါက်သွားပြီး အသုံးပြုသူ Million နဲ့ချီရှိလာတယ်ဆိုပါတော့။ အစတုန်းက အသုံးပြုခဲ့တဲ့ Server နဲ့ အဆင်မပြေတော့ဘူး ၊ Server တွေထပ်တိုးရမယ်။ Database တွေထပ်တိုးရမယ် စသဖြင့်ပြင်ဆင်မှုတွေဆက်လုပ်ရတော့မှာပါ။ ဒါ့အပြင် အသုံးပြုသူတွေရဲ့ Feedback ကိုလက်ခံပြီး Requirements တွေထပ်တိုးလာမယ်။ အဲ့ဒီအတွက် Feature အသစ်တွေထပ်ထည့်ရမယ်။ ဒီအဆင့်တွေကို Maintenance အဆင့်လို့ခေါ်ပါတယ်။ Product တခုဆိုတာ တခါထဲပြည့်စုံသွားတယ်ဆိုတာ မရှိပါဘူး။ ပြောင်းလဲလာတဲ့ အခြေအနေပေါ်မူတည်ပြီး ထပ်မံဖြည့်စွက်ပြင်ဆင်ရတာတွေရှိလာပါလိမ့်မယ်။ ဒီအချိန်မှာ Coding လုပ်တဲ့ အချိန်က သေသေချာချာ Code Design မလုပ်ခဲ့ရင် Maintenance အဆင့်မှာ အခက်အခဲတွေနဲ့ တွေ့ရနိုင်ပါတယ်။
အခုပြောပြခဲ့တဲ့ အကြောင်းအရာတွေက Software Development Lifecycle မှာပါဝင်တဲ့ အဆင့်တွေဖြစ်ပါတယ်။ ဒီ Software Development Lifecycle ကို Manage လုပ်ဖို့အတွက် method တွေများစွာရှိပါတယ်။ ဒီအထဲက Waterfall Model နဲ့ Agile Methods တွေအကြောင်းကို နောက်မှ Post ရေးပြီးတင်ပေးပါမယ်။
ဒီ Post ကိုဖတ်ပြီး မိတ်ဆွေအတွက် အကျိုးတစုံတရာရှိခဲ့ရင် ( ဒါမှမဟုတ် ) တခြားသူတွေအတွက် အကျိုးတစုံတရာရှိနိုင်တယ်ဆိုရင် Like & Share လုပ်ပေးပါခင်ဗျာ။ အားလုံး အဆင်ပြေကြပါစေ။
Crd. စည်သူပိုင်