Thursday, October 1, 2009

Software Engineering ဆိုတဲ့အေႀကာင္း

Software Engineering ဆိုတဲ့အေႀကာင္းကိုကၽႊန္ေတာ္ေတြ ့မိသေလာက္ေျပာျပပါ
ရေစ
Software Engineeringဆိုတဲ့
Role and responsibility ကိုေျပာရင္ အေျခခံအားျဖင့္ ဒီသုံးခုရွိမယ္
(@) Programmer
(@) Software Engineer
(@) Analyst ( or) Architect


Programmer

လြယ္လြယ္ေျပာရင္ သူက Coder ပါ။ Language တစ္ခုခုကို ကြၽမ္းက်င္ပိုင္ႏိုင္ဖို႕လိုပါတယ္။ သူအတြက္ Business Logic ေကာင္းဖို႕မလိုပါဘူး။ ေပးလာတဲ့ module ကို ေျပာတဲ့အတိုင္းလုပ္ႏိုင္ရပါမယ္။ Architect တို႕ Senior တို႕ကေပးတဲ့ Functional spec , Design spec ေတြၾကည့္ျပီး သူတို႕ေျပာတာလုပ္ေပးရုံပါပဲ။ ဒီ button ကိုႏွိပ္ရင္ Database မွာ ဒါေတြ update လုပ္မယ္ဆိုရင္ အဲဒီအတိုင္းျဖစ္ရင္ သူတာဝန္ေက်ပါျပီ။ တစ္ျခား Form ေတြမွာဘာျဖစ္မလည္းတို႕ ေနာက္ဆက္တြဲေတြက သူ႕ဂ႐ုမစိုက္လို႕ရပါတယ္။

Language တစ္ခုခု ကြၽမ္းက်င္ရပါမယ္။ Communication ေကာင္းဖို႕လိုအပ္ပါတယ္။ ေျပာတာနားမလည္လို႕ တလြဲေတြလုပ္တာမ်ိဳးျဖစ္ရင္ မေကာင္းပါဘူး။ Diploma holder ေတြရဲ့ starting point ျဖစ္ေလ့ရွိပါတယ္။ Average diploma holder ေပါ့။ အခ်ိဳ႕ degree holder ေတြလဲ ဒီအဆင့္က စက်တာပါပဲ။

Software Engineer

သူလည္း language တစ္ခုပဲကြၽမ္းက်င္ရင္လည္းရပါတယ္။ Structure ပိုင္းနဲ႕ Business Logic လိုပါတယ္။ Framework ေတြရဲ့အေၾကာင္း အားသာခ်က္ အားနည္းခ်က္ေတြလည္း သိသင့္ပါတယ္။ Junior အတြက္ဆိုရင္ Architech / Senior ေတြေပးတာလိုက္လုပ္ရတယ္ဆိုေပမယ့္ Business logic နားလည္ရပါတယ္။ ဒီလိုလုပ္ရင္ ေနာက္က် ဘယ္လိုျပသနာေလးေတြရွိလာႏိုင္တယ္၊ တျခား module မွာဘယ္လိုျပသနာရွိႏိုင္တယ္၊ Future extension မွာ ဘယ္လိုျဖစ္ႏိုင္တယ္ ဆိုတာေတြ
ထဲ့တြက္တတ္ရပါတယ္။ Programming ပိုင္း ပိုင္ႏိုင္ရသလို Logical thinking ေကာင္းဖို႕လိုအပ္ပါတယ္။ Database structure ေတြ logic ေတြနားလည္ရပါမယ္ ကြၽမ္းက်င္ရပါမယ္။ တျခား development team ေတြ engineer ေတြနဲ႕ closely အလုပ္လုပ္ရပါတယ္။

Software engineering ပိုင္းကိုသြားတဲ့ Academic course ေတြမွာ Business logic / Business administration / Business system အေၾကာင္း subject ေတြ module ေတြထဲ့သင္ေလ့ရွိပါတယ္။ အဲလို graduated ေတြ grading ေကာင္းတဲ့ diploma holder ေတြ၊ experience ရွိခဲ့ျပီးသား Programmer ေတြရဲ့ Position လို႕ေျပာလို႕ရပါတယ္။

Architect

ဒီေနရာကေတာ့ Architect လို႕တတ္ထားေပမယ့္ Project Manager / System Analyze / Technical team lead position ေတြ သိပ္မကြာပါဘူး။
Programming language ေတာ္ေတာ္မ်ားမ်ားသိရပါမယ္။ Language တစ္ခုခ်င္း Framework တစ္ခုခ်င္းရဲ့ အားသာခ်က္ အားနည္းခ်က္ေတြ သိရပါမယ္။ ဘယ္လို Project ဘာနဲ႕ ဘယ္လိုေရးမလည္း ဆုံးျဖတ္ဖို႕ အေတြ႕အၾကံဳေကာင္းေတြ အမ်ားၾကီးလိုပါတယ္။ Database ဆိုလည္း MySQL, MS SQL, Oracle, IBM DB2 အစရွိတျဖင့္ နားလည္တတ္ကြၽမ္းရပါတယ္။

Technical team lead လိုေနရာ Senior software engineer ေတြက technical ပိုင္းပိုကြၽမ္းက်င္ၾကျပီး တစ္ခုခ်င္း အေသးစိပ္နားလည္ၾကပါတယ္။ Logical thinking ေကာင္းက်ေပမယ့္ Technical ပိုင္း coding ပိုင္း ပိုအားသန္က်သူေတြမ်ားပါတယ္။ Architect ေတြ Project Manager ေတြရဲ့ အားကိုးရာ အတိုင္ပင္ခံေတြပါ။

Architech ေတြ Project Manager ေတြက Logical thinking အားသန္က်ပါတယ္။ Technical ပိုင္းကိုလည္း ကြၽမ္းက်င္က်ေပမယ့္ Tech lead ေတြလိုမဟုတ္ပါဘူး။ နည္းနည္း အလွမ္းေဝးေနတယ္။ မသိဘူးမဟုတ္ဖူး ခ်က္ခ်င္းထေရးဖို႕ေတာ့ သိပ္မလြယ္ဘူး။ ဒါေပမယ့္ သူရဲ့ Knowledge ပိုင္ logic ပိုင္းေတြေၾကာင့္ Tech Lead ေတြကလည္း ေလးစားရတဲ့လူေတြပါ။ မေသခ်ာရင္ Tech Lead နဲ႕ ျပန္ confirm လုပ္မယ္။ Customer ေတြရဲ့ ေတာင္ေျပာေျမာက္ေျပာေတြကို Business system ျဖစ္ေအာင္ ပုံေဖာ္သူေတြပါ။

။။။။။။။။။။။.။
ဒီေနရာမွာ ခဏနားရေအာင္ ဗ်ာ။
ကိုယ္က ဘယ္နားေရာက္ေနျပီလည္း ဘာေတြျပင္ဆင္ေနလည္း။ ဘာ အဆင့္မ်ိဳး ျဖစ္ခ်င္လည္း နည္းနည္းသုံးသပ္ၾကည့္ရေအာင္ းP



share by = mysteryzillion.org


Seja o primeiro a comentar

ကိုျမတ္ © 2008. Template by Dicas Blogger.

TOPO