Hello everyone 👋
Today I want to share a bit of knowledge about Software Development. What does it actually mean when people say they do Software Development? First, we need to know what Software is, and what doing Development means 🤔
The meaning of Software is deep and broad. But to keep it short and easy to understand, Software is a collection of programs and instructions (one or many) needed to get a task done on a computer system. It can be used to carry out the computer's instructions and complete the work that needs doing.
To put Development simply, you can think of it as creating and inventing something Step by Step, Maintaining it so it keeps getting better, and simplifying complicated Systems and difficult Workflows ✅
Software Development, roughly speaking, is the Process Life Cycle of creating and Maintaining Software that helps make complicated Systems and difficult Workflows simpler and clearer for the User 💁♂️
Building a piece of Software isn't something you can just throw together on a whim. If you do, once the Software becomes Hybrid, you'll run into trouble in the Maintaining Process.
So once you start Software Development, you need to Plan it out Layer by Layer. That's the only way better Hybrid Software becomes easy to Maintain 👏
Today, out of the many Layers involved in Software Development, I'll walk you through 5 Layers that are worth knowing. These 5 layers are the ones you need to think through before you start Software Development.
Alright, let's take a look 💁♂️
Logic : How Data is analysed and processed?
When Data comes in, this is the Layer where, on your own or as a Group, you do Data Analyst work up front: what is this Data like, where is it used, what's missing and what's extra, and so on, so that the Data ends up accurate.
UI/UX : How is Data presented clearly and in a user-friendly way?
Once you have accurate Data, this is the Layer where you decide how the UI should present it so it feels familiar to Users, and how things should work from a UX point of view so Users find it easy to use.
Database : How and Where Data is stored?
One thing you need to think about ahead of time during Software Development is which Database your accurate Data should live in. When choosing a Database, too much is no good and too little is no good either. Depending on your Data, you should keep it in a Database that fits it just right (MySQL, PostgreSQL, Mongo etc). You could call this the Database Layer, the one you should plan ahead for in the long run.
API : How API is maintained and fetched?
Once you have accurate Data, you need to be able to release Public APIs, depending on which software you want to use them, so they can be used across Multiple Software Development projects. This is the Layer where you think ahead about how to build faster APIs that cut down the Data Currier Time (or) Data Fetched Time when you release them.
Hosting : Where is the software hosted?
Finally, this Layer is where you think about where the Software should live once it's Maintained and ready to go Public, and how to make it easier for Users in each Region, and so on.
Alright, I think that's about enough for today, so I'll say goodbye here. I hope you got something useful out of this 🤍
အားလုံးပဲမင်္ဂလာပါဗျ 👋
ဒီနေ့မှာတော့ Software Development ပိုင်းဆိုင်ရာ Knowledge တစ်ခုကို Sharing ပေးချင်ပါတယ်။ လူအပြောများတဲ့ Software Development လုပ်တယ်ဆိုတာဘာလဲ။ အရင်ဦးဆုံး Software ဆိုတာဘာလဲ။ Development လုပ်တယ်ဆိုတာဘာလဲ ဆိုတာကို သိဖို့လိုအပ်ပါတယ် 🤔
Software ရဲ့ သူရဲ့ အဓိပွာယ်ကနက်ရှိုင်းကျယ်ပြန့်ပါတယ်။ ဒါပေမဲ့ နားလည်လွယ်အောင်တိုတိုနဲ့ လိုရင်းပြောရမယ်ဆိုရင် Software ဆိုတာက ကွန်ပျူတာစနစ်အပေါ်မှာအလုပ်တစ်ခုကို ပြုလုပ်စေနိုင်ဖို့လိုအပ်တဲ့ပရိုဂရမ်နဲ့ ခိုင်းစေချက်တွေကို စုစည်းထားတဲ့ ပရိုဂရမ် အစုအဝေးတစ်ခု (သို့မဟုတ်) အများကိုခေါ်ဆိုတာပါ။ ဒီကွန်ပျုတာရဲ့ ညွှန်ကြားချက်တွေနဲ့လိုအပ်တဲ့လုပ်ငန်းတွေပြီးမြောက်ဖို့အသုံးချလို့ရပါတယ်
Development လုပ်တယ်ဆိုတာက နားလည်လွယ်အောင်ပြောရမယ်ဆိုရင် တစ်ခုခုကို Step by Step ဖန်တီးတီထွင်ခြင်း၊ ပိုကောင်းမွန်အောင် Maintaining လုပ်ခြင်း၊ ရှုပ်ထွေးတဲ့ System တွေ၊ လုပ်ရခက်တဲ့ Workflow တွေကိုလွယ်ကူစေအောင်လျှော့ချခြင်းစသဖြင့်မှတ်ထားလို့ရပါတယ် ✅
Software Development ဆိုတာကတော့ User အတွက် ရှုပ်ထွေးစေတဲ့ System တွေ လုပ်ရခဲ့တဲ့ Workflow တွေအတွက်ပိုမိုလွယ်လွယ်ကူရှင်းလင်းအောင်အထောက်အကူပေးနိုင်တဲ့ Software တွေကို ဖန်တီးဖို့နဲ့ Maintaining လုပ်တဲ့ Process Life Cycle လို့ အကြမ်းအားဖြင့်ခေါ်ဆိုလို့ရပါတယ် 💁♂️
Software တစ်ခုဖြစ်မြောက်အောင်လုပ်ဖို့ဆိုတာကလဲ ထင်ရာမြင်ရာ လက်တန်း တစ်စောင်းကန်းလုပ်လို့မရပါဘူး။ လုပ်ခဲ့ရင်လည်း Software က Hybrid ဖြစ်တဲ့အခါဆိုရင် Maintaining Process တွေမှာအခက်အခဲတွေ့စေမှာပါ
ဆိုတော့ Software Development စလုပ်ပြီးဆိုရင် Layer အလိုက် Planning ချပြီး လုပ်မှသာ ပိုမိုကောင်းမွန်တဲ့ Hybrid Software တွေ Maintain လုပ်ရလွယ်ကူစေမှာဖြစ်ပါတယ် 👏
ဒီနေ့မှာ Software Development လုပ်တဲ့အခါ Layers များကြီး ရှိတဲ့အထဲက သိသင့်သိထိုက်တဲ့Layer (5) ခုကိုပြောပြမှာဖြစ်ပါတယ်။ဒီ layers (5) ခုက Software Development မလုပ်ခင်ကြိုတင်စဉ်းစားရမဲ့ Layers တွေပဲဖြစ်ပါတယ် '
ကဲ ကြည့်လိုက်ရအောင် 💁♂️
Logic : How Data is analysed and processed?
Data အချက်အလက်တွေရလာအခါ ဒီ Data ကဘယ်လိုလဲ၊ Data တွေဘယ်နေရာတွေမှာအသုံးချတာလဲ၊ Data တွေမှာ လိုတာပိုတာတွေကဘာလဲ၊ စသဖြင့် တိကျတဲ့ Data ဖြစ်စေဖို့ ကြိုတင်ပြီးတော့ တစ်ယောက်တည်းဖြစ်စေ Group လိုက်ဖြစ်စေ Data Analyst လုပ်ရတဲ့ Layer ဖြစ်ပါတယ်
UI/UX : How Data is presented clearheaded and user friendly?
တိကျတဲ့ Data တွေရလာတဲ့အခါ အဲဒီ Data တွေကို User တွေအနေနဲ့ ရင်းနီးမှုရှိအောင် UI ဘယ်လိုပြရမလဲ User တွေအနေနဲ့ လုပ်ဆောင်ရလွယ်ကူအောင် UX အရ ဘယ်လိုလုပ်ဆောင်ထားသင့်လဲဆိုတဲ့ Layer ဖြစ်ပါတယ်
Database : How and Where Data is stored?
Software Development လုပ်နေချိန်အတောအတွင်းမှာ ကြိုစဉ်းစားရမဲ့အရာတစ်ခုက တိကျတဲ့ Data တွေကို ဘယ် Database မှာထားသင့်လဲဆိုတာပဲဖြစ်ပါတယ်။ Database တွေရွေးချယ်တဲ့အခါမှာလဲ ပိုရင်လဲမကောင်းသလို လိုရင်လဲမကောင်းပါဘူး။ Data တွေကို မူတည်ပြီး အံ၀င်ဂွင်ကျဖြစ်စေမဲ့ Database (MySQL, PostgreSQL, Mongo etc) မှာတိကျတဲ့ Data တွေကိုထားသင့်ပါတယ်။ ဒီ Layer ကတော့ရေရှည်အတွက်ကြိုတင်စဉ်းစားသင့်တဲ့ Database Layer လို့ဆိုရမှာပေါ့
API : How API is maintained and fetched?
တိကျတဲ့ Data တွေရလာတဲ့အခါ Multiple Software Development တွေမှာသုံးဖို့ ကိုယ်သုံးစေချင်တဲ့ software တွေမူတည်ပြီး Public API တွေထုတ်တတ်စေဖို့လိုအပ်ပါတယ်။ထုတ်တဲ့အခါလဲ Data Currier Time (or) Data Fetched Time ကို လျော့ချတဲ့ ပိုမြန်ဆန်တဲ့ APIတွေ ဘယ်လိုပြုလုပ်သင့်လဲ ကြိုတင်စဉ်းစားရတဲ့ Layer ဖြစ်ပါတယ်
Hosting : Where software is hosting?
နောက်ဆုံးအနေနဲ့ ဒီ Layer မှာကတော့ Software ကို Maintain ပြီးတဲ့အခါ Public ပေါ်တင်ဖို့ ဘယ်မှာ ထားသင့်လဲ၊ ထားတဲ့အခါ Region အလိုက် User တွေအတွက် ပိုလွယ်ကူစေမလဲ စသဖြင့် စဉ်းစားရတဲ့ Layer ပဲဖြစ်ပါတယ်
ကဲ ဒီနေ့ပြောပြသွားတာတွေလည်းလုံလောက်သင့်သလောက်ဖြစ်နေပြီဆိုတော့ဒီမှာပဲနှုတ်ဆက်ချင်ပါတယ်။ အထောက်အကူတစ်ခုခုရသွားမယ်လို့မျှော်လင့်ပါတယ် 🤍

