Softwareတခုဘယ်လိုရေးကြလဲ? (အပိုင်း ၁)

လူတော်တော်များများကတော့ software ရေးတယ်ဆိုတာ ရုပ်ရှင်တွေထဲကလို computer ရှေ့ထိုင်ပြီး keyboard ကိုတဖြောင်းဖြောင်းရိုက်ပြီး code ရေးကြတယ်ထင်ကြတယ်။တကယ်တန်းတော့တချိန်လုံး code ပဲထိုင်မရေးရပါဘူး။ coding က project တခုလုံးရဲ့ software process တွေထဲက အဆင့်တဆင့်ပါပဲ။ အဲ့တော့ software process ဆိုတာဘာလဲ? software process ဆိုတာက Software တစ်ခုစရေးမယ်လို့ဆုံးဖြတ်တဲ့အချိန်ကနေစပြီး ဈေးကွက်ထဲရောက်တဲ့အထိကြားထဲမှာ လုပ်ရတဲ့ လုပ်ဆောင်ချက်အဆင့်ဆင့်ကို ပြောတာပါ။ software process တွေကအများကြီးထဲက အခြေခံအကျဆုံးအချက်တချို့ကို ပြောပြပေးပါမယ်။ ပထမဆုံးလုပ်ရတာက Software specification လို့ခေါ်တယ်။ ဒီ software မှာ ဘယ်လိုလုပ်ဆောင်ချက်တွေထည့်မယ်….ပြဿနာတွေကဘာတွေရှိလဲ…ဘတ်ဂျက်ဘယ်လောက်သုံးမလဲ version 1 မှာဘာရေးမယ် version 2 မှာဘာတွေထပ်လုပ်မယ် စသဖြင့်ပေါ့။အဲ့ကနေဘာထွက်လာမလဲဆိုတော့ ဒီ software မှာဘာတွေပါမလဲ ဘာလုပ်ရမလဲ သိလာလိမ့်မယ်။ဒီအဆင့်ကတော်တော်အရေးကြီးပါတယ်။ specification သေချာမလုပ်ခဲ့ရင် client (software အပ်တဲ့သူ) ဖြစ်ချင်တာတခြား ထွက်လာတဲ့ software ကတခြား စသဖြင့်ပြဿနာပေါင်းစုံကြုံတွေ့ရနိုင်ပါတယ်။

နောက်တဆင့်က design & implementation ။ software developement လို့လည်းခေါ်ကြတယ်။ software ကို တကယ်ရေးရမယ့်အပိုင်းတွေပေါ့။ design ဆိုတဲ့နေရာမှာ UI/UX design လေးပဲမဟုတ်ဘူး။ frontend မှာ ဘာ languange သုံးမယ် backend က ဘာသုံးမယ် mobile မှာရော android သီးသန့် ios သီးသန့် ရေးမှာလား corss-platform တွေသုံးရေးမှာလား … server architecture ကရော user တွေသန်းချီသုံးလာရင်အလွယ်တကူချဲ့လို့ရမှာလား…အဲ့ဒါတွေကအစ ပြင်ဆင်ရတယ်။design ပြီးရင် project တဝက် ပြီးပြီလို့တောင်တင်စားရလောက်အောင်သူကအရေးပါ ပါတယ်။design ကောင်းရင် ရေးမယ့် developer တွေ ကော်ဖီလေးသောက်လိုက် တော်ကီဖုတ်လိုက်နဲ့ သာသာယာယာ ရေးရုံပါပဲ : ) ။ UI design prototype တွေ client ကိုပြီး သူလိုချင်တာဟုတ်မဟုတ်ချိန်ကိုက်လို့လည်းရတယ်။ client နဲ့ကိုယ်နဲ့နားလည်မှုလွဲတဲ့ ပြဿနာတွေကိုဒီအဆင့်မှာပြန်ပြင်လို့ရတယ်။implementation ကတော့ design အတိုင်းထွက်လာအောင် တည်ဆောက်ရတာတွေပေါ့။ အဲ့မှာဘာတွေပါမလဲဆိုတော့ အဖွဲ့လိုက်ရေးရတာဆိုတော့ တယောက်နဲ့တယောက် code ပေါင်းတာတွေအတွက် version control system တွေ တယောက်နဲ့တယောက် task assign ချတာတွေ တက်လာတဲ့ error တွေကိုလည်း စနစ်တကျ database ဆောက်ပြီးမှတ်ထားဖို့ error management တွေ mobile team နဲ့ချိတ်ဆက်ဖို့ api documentation တွေလုပ်ရတာတွေ စသဖြင့်အများကြီးရှိပါတယ်။ (နောက်ပိုင်း တခုချင်းစီ အသေးစိတ်ဆက်ရေးပေးပါမယ်) အခုအဆင့်နှစ်ဆင့်ပြီးတဲ့အချိန်မှာ software က ရေးပြီးတဲ့အနေအထားရောက်သွားပြီ။အဲ့တော့ ပြီးပြီဟေ့ဆိုပြီး တခါတည်းတန်းသုံးလို့မရဘူး။ testing လုပ်ရတယ် device မျိုးစုံ လူမျိုးစုံနဲ့ testing လုပ်ရတယ်။ တချို့ company တွေဆို testing team သီးသန့်ရှိတယ်။ developer ကိုယ်တိုင် testing လုပ်လို့မရဘူး။ ဘာလို့လဲဆိုတော့ သူရေးထားတာဆိုတော့ သူ့မသိစိတ်မှာကိုက error မတက်အောင် ကျော်ခွပြီး စမ်းမိသွားတတ်တယ် : ) software ကဘာ error မှမရှိတော့ဘူးဆိုရင် client လိုချင်တဲ့အတိုင်းဟုတ်မဟုတ် ပြန်စီစစ်ပေးရတယ်။ ဘာလို့လဲဆိုတော့ လိုချင်တာတခြား နားလည်မှုလွဲပြီး လုပ်လိုက်တာတခြား ဖြစ်နေတတ်တယ်။

client ကိုယ်တိုင်ကလည်း အစကတည်းက သူ့ဟာသူဘာလိုချင်မှန်းရေရေရာရာပြောနိုင်တဲ့သူကခပ်ရှားရှားရယ် : ) ဒီအဆင့်ကို Software validation လုပ်တယ်လို့ခေါ်တယ်။ Client ကလည်း အိုကေပြီဆိုရင် production ကိုသွားလို့ရပြီ။အဲ့ခါမှဇာတ်လမ်းစတာပဲ ကျောင်းတွေမှာ project လုပ်ရင် project ပြီးလို့ presentation ပြီးတာနဲ့ ရင်ထဲအလုံးကြီးကျ အေးချမ်းသွားတာ ဘာမှလုပ်စရာမလိုတော့ဘူးလေ။ အခု real world မှာတော့ production စပြီဆိုမှ project စတယ်လို့ပြောရမယ် user မျိုးစုံသုံးတဲ့အခါ error မျိုးစုံတက်လာလိမ့်မယ်။software bug တွေပေါ့။ အဲ့ error တွေထိုင်ရှင်းရမယ်။ ပြီးရင် user လိုအပ်ချက်တွေလိုက်ရေး လိုက်ပြင် ပေးရမယ်။ ဟုတ်တယ် ဒီအချိန်မှာ ငါရေးတာအမှန်လုပ်လို့မရဘူး… user အဆင်မပြေရင် မပြေဘူးမှတ်ပြီး လိုက်ပြင်တော့ပဲ။အဲ့ဒါကြောင့်ပဲ software တခုက version 1,2,3 တွေထွက်လာတာ။ facebook ဆို ခဏခဏ version အသစ်ထွက်တယ်။ ဒီ အဆင့်ကိုက software evolution လို့ခေါ်တယ်။ နောက် article မှာ software process model တွေအကြောင်းရှင်းပြပါမယ်။

BMPS Education Center facebook page မှ ကူးယူရေးသား ဖော်ပြပါသည်။

openmoreonline

Related Posts