Showing posts with label Model နှင့် Tool များ. Show all posts
Showing posts with label Model နှင့် Tool များ. Show all posts

Jan 14, 2017

Big Data ဆိုတာဘာလဲ။

sagaing
Big Data ဆိုတာ Technology တစ်ခုဖြစ်ပြီး၊ သူ့မှာ အဆမတန် များပြားတဲ့ Data အစုအဝေးတစ်ခုရှိတယ်၊ Data တွေဟာ အမြဲတိုးပွားနေပြီး၊ အမြဲတမ်းလည်း ပြောင်းလဲနေတယ်။ အဲ့ဒီ Data တွေမှာ Structure ကျနေတာရော၊  Structure အနည်းငယ်ကျတာတွေရော၊ Structure မကျတာတွေရော ပေါင်းစပ်ပါဝင်နေတယ်။ Structure ကျတယ်ဆိုတာက Database တစ်ခုထဲက Data တွေလိုဖြစ်နေတာကိုပြောတာပါ။ Structure အနည်းငယ်ကျတယ်ဆိုတာက XML ကဲ့သိုသော Data မျိုးတွေကိုဆိုလိုတာပါ။ Structure မကျဘူးဆိုတာက PDF ဖိုင်ထဲက Data မျိုးတွေကို ပြောတာပါ။ Big Data ဟာ ဘာလို့အရေးပါလည်းဆိုတော့ နောက်ပိုင်းမှာ Information နှင့် Knowledge တွေအဖြစ် ပြန်လည်အသုံးပြုနိုင်တဲ့အတွက်ကြောင့် ဖြစ်တယ်။  Big Data မှာ Data တွေအဓိက လာတဲ့ အရင်းအမြစ်တစ်ခုက အင်တာနက်သုံးတဲ့ သူတွေဆီကပဲဖြစ်ပါတယ်။ ကျွန်တော်တို့ ပတ်ဝန်းကျင်မှာ အချိန်တိုင်းလိုလို Data တွေဖြစ်ပေါ်နေပါတယ်။ ဥပမာ ကျွန်တော်တို့ကိုယ်တိုင်နှင့် သူငယ်ချင်း၊ ဆွေမျိုး၊ မိတ်ဆွေတွေထဲမှာ ဖေ့ဘွတ်ကို မသုံးတဲ့သူ၊ မရှိသလောက်ပဲ ဖြစ်ပါတယ်။  ဖေ့ဘွတ် အကောင့်တစ်ခုဖွင့်တယ်ဆိုရင် ဒေတာတွေထည့်ပေးရသလို၊ ရှိပြီးသားအကောင့်တစ်ခုက ဖေ့ဘွတ်သုံးတယ်ဆိုရင်လည်း စာတွေတင်ချင်တင်မယ်၊ ပုံတွေတင်ချင်တင်မယ်၊ ဗွီဒီယိုတွေတင်ချင်တင်မယ်၊ စတာတွေဟာ Data တွေပါ။ အဲ့ဒီ Data တွေဟာ စက္ကန့်တိုင်းဖြစ်ပေါ်နေပြီး၊ Data တွေကြောင့် လူတွေရဲ့ နေထိုင်စားသောက်မှု ပုံစံတွေဟာ ပြောင်းလဲ၊ ဖြစ်ပေါ်နေသလို၊ နိုင်ငံရေး၊ စီးပွားရေး၊ ပညာရေး၊ ကျမ္မာရေး၊ လူမှုရေး စတာတွေဟာလည်း ပြောင်းလဲနေပါတယ်။  Big Data ရဲ့ သွင်ပြင်လက္ခဏာကို ယေဘူယျအားဖြင့် 3Vs (Volume, Variety နှင့် Velocity) ဆိုတဲ့ အချက် (၃)ချက်နှင့် သတ်မှတ်ပါတယ်။ Volume ဆိုတာ Data ပါရှိတဲ့ ပမာဏ၊ Variety ဆိုတာ Data အမျိုးအစား အစုံအလင်ပါရှိမှု နှင့် Velocity ဆိုတာ Data ဆောင်ရွက်တဲ့ခါမှာ ဖြစ်ပေါ်တဲ့မြန်ဆန်နှုန်း တို့ပဲဖြစ်ပါတယ်။  အောက်မှာပြထားတဲ့ပုံက Big Data ဘယ်လိုကျယ်ပြန့်လာပြီး၊ ဖြစ်တည်လာတယ်ဆိုတာကို ပြထားတဲ့ပုံပါ။


Big Data ကြောင့် နည်းပညာနှင့်ပတ်သက်တဲ့ အလုပ်အကိုင်၊ အခွင့်အလမ်းအသစ်တွေ ဖြစ်ပေါ်လာသလို၊ လေ့လာစရာနယ်ပယ်လည်း ကျယ်ပြန့်လာခဲ့ပါတယ်။  ဥပမာ Data Scientist တစ်ယောက်ဟာ Big Data ရဲ့ အခရာကျတဲ့ Data Velocity ကိုကိုင်တွယ်ဖြေရှင်းနိုင်ဖို့ဆိုရင်၊ Machine Learning လို့ခေါ်တဲ့ (AI = Artificial Intelligence) အမျိုးအစားတစ်ခုကို သိထားဖို့လိုပါတယ်။  ထို့အတူ အခြားအလုပ်တစ်ခုဖြစ်တဲ့၊ ပုံစံတူ Data တွေကို ရှာဖွေမယ်၊ ပြီးရင် ခွဲခြမ်းစိတ်ဖြာပြီး အသုံးဝင်တဲ့ Data တွေကို ရွေးချယ်တဲ့ Data Mining ဆိုတာကိုလည်း သိထားဖို့လိုပါတယ်။  သာမာန်လူတစ်ယောက်အနေနှင့် Big Data ဟာ အရေးမပါလှပေမယ့်၊ အဖွဲ့အစည်းတွေအတွက်တော့ အရေးပါတာကြောင့် Big Data မှ Data တွေကို စောင့်ကြည်လေ့လာမှု၊ ခွဲချမ်းစိတ်ဖြာမှုတွေ ပြုလုပ်ပြီး၊ ဥပမာ မိမိအဖွဲ့အစည်းကထုတ်တဲ့ Product က ယခင်နှစ်တွေကထက် ဘယ်လောက်ထိ အောင်မြင်မှုရှိနေပြီလည်း၊ နောက် Market အနေအထား ဘယ်လိုဖြစ်လာနိုင်လည်း၊ Customer တွေနှစ်သက်တဲ့ပုံစံက ဘယ်လိုလည်း၊ နောင်မှာရော ဘယ်လိုဖြစ်နိုင်လာလည်း၊ စသည့်ဖြင့် မိမိအဖွဲ့အစည်းရဲ့ အောင်မြင်တိုးတက်မှု၊ ဆုံးရှုံးမှုနှင့် ဖြစ်လာနိုင်တဲ့အခြေအနေတွေနှင့် ပတ်သက်တဲ့ ရင်းမြစ်တွေကို ရှာဖွေဖို့၊ အတွက် Big Data ကို အသုံးပြုလာတာကြောင့် အရေးပါလာတာဖြစ်ပါတယ်။ နောက်ပြီး ကျွန်တော်တို့ ဖေ့ဘွတ်သုံးတဲ့အခါမှာ အဝေးရောက်နေတဲ့သူငယ်ချင်း၊ မိတ်ဆွေ၊ ဆွေမျိုးသားခြင်း စတာတွေနှင့် အွန်လိုင်းမှာဆုံဆည်းနိုင်ဖို့ ကျွန်တော်တို့သိနိုင်မယ့်သူတွေကို ဖေ့ဘွတ်ကအကြံပြုပေးတာ၊ ကျွန်တော်တို့ကြိုက်နှစ်သက်နိုင်မယ့် ကုန်ပစ္စည်းနှင့်ပတ်သက်တဲ့ ကြော်ငြာတွေ ဖေ့ဘွတ်ထဲမှာ ပေါ်နေတာတွေဟာ ဖေ့ဘွတ်က Big Data ကိုအသုံးပြုပြီး ဖန်တီးထားတဲ့ နည်းပညာတွေကြောင့် ဖြစ်ပါတယ်။  ဒီနည်းပညာတွေဟာလည်း တကယ်တော့ ကျွန်တော်တို့ ဖေ့ဘွတ်ပေါ်မှာ (သို့မဟုတ်) အင်တာနက်ထဲမှာ တစ်ခုခုကို ရှာဖွေလိုက်တာ၊ ပုံတစ်ပုံကို နှိပ်လိုက်တာ၊ လင့်ခ်တစ်ခုကို နှိပ်လိုက်တာ၊ ဗွီဒီယိုဖိုင်ကို ဖွင့်ကြည့်လိုက်တာ စသည့်ဖြင့် ကျွန်တော်တို့ လုပ်ဆောင်ချက်တွေကို Big Data ထဲမှာသိမ်းထားပြီးမှ ပြန်လည်ဖန်တီးထားတာတွေ ဖြစ်ပါတယ်။ Big Data ဆိုတဲ့ တီထွင်ဆန်းသစ်မှုကို ရှေ့ဆောင်လမ်းပြခဲ့တာကတော့ အချက်အလက်ရှာဖွေရေးအင်ဂျင်၊ ဆိုရှယ် မီဒီယာ၊ ကြော်ငြာ စတဲ့ လုပ်ငန်းအဖွဲ့အစည်းတွေပဲ ဖြစ်ပါတယ်။

Big Data အတွက် အဓိကအသုံးပြုတဲ့ Tools များ
Big Data ဆိုတဲ့ နည်းပညာကျယ်ပြန့်လာမှုနှင့်အတူ Technologies Company တွေဖြစ်တဲ့ IBM, Oracle, Microsoft, Intel, Google, VMWare, RedHat နှင့် အခြား ကုမ္ပဏီပေါင်းများစွာရဲ့ Hardware/Software ဝန်ဆောင်မှုတွေလည်း ကျယ်ပြန့်လာခဲ့ပါတယ်။  Big Data အတွက် Infrastructure တစ်ခုတည်ဆောက်ဖို့ဆိုတာ လွယ်ကူတဲ့ အရာတော့ မဟုတ်ပါဘူး။  ဘာလို့လည်းဆိုတော့ Big Data မှာ Open-Source တွေအဓိကသုံးတဲ့အတွက်ကြောင့် Configuration တွေဟာလည်း ရှုပ်ထွေးနိုင်တဲ့အတွက်ကြောင့် ဖြစ်ပါတယ်။ Networking နှင့်ပတ်သက်ပြီး ကျွမ်းကျင်တဲ့သူတွေဆိုရင်တော့ ပိုသိမှာပါ။  ဒီနေရာမှာ Software ပိုင်းနှင့် ပတ်သက်ပြီး Big Data မှာ အဓိကအသုံးပြုတဲ့ Tools တွေကို အဓိကထားပြီး မှတ်သားထားတာဖြစ်ပါတယ်။ Big Data မှာ အဓိကအသုံးပြုတာ Open-Source တွေပဲဖြစ်ပါတယ်။  နောက်ပြီး Big Data မှာ အဓိကလုပ်ဆောင်လေ့ရှိတဲ့ အလုပ်တွေက...

  • Data ရယူတဲ့အလုပ် (Extract) 
  • Data သိမ်းတဲ့အလုပ် (Store)
  • Data ရှင်းတဲ့အလုပ် (Clean)
  • Data တွေ ရွေးချယ်ခွဲထုတ်တဲ့အလုပ် (Mine)
  • Data တွေကို Charts/Graph တွေနှင့်ပြတဲ့အလုပ် (Visual)
  • Data တွေကို ခွဲခြမ်းစိတ်ဖြာတဲ့ အလုပ် (Analyze)
  • Data တွေကို ပေါင်းစည်းတဲ့အလုပ် (Integrate)
(ဒါဖတ်ပြီးတဲ့အချိန်မှာ ပလပ်စတစ်ကောက်တဲ့သူတွေ သွားမြင်ခဲ့ရင်၊ သူတို့က Big Data ရဲ့ Pioneer တွေပါလားလို့...တွေးလိုက်ပါ။ :D)
အဲ့ဒီအလုပ်တွေလုပ်ဖို့...

Big Data နှင့်ပတ်သက်တာတွေ ပြောတာပါ...။ ပလပ်စတစ်ကောက်တာ မဟုတ်ပါဘူး.. :D ။ Big Data အတွက် အဓိကလိုအပ်တဲ့ Tools တွေကတော့...

Apache Hadoop 
Apache ရဲ့ Framework တစ်ခုဖြစ်ပြီး၊ Big Data အတွက် အဓိကအသုံးပြုပါတယ်။ Big Data Framework တွေထဲမှာ ပေါ်ပြူလာအဖြစ်ဆုံး Open-Source Framework တစ်ခုဖြစ်ပါတယ်။  Hadoop ကို Java ဖြင့် ဖန်တီးထားပြီး၊ ၄င်းထဲမှာ အဓိက အစိတ်အပိုင်း (၄) ခုရှိတယ်...

HDFS (Hadoop Distributed File System)
HDFS ဆိုတာ Hadoop ရဲ့ အဓိကကျောရိုး လုပ်ဆောင်ချက်တစ်ခုဖြစ်ပြီး၊ Network ထဲက Data တွေကိုရှာဖွေထုတ်ယူခြင်း၊ ပြန်လည်ဖြန့်ဖြူးပေးခြင်း၊ Data အမြောက်အများကို ထိန်းသိမ်းထားပေးခြင်း၊ စီမံခန့်ခွဲပေးခြင်း စသည်တို့ကို မြန်ဆန်စွာလုပ်ဆောင်နိုင်တဲ့ စနစ်တစ်ခုဖြစ်ပါတယ်။

YARN (Yet Another Resource Negotiator)
YARN ဆိုတာ Framework တစ်ခုဖြစ်ပြီး Network တစ်ခုထဲမှာရှိတဲ့ Computer တွေဆီကလာတဲ့ Resource Request တွေကို အစီစဉ်တကျ၊​ စီမံခန့်ခွဲပေးတဲ့အလုပ်ကို အဓိကလုပ်ဆောင်ပါတယ်။

MapReduce ဆိုတာ Programming Model တစ်ခုဖြစ်ပြီး၊ YARN နှင့်အတူရှိတဲ့ အစိတ်အပိုင်းတစ်ခုပဲဖြစ်ပါတယ်။ MapReduce ရဲ့ အဓိကလုပ်ဆောင်ချက်က Data အများကြီးကို Filter, Sort, Summary စသည့် Data Processing လုပ်ငန်းတွေကို လုပ်ဆောင်ပေးခြင်းပဲဖြစ်တယ်။ MapReduce နှင့်တွဲဖက် လုပ်ဆောင်နိုင်တဲ့ နောက်တစ်ခုက Mahout ဆိုတာပဲဖြစ်ပါတယ်။  Mahout ဆိုတာ Machine Learning Application တွေကိုဖန်တီးလို့ရတဲ့ Open-Source Project တစ်ခုပဲဖြစ်ပါတယ်။  MapReduce ပေါ်မှာ အခြား Scripting Language တွေလည်းရေးနိုင်ပါတယ်။  အောက်မှာပြထားတဲ့ Hadoop Ecosystem မှာဆိုရင် PIG ဆိုတဲ့ Apache ရဲ့ Scripting Language ကိုပုံထဲမှာပြထားပေမယ့်၊ အခြား Scripting Language တွေဖြစ်တဲ့ Java, Python, Ruby စသည်တို့ကိုလည်း အသုံးပြုနိုင်ပါတယ်။  MapReduce မှာ Python ကိုအသုံးများပါတယ်။ MapReduce နှင့်ဆက်စပ်နေတဲ့ နောက်ထပ်တစ်ခုက Apache ရဲ့ Hive ဆိုတာပဲ ဖြစ်ပါတယ်။  ၄င်းက Structure Data တွေကို Analyze လုပ်နိုင်ပြီး၊ SQL နှင့်ဆင်တူတဲ့ Command တွေပါတဲ့ Tool တစ်ခုပဲဖြစ်ပါတယ်။

Hadoop Common
Hadoop Common ဆိုတာ Hadoop ထဲမှာရှိတဲ့ အခြား Module တွေအသုံးပြုဖို့ စုစည်းထားတဲ့ Libraries နှင့် Utilities တွေပဲဖြစ်ပါတယ်။

Hadoop ကို ဒီနေရာက Download လုပ်နိုင်ပါတယ်။  Hadoop ထဲမှာ Computer Programmer တွေနှင့်အဓိကသက်ဆိုင်နေတာက MapReduce နှင့် Scripting Languages တွေပဲဖြစ်ပါတယ်။  အောက်ပုံကတော့ Hadoop ရဲ့ Ecosystem ပုံပဲဖြစ်ပါတယ်။
MongoDB

Big Data မှာနောက်ထပ်အသုံးပြုတာက NoSQL Platform တွေပဲဖြစ်ပါတယ်။  NoSQL Platform တွေထဲမှာ Apache ကထုတ်တဲ့ HBase ဆိုတာရှိပေမယ့်၊ အသုံးများပြီး ပေါ်ပြူလာအဖြစ်ဆုံးက MongoDB ပဲဖြစ်ပါတယ်။  RDMS (Relational Database Management System) တွေဖြစ်တဲ့ SQL နှင့် MySQL တို့လို Table တွေ MongoDB မှာမရှိပဲ၊ Table ကဲ့သို့ Data အစုအဝေးတစ်ခုဖြစ်တဲ့ Collection ဆိုတာတွေပဲရှိပါတယ်။ Collection ထဲမှာ Data တွေရှိပြီး၊ ၄င်းတို့မှာ JSON ပုံစံအနေနှင့်ရှိပါတယ်။  MongoDB ရဲ့အားသာချက်က အခါအားလျှော်စွာပြောင်းလဲလေ့ရှိတဲ့ Data တွေ၊ Structure ကျတဲ့ Data တွေ၊ Structure အနည်းငယ်ကျတဲ့ Data တွေကို မြန်ဆန်စွာ၊ စီမံခန့်ခွဲလုပ်ဆောင်နိုင်တာပဲဖြစ်ပါတယ်။  MongoDB ကို ဒီနေရာမှာ Download လုပ်လို့ရပါတယ်။

DataMelt
DataMelt ဆိုတာ Data တွေကို အလွယ်တကူ၊ သိသာ၊ မြင်သာအောင် Charts/Graph တွေနှင့် ဖေါ်ပြတဲ့အခါမှာ အသုံးပြုနိုင်တဲ့ Free Software တစ်ခုဖြစ်ပါတယ်။  ဒီနေရာကနေ Download လုပ်လို့ရပါတယ်။

Big Data နှင့်သက်ဆိုင်တဲ့ အခြား Tool တွေ Solution တွေအများကြီးရှိပါသေးတယ်။

အခြားလေ့လာနိုင်တဲ့ Link တွေကတော့...
Hadoop နှင့် အခြား Framework များနှိုင်းယှဉ်ခြင်း
NoSQL နှင့် RDMS ခြားနားပုံ
DataBase Engine တွေရဲ့ Ranking
Google ရဲ့ BigQuery (Big Data မှာ Query တွေလုပ်ရင် ဘယ်လောက်မြန်လည်းဆိုတာ ဒီနေရာမှာ စမ်းလို့ရတယ်။   စမ်းကြည့်ဖို့ Public Dataset တွေပေးထားတယ်။  Google Account တော့ရှိဖို့လိုပါတယ်။)
Open Dataset
(Free Data တွေကို အောက်ပါ Link တွေကရနိုင်တယ်။ ကျောင်း Project အတွက်ပဲဖြစ်ဖြစ်၊ Big Data ကိုစမ်းဖို့ပဲဖြစ်ဖြစ်၊ အသုံးပြုနိုင်ပါတယ်။)
Kaggle
GroupLens

Jan 7, 2017

Git၊ GitHub နှင့် SourceTree ဆိုတာဘာတွေလဲ။

sagaing
Git ဆိုတာ Project တစ်ခုမှာ ရေးသားထားတဲ့ Source Code တွေကို စိစစ်တည်းဖြတ်တဲ့အလုပ်ကို လုပ်နိုင်တဲ့ Software စနစ်တစ်ခုပဲ ဖြစ်ပါတယ်။ Version Control System (VCS) လို့လည်းခေါ်ကြတယ်။ Git ကို Software Development လုပ်သည့် အဖွဲ့အစည်းအများစု အသုံးပြုကြပြီး၊ စွမ်းဆောင်ရည်နှင့် လုံခြုံရေးပိုင်းဆိုင်ရာမှာ အခြားစနစ်တွေဖြစ်တဲ့ Apache Subversion (SVN), Concurrent Versions System (CVS) တို့နှင့်နှိုင်းယဉ်ရင် အားသာချက်တွေအများကြီးရှိတဲ့ Open Source စနစ်တစ်ခုဖြစ်တယ်။ သို့သော် Git မဟုတ်တဲ့ အခြားစနစ်ကို သုံးဖူးတဲ့သူက Git ကိုပြောင်းသုံးခဲ့ရင်၊ ဒါမှမဟုတ် Git ကို အခုမှ စသုံးတယ်ဆိုရင် အစပိုင်းမှာ အနည်းငယ်ခက်ကောင်း ခက်နိုင်ပါတယ် (ဂစ်!) :D ။ Development Team တစ်ခုမှာ Software တွေ Develop လုပ်ကြတဲ့အခါ၊ ဘယ် Developer တွေက Source Code ကို ဘယ်လိုတွေရေးခဲ့တယ်၊ Logic တွေမှားနေလား၊ မလိုအပ်တာတွေပါနေလား၊ Code Standard နှင့် ကိုက်ညီမှုရှိရဲ့လား၊ မရှိဘူးလား စတာတွေကို Git ကနေပြန်ကြည့်ပြီး Source Code တွေကို စိစစ်နိုင်တယ်၊ တည်းဖြတ်နိုင်တယ်။ Developer တစ်ယောက်ရေးထားတဲ့ Code နှင့် အခြား Developer တစ်ယောက်ရေးထားတဲ့ Code တွေကို ပေါင်းစည်းတဲ့အလုပ် (Merge) လုပ်နိုင်တယ်။ Developer တစ်ယောက်ရေးထားတဲ့ Code အချို့က အခြား Developer တစ်ယောက်အတွက် အသုံးဝင်နေခဲ့မယ်၊ ဒါမှမဟုတ် အခြား Project တစ်ခုအတွက် အသုံးဝင်နေခဲ့မယ်ဆိုရင် အဲ့ဒီ Code အချို့ကို လိုအပ်တဲ့နေရာအတွက် ရွေးချယ်၊ ပေါင်းထည့်နိုင်တဲ့အလုပ် (Cherry Pick) လုပ်နိုင်တယ်။ ဒီအလုပ်တွေလုပ်နိုင်ဖို့ Developer တွေက မိမိတို့ရေးပြီးတဲ့ Code တွေကို Git ထဲမှာ သိမ်းဆည်းတဲ့အလုပ် (Commit) လုပ်ခဲ့ဖို့လိုမယ်။  Commit လုပ်တယ်ဆိုတာ Local Repository ထဲမှာ သိမ်းဆည်းတဲ့ အလုပ်ကို လုပ်တာဖြစ်ပါတယ်။ Repository ဆိုတာ မိမိလက်ရှိ အလုပ်လုပ်နေတဲ့ Project က File တွေ၊ Folder တွေနှင့်အတူ ဘယ်ဖိုင်ရဲ့ Source Code တွေမှာ၊ ဘာတွေ ပြင်ခဲ့တယ်၊ ဖျက်ခဲ့တယ်၊ လုပ်ခဲ့တယ် စတဲ့ လုပ်ဆောင်ချက်တွေကိုပါ သိမ်းဆည်းပေးထားတဲ့ နေရာတစ်ခုကို ပြောတာဖြစ်ပါတယ်။  Commit လုပ်ပြီးရင် Push လုပ်ရတယ်။  Push လုပ်တယ်ဆိုတာက Local Repository မှာလုပ်ထားတဲ့အတိုင်း Remote Repository မှာပါ လုပ်ခိုင်းတဲ့ သဘောကို ပြောတာဖြစ်ပါတယ်။  Remote Repository ဆိုတာ Server ထဲမှာရှိတဲ့ Repository ကိုပြောတာဖြစ်ပါတယ်။ ဒါတွေက Git အသုံးပြုတဲ့အခါမှာ အခြေခံအားဖြင့် ကြုံတွေ့ရမယ့် အခေါ်အဝေါ်အချို့ ဖြစ်ပါတယ်။ ပုံမှန်အားဖြင့် Git မှာ အဲ့ဒီအလုပ်တွေ လုပ်ဆောင်နိုင်ဖို့ ငြီးငွေ့ဖွယ်ကောင်းတဲ့ Command Line တွေဖြင့်သာ အသုံးပြုနိုင်ပါတယ်။ တချို့ Developer တွေက Command Line အသုံးပြုရတာကို သဘောကျ၊ နှစ်သက်လေ့ ရှိပါတယ်။  Command Line နှင့် Git ကိုဘယ်လို အသုံးပြုတာလည်းဆိုတာ နမူနာအနေနှင့် ဒီမှာ လေ့လာနိုင်ပါတယ်။  အဲ့ဒါကိုလေ့လာပြီးသွားရင် Git အခြေခံသဘောတရား နားလည်သွားပါလိမ့်မယ်။  အသေးစိတ်ကို လေ့လာချင်ရင်တော့ ဒီနေရာမှာ လေ့လာနိုင်ပါတယ်။ Git ကို Install လုပ်ချင်ရင် ဒီနေရာက Download ချလို့ရပါတယ်။ Git ကို Command Lin အနေနှင့် အသုံးမပြုချင်ဘူးဆိုရင် Git GUI (Graphical User Interface) Client တွေနှင့် အသုံးပြုနိုင်ပါတယ်။ Git GUI တွေကို ဒီနေရာ မှာ Download ချနိုင်ပါတယ်။  တချို့ GUI တွေကတွေက ပိုက်ဆံပေးရပြီး၊ တချို့ကတော့ Free ဖြစ်ပါတယ်။

GitHub ဆိုတာဘာလည်း။

GitHub ဆိုတာ Git Repository တွေကို Hosting လုပ်ပေးတဲ့ Website တစ်ခုဖြစ်ပြီး၊ Repository တွေကို Management လုပ်တဲ့စနစ်တစ်ခုဖြစ်ပါတယ်။ Open Source (သို့) Public Project တွေအတွက် Code Hosting ကို Free အသုံးပြုနိုင်ပြီး၊ Private Project တွေအတွက်ကိုတော့ အနည်းဆုံး ၁လကို ၇ဒေါ်လာမှ စပြီးပေးချေရပါတယ်။  GitHub ထဲက အခြားသူတွေရဲ့ Open Source Project တွေမှာ Register လုပ်ပြီး ပါဝင်ကူညီ အားဖြည့်ပေးနိုင်ပါတယ်။  GitHub မှာ GitHub Desktop ဆိုတာရှိပါတယ်။  အဲ့ဒီ GitHub Desktop ကသုံးရတာရိုးရှင်း၊ လွယ်ကူတဲ့ Git GUI Client တစ်ခုဖြစ်ပါတယ်။  ဒီနေရာမှာ Download ချနိုင်ပါတယ်။  အကယ်၍ မိမိမှာရှိတဲ့ Project တစ်ခုကို Public Project အနေနှင့် GitHub ထဲမှာ Hosting လုပ်ထားချင်တယ်ဆိုရင်၊ အောက်ပါအတိုင်း အဆင့်ဆင့် လုပ်ဆောင်ရပါမယ်။

၁) GitHub မှာ Account Register လုပ်ပါ။
၂) ပြီးရင် GitHub Desktop ကို Download ချပြီး မိမိစက်ထဲမှာ Install လုပ်ပါ။
၃) Install လုပ်ပြီးလို့ GitHub Client ကိုဖွင့်လိုက်ရင် GitHub Account နှင့် Login လုပ်ပေးပါ။  Login လုပ်လိုက်ရင် GitHub ကနေ အောက်ပါ နမူနာ Message ပါတဲ့ Email တစ်ခုပို့ပေးပါလိမ့်မယ်။  အဲ့ဒါက Secure Socket Shell Key နှင့် ပတ်သက်တဲ့ အချက်အလက်တွေဖြစ်ပါတယ်။  မိမိစက်ထဲက File တွေကို GitHub ထဲ Upload လုပ်တဲ့အခါမှာ Secure ဖြစ်အောင်လုပ်ပေးတဲ့ Key တစ်ခုဖြစ်ပါတယ်။

The following SSH key was added to your account:

GitHub Desktop - DESKTOP-GFEQ3ER
6b:c0:b9:23:f5:a8:51:a7:e9:1b:e8:f8:37:90:01:5d

If you believe this key was added in error, you can remove the key and disable
access at the following location:

https://github.com/settings/keys

၄) Login လုပ်ပြီးသွားရင် Project Repository တစ်ခုထည့်ဖို့ရန်အတွက်၊  အောက်ပါအတိုင်း မြင်တွေ့ရလိမ့်မယ်။
မိမိစက်ထဲမှာရှိတဲ့ Project ကို Repository အဖြစ် Git ထဲမှာထည့်ချင်ရင် Add နှင့်ထည့်တယ်။  ဒါမှမဟုတ် သီးသန့် Repository တစ်ခုသတ်မှတ်ပြီး၊ နောက်မှ Project ထည့်မယ်ဆိုရင် Create နှင့်သတ်မှတ်တယ်။နောက်တစ်ခုက မိမိရဲ့ GitHub Account ထဲက Repository ကို Desktop ထဲမှာ Clone အနေနှင့်လှမ်းယူပြီး၊ သိမ်းဆည်းတာဖြစ်တယ်။ Git မှာ Repository တစ်ခုသတ်မှတ်ပြီးရင် သူ့အောက်မှာ Branch တွေထပ်ခွဲလို့ရပါတယ်။  Master က Default Branch ဖြစ်ပြီး၊ Project တစ်ခုမှာ Feature အသစ်တွေထည့်မယ်ဆိုရင် Branch ခွဲမယ်၊ ပြီးရင်အဲ့ဒီ Branch မှာ Develop လုပ်မယ်၊ ပြီးရင် Master Branch ထဲကို Merge လုပ်မယ် စသည်ဖြင့် လုပ်ဆောင်နိုင်ပါတယ်။ နောက်တစ်ပုံက Visual Studio ထဲမှာ Code ကိုပြင်လိုက်တယ်၊ အဲ့ဒါကြောင့် Project Repository မှာ Code ကိုပြင်ထားတဲ့အခြေအနေကို မြင်ရတာဖြစ်ပါတယ်။ ပြင်ထားပေမယ့်လည်း Commit မလုပ်ရသေးတဲ့ အခြေအနေဖြစ်ပါတယ်။

ပြင်ထားတဲ့ Code မှာ အနီရောင်က ပြင်လိုက်တဲ့ Line ဖြစ်ပြီး အစိမ်းရောင်က ဘာကို၊ ဘယ်လိုပြင်လိုက်တာလည်းဆိုတာပြတာဖြစ်တယ်။  အကယ်၍ Developer အနေနှင့် Commit လုပ်မယ်ဆိုရင် Summary နှင့် Description မှာ ဘာကြောင့်ပြင်တယ်၊ ဘာအတွက်ပြင်တယ်၊ စသည့် အကြောင်းအရာတွေကို ရေးပြီး အဲ့ဒီအောက်က Commit to Version 1.0 ကို Click နှိပ်ပြီး Commit လုပ်ရမှာဖြစ်ပါတယ်။  Version 1.0 ဆိုတာ Master Branch ကနေ သီးသန့်ခွဲထုတ်ထားတဲ့ Branch တစ်ခုဖြစ်ပါတယ်။  Commit လုပ်ပြီးသွားရင် Branch နှစ်ခုရဲ့ ခြားနားချက်ကို အောက်မှာပြထားတဲ့ နေရာကနေ History ထဲမှာကြည့်နိုင်ပါတယ်။

နောက်ပြီးမိမိဖွင့်ချင်တဲ့ Branch ကိုရွေးပြီး Visual Studio ကို Click နှိပ်ပြီးဖွင့်လို့ရပါတယ်။ Developer တွေအနေနှင့် Unit Testing လုပ်ပြီးမှသာလျှင် Commit လုပ်လေ့ရှိပါတယ်။ Commit လုပ်ပြီးမှ Error တစ်ခုခုတွေ့လို့ပဲဖြစ်ဖြစ်၊ အကြောင်းတစ်ခုခုကြောင့်ပဲဖြစ်ဖြစ် အဲ့ဒီ Commit လုပ်ထားတာကို Cancel လုပ်လို့ရပါတယ်။  Cancel လုပ်တာကို Revert လို့ခေါ်ပါတယ်။  အကယ်၍  GitHub ရဲ့ Remote Repository ထဲကို ပို့ချင်တယ်ဆိုရင် Publish လုပ်ပေးရပါတယ်။  Git ကို Command Line အနေနှင့်အသုံးပြုချင်တယ်ဆိုရင် Settings ထဲက Open in Git Shell မှာ အသုံးပြုနိုင်ပါတယ်။ အောက်ကပုံကတော့ Git Shell Window ပုံ ဖြစ်ပါတယ်။  ဒါတွေကတော့ GitHub နှင့် GitHub GUI Client ရဲ့ အခြေခံ အသုံးပြုပုံတွေဖြစ်ပါတယ်။

SourceTree ဆိုတာဘာလည်း။
Git GUI တွေထဲမှာ SourceTree ဆိုတာ Free Git GUI Client Software တစ်ခုဖြစ်ပြီး ကျွန်တော်လည်း လက်ရှိအသုံးပြုနေပါတယ်။ SourceTree ဟာ GitHub Desktop နှင့် နှိုင်းယှဉ်မယ်ဆိုရင် လုပ်ဆောင်ချက်တွေပိုမိုပါဝင်ပြီး၊ Git Command Line အသုံးပြုမှုနည်းအောင် ဖန်တီးထားတဲ့ Git GUI Client တစ်ခုဖြစ်ပါတယ်။  GitHub မှာ Hosting လုပ်ထားတဲ့ Repository ကို  SourceTree ကနေ Clone Repository လုပ်ပြီးအသုံးပြုနိုင်ပါတယ်။  SourceTree ကို Enterprise Software တွေထုတ်တဲ့ Atlassian ကုမ္ပဏီက ဖန်တီးထားတာဖြစ်ပြီး၊ အခြားနာမည်ကြီးတဲ့နောက်ထပ် Product တစ်ခုက JIRA ပဲဖြစ်ပါတယ်။  JIRA ဆိုတာ Project Management စနစ်တစ်ခုဖြစ်ပြီး၊ Agile ပုံစံဖြင့် Software Development လုပ်တဲ့ ကုမ္ပဏီတွေ အသုံးပြုပါတယ်။ JIRA ကိုအသုံးပြုဖို့ တစ်လကို အနည်းဆုံး ၁၀ ဒေါ်လာဖြင့် User ၁၀ ယောက်ထိ အသုံးပြုနိုင်တဲ့ Plan ကစပြီးရှိပါတယ်။  Atlasian မှာ GitHub ကဲ့သို့သော Git Repository တွေကို Hosting လုပ်ပေးတဲ့ စနစ်ရှိပါတယ်။ အဲ့ဒီ စနစ်ကို Bitbucket လို့ခေါ်ပါတယ်။  Bitbucket ကို အသုံးပြုမယ်ဆိုရင် User ၅ယောက်အထိကို Free သုံးခွင့်ပြုထားပြီး၊ ၅ယောက်အထက်ဆိုရင်တော့ တစ်လကို ၁၀ဒေါ်လာ ကျသင့်မှာဖြစ်ပါတယ်။  Bitbucket ကိုအသုံးပြုမယ်ဆိုရင် ဒီနေရာမှာ Register လုပ်ပြီး SourceTree Client ကနေအသုံးပြုလို့ရပါတယ်။ SourceTree ကိုအသုံးပြုဖို့ အရင်ဆုံး ဒီနေရာက Download ချပြီး Install လုပ်ရပါမယ်။ (မှတ်ချက်။ အကယ်၍ မိမိစက်ထဲမှာ Git ကိုသီးသန့် Install လုပ်ထားပြီးသား ဖြစ်နေခဲ့မယ်ဆိုရင်၊ အဲ့ဒီ Git ကို SourceTree မှာပြန်သုံးလို့ရပါတယ်။  အဲ့ဒီလို ပြန်သုံးချင်တယ်ဆိုရင် Tools ရဲ့ Options ထဲမှာ Git ဆိုတဲ့ Tab ရှိတယ်။  အဲ့ဒီမှာ Embedded Git လား System Git လားဆိုတာ ရွေးပေးရမှာဖြစ်ပါတယ်။) အကယ်၍ GitHub က Repository ကို SourceTree Client မှာအသုံးပြုချင်တယ်ဆိုရင်၊ အောက်ပါအတိုင်း အဆင့်ဆင့် လုပ်ဆောင်ရပါမယ်။

၁) Clone / New ကို Click နှိပ်ပါ အောက်ဖေါ်ပြပါ အတိုင်းထွက်လာပါလိမ့်မယ်။
ဒီ Window ရဲ့ လုပ်ဆောင်ချက်တွေက GitHub Desktop Window နှင့်တူပါတယ်။
၂) Clone Repository ကိုရွေးထားပြီး၊ Source Path / URL မှာ GitHub ထဲက Repository ရဲ့ URL ကိုထည့်ပေးရမှာဖြစ်ပါတယ်။  အဲ့ဒီ URL ကိုရဖို့ GitHub ထဲကို Login လုပ်ရမယ်။ ပြီးရင် Repository တစ်ခုကိုရွေးလိုက်ရင် အောက်ပါအတိုင်း မြင်တွေ့ရပါလိမ့်မယ်။

Repository ထဲမှာ HTTPS နှင့် SSH ဆိုပြီး ၂ခု တွေ့လိမ့်မယ်။  SSH ကိုသုံးမယ်ဆိုရင် အနည်းငယ်အလုပ်ရှုပ်တဲ့အတွက် HTTPS ကိုပဲသုံးလိုက်မယ်။  အဲ့ဒီတော့ HTTPS URL ကို Copy ကူးပြီး SourceTree ထဲကို ထည့်လိုက်မယ်။  ပြီးရင် Clone ကို Click နှိပ်လိုက်ရင် Local Repository တစ်ခုစက်ထဲကို ရောက်လာလိမ့်မယ်။

အဲ့ဒီ Repository မှာ GitHub Desktop ကဲ့သို့ပဲ Master Branch ကို အလိုလျှောက် ဖန်တီးထားပေးလိမ့်မယ်။ Branch တစ်ခုထပ်ခွဲချင်ရင် Branch ကိုသွားပြီး Branch Name ပေးမယ်၊ ပြီးရင် Create Branch ကို Click နှိပ်လိုက်ရင် Branch တစ်ခုရလာပါလိမ့်မယ်။  Branch ၂ခုခွဲထားပုံကို အောက်ပါအတိုင်း SourceTree မှာမြင်တွေ့ရမှာ ဖြစ်ပါတယ်။  လက်ရှိရွေးချယ်ထားတဲ့ Branch က Version 1.0 ဆိုတဲ့ Branch ဖြစ်ပါတယ်။
အကယ်၍ Visual Studio ထဲမှာ Code အချို့ကို ပြင်လိုက်တယ်ဆိုရင် အောက်ပါအတိုင်း မြင်တွေ့ရမှာဖြစ်ပါတယ်။ ဒါကတော့ Commit မလုပ်ခင် အခြေအနေဖြစ်ပါတယ်။
Commit လုပ်မယ်ဆိုရင် Stage All ကို Click နှိပ်ပြီး၊ အောက်မှာ ဘာကြောင့်ပြင်တယ်ဆိုတာ ထည့်မယ်၊ ပြီးတာနှင့် Commit လုပ်လိုက်မယ်။  ပြီးရင် Log/History ထဲဝင်ကြည့်ရင် အောက်ပါအတိုင်း မြင်တွေ့ရပါလိမ့်မယ်။
ဒီအဆင့်ထိက Local Repository ထဲမှာပဲ ရှိပါသေးတယ်။  အဲ့ဒီတော့ Remote Repository ထဲကို ထည့်ချင်တယ်ဆိုရင် Push လုပ်ပေးရမယ်။  Push ကို နှိပ်လိုက်ရင် အောက်ပါအတိုင်း မြင်တွေ့ရပါလိမ့်မယ်။
ပြီးရင် Push လုပ်ချင်တဲ့ Branch ကိုရွေးပြီး Push ကို Click နှိပ်ရပါမယ်။  အဲ့ဒါတွေပြီးသွားရင်တော့ Remote Repository ဖြစ်တဲ့ GitHub ထဲက Repository နှင့် Local Repository အတူတူဖြစ်သွားပါလိမ့်မယ်။ GitHub ထဲမှာ Login လုပ်ပြီး၊ ဝင်ကြည့်ရင် အောက်ပါအတိုင်း မြင်တွေ့ရပါလိမ့်မယ်။
Branch ၂ခုရှိမယ်။  အဲ့ဒီ Branch နှစ်ခုကို Compare & Pull Request လုပ်ကြည့်မယ်ဆိုရင် အောက်ပါအတိုင်း တွေ့ရမှာဖြစ်တယ်။
Files Changed ကိုဝင်ကြည့်ရင် ဘယ်ဖိုင်မှာ ဘာတွေပြင်ထားတယ်ဆိုတာ တွေ့ရပါလိမ့်မယ်။  ဒီ Post ကိုဖတ်ပြီး၊ Git နှင့် GUI Client တွေရဲ့ လုပ်ဆောင်ချက်ကို အခြေခံနားလည်သဘောပေါက်မယ်လို့ ယူဆပါတယ်။

Jan 2, 2017

Agile နှင့် Scrum ဆိုတာဘာလဲ။

sagaing
အရင်က Software Development နှင့်ပတ်သက်တဲ့ Waterfall, Spiral, Iterative, V Model စသည့်ဖြင့် Model တွေအများကြီး ကျွန်တော်ကြားဖူးခဲ့တယ်။  သင်ယူဖူးခဲ့တယ်။  နောက်တော့ အလုပ်ထဲရောက်တဲ့အခါမှာလည်း Waterfall Model ဆန်ဆန်သာသုံးခဲ့ဘူးတယ်။  အခု Agile Model ဖြစ်တဲ့ Scrum နှင့် အလုပ်လုပ်နေရတယ်။ Software Development လုပ်တဲ့ ကုမ္ပဏီအများစုကြားမှာ Agile နှင့် Scrum အကြောင်းဟာ လူပြောများပြီး နာမည်ကြီးပါတယ်။ အဲ့ဒါကြောင့် Agile နှင့် Scrum အကြောင်းကို လေ့လာထားသလောက် မှတ်သားထားတာလေးပါ။ Agile ရဲ့ အဓိပ္ပါယ်က လျှင်မြန်၊ သွက်လက်၊ ပေါ့ပါးတာကို ပြောတာဖြစ်ပါတယ်။ Software Development မှာတော့ တူညီတဲ့ Framework အမျိုးအစားတွေကို ဘုံစကားလုံးတစ်ခုတည်းဖြင့် သတ်မှတ်ထားတဲ့ အခေါ်အဝေါ် (Umbrella Term) တစ်ခုဖြစ်ပါတယ်။ တကယ်တော့ Agile ဆိုတာ Model တစ်ခုသာဖြစ်ပြီး Iterative နှင့် Incremental Build Model တွေကိုအခြေခံထားတယ်။ Software Development လုပ်တဲ့အခါမှာ Agile နည်းဆိုတာ Quality Product တစ်ခုဖြစ်အောင် အချိန်နှင့်လုပ်ဆောင်ရမယ့် အလုပ်တွေကို စီမံခန့်ခွဲ၊ လုပ်ဆောင်တဲ့ Model ပဲဖြစ်တယ်။ နောက်ပြီးအခြား Model တွေလို တဆင့်ပြီးမှ၊ နောက်တဆင့်မလုပ်ပဲ Project တစ်ခုမှာလုပ်ရမယ့် Requirements တွေနှင့် Obstacle (အတားအဆီး) ဖြစ်နေတဲ့အရာတွေအတွက်၊ Solutions တွေကို ဘယ်နေရာတွေက ရရှိနိုင်လည်း၊ ရရှိနိုင်တဲ့ အဖွဲ့တွေနှင့် အတူတကွ၊ ပူးပေါင်းလုပ်ဆောင်ပြီး Project တစ်ခုကို တဆင့်ပြီး၊ တစ်ဆင့် ရုပ်လုံးပေါ်အောင် လုပ်ဆောင်တယ်။ အဲ့ဒီလိုနှင့် Customer လက်ထဲထည့်နိုင်တဲ့ Quality Product တစ်ခုဖြစ်လာအောင် ဆောင်ရွက်တဲ့ Model တစ်ခုဖြစ်တယ်။  Product ကို မြန်ဆန်စွာထုတ်နိုင်ဖို့၊ Customer စိတ်ကျေနပ်မှုရှိဖို့နှင့် Project ရဲ့ ဦးစားပေးမှုပေါ်မူတည်ပြီး အလိုက်သင့် ပြောင်းလဲလုပ်ဆောင်ဖို့ စသည့်အချက်တွေဖြင့် Project တွေကို Development လုပ်တဲ့ Model တစ်ခုဖြစ်တယ်။  Agile နှင့် မည်သည့် Software Development Process ပဲလုပ်လုပ် Agile ကထုတ်ပြန်ထားတဲ့ မူဝါဒကြော်ငြာစာတမ်းအတိုင်း ကိုးကားလိုက်နာပြီး လုပ်ဆောင်သင့်ပါတယ်။  Agile မူဝါဒကြော်ငြာစာတမ်းကို ဒီမှာ လေ့လာနိုင်ပါတယ်။
Agile Model ဖြင့် လုပ်ငန်းတွေ၊ ပြီးမြောက်အောင် လုပ်ဆောင်တဲ့ Framework တစ်ခုဖြစ်တယ်။  Scrum မှာ အဓိက အစုအဖွဲ့ ၃ခုနှင့် ဖွဲ့စည်းထားတယ်။  အဲ့ဒါတွေက....

  1. Product Owner (လုပ်ဆောင်စရာရှိနေတဲ့ အလုပ်တွေကို ဦးစားပေးသတ်မှတ်ပေးတဲ့လူဖြစ်တယ်။ အဲ့ဒီ အလုပ်တွေကို Product Backlog (အလုပ်ကြွေး) လို့ခေါ်တယ်။)
  2. Scrum Master (ဦးစားပေးသတ်မှတ်ထားတဲ့ အလုပ်တွေကိုခွဲခြမ်းတယ် ပြီးရင် သင့်တော်တဲ့သူကို တာဝန်ခွဲဝေပေးသူ ဖြစ်တယ်။)
  3. Development Team (တာဝန်ခွဲဝေပေးခံရတဲ့ အလုပ်တွေကို ပြီးမြောက်အောင် လုပ်ဆောင်ပေးသူဖြစ်တယ်။)
တို့ပဲဖြစ်တယ်။ Scrum မှာ Product Backlog တွေကို Sprint Planning လုပ်ပြီး၊ ဦးစားပေးလုပ်ဆောင်ရမယ့် အလုပ်တွေသတ်မှတ်တယ်၊ ပြီးရင် Sprint Backlog အနေနှင့်သတ်မှတ်ပြီး Sprint တစ်ခုကို စတင် ကြတယ်။ Sprint Planning ကို Team တွေအကုန်ပါဝင်ပြီး လုပ်ဆောင်ကြပါတယ်။  Sprint ဆိုတာ Development Cycle ကိုခေါ်တာဖြစ်တယ်။  Sprint တစ်ခုမှာ အချိန်ကန့်သတ်မှုရှိတယ်။ ဥပမာ ၂ပတ်၊ ၄ပတ် စသည့်ဖြင့် အချိန်ကန့်သတ်မှု ပြုလုပ်ထားတယ်။ Scrum Master နှင့် Development Team ဟာ Sprint တစ်ခုကို သတ်မှတ်ထားတဲ့ အချိန်မှာပြီးစီးဖို့ပဲ ဦးတည်ချက်ထားတယ်။ Sprint တစ်ခုထဲမှာ Scrum Master နှင့် Development Team တို့ဟာ နေ့စဉ် Scrum Meeting ကို ၁၅မိနစ်ခန့် ပြုလုပ်ကြတယ်။ အဲ့ဒီ Meeting မှာ လက်ရှိလုပ်နေတဲ့ အလုပ်၊ နောက်ထပ်ကျန်ရှိတဲ့ အလုပ်၊ ခက်ခဲနေတဲ့ သို့မဟုတ် အတားအဆီးဖြစ်နေတဲ့ အလုပ်တွေကို ဆွေးနွေးကြတယ်။ Sprint တစ်ခုပြီးသွားရင် လုပ်ခဲ့တဲ့အလုပ်တွေကို Sprint Review လုပ်တယ်၊ တချို့အလုပ်တွေဟာ Sprint ထဲမှာလုပ်နေရင်း အကြောင်းတစ်ခုခုကြောင့် ယခု Sprint မှာ မပြီးခဲ့ဘူးဆိုရင် နောက် Sprint ရဲ့ Sprint Planning ထဲထည့်တယ်။ နောက်ပြီး Product ကိုပိုကောင်းလာစေမယ့် Idea တွေရှိခဲ့မယ်ဆိုရင်လည်း၊ နောက် Sprint ရဲ့  Product Backlog (သို့) Sprint Planning ထဲထည့်တယ်။  Sprint တစ်ခုပြီးသွားရင် အဲ့ဒီ Sprint ကို ယခင်ပြီးခဲ့တဲ့ Sprint တွေကအလုပ်တွေနှင့်အတူ Product ထဲကိုပေါင်းထည့်တယ်။ ပြီးမှနောက် Sprint တစ်ခုကို ဆက်သွားတယ်။ အဲ့လိုနှင့် Sprint တစ်ခုပြီးတစ်ခု ဆက်ခါဆက်ခါ ဆောင်ရွက်ရင်း Product ကို တဖြည်းဖြည်း ရုပ်လုံးပေါ်အောင် လုပ်ဆောင်ကြပါတယ်။ Development Team ဆိုတာ Developer တွေချည်းမဟုတ်ပါဘူး။ အခြား Role တွေဖြစ်တဲ့ QA (Quality Assurance) တွေ၊ Business Analyst တွေလည်းပါဝင်နိုင်ပါတယ်။ Project Manager လည်း Scrum ထဲမှာပါဝင်နိုင်ပါတယ်။ အဖွဲ့အစည်းရဲ့ လိုအပ်ချက်၊ လုပ်ဆောင်ချက်ပေါ်မူတည်ပြီး သက်ဆိုင်ရာ Role တွေရဲ့ပါဝင်မှုက ခြားနားနိုင်ပါတယ်။

Agile Model ဖြင့် Software Development လုပ်တဲ့ အခြား Framework တွေလည်းရှိပါတယ်။  ဥပမာ

နောက်ထပ် Wiki ထဲမှာ အများကြီးရှိပါသေးတယ်။ Agile Scrum ကို IT Industry မှာတင်မဟုတ်ပါဘူး၊ အြခား Industry တွေမှာလည်း အသုံးပြုကြပါတယ်။ Scrum နှင့်ပတ်သက်ပြီး သူ့ရဲ့ Official Website မှာလည်း လေ့လာနိုင်ပါတယ်။




ကိုစစ်ကိုင်း၏ မှတ်စုများ. Powered by Blogger.