วันศุกร์ที่ 1 กรกฎาคม พ.ศ. 2554

software engineering VS System Analyst

คำว่า software engineering ในมุมมอง ของประเทศไทย
ยัง สับสนกันมาก เพราะว่ายังขาดความรู้ในศาสตร์ วิศวกรรมซอฟต์แวร์ จึงทำให้มองเหมารวม ทางสังคมว่า software engineering จะออกไปแนว Programmer ซึ่งจริงๆ แล้วไม่ใช่ครับ SE จะเป็น Software Architech and SA ไป ในตัว
ซึ่งถ้าอยู่ในองค์กรที่ได้ มาตรฐาน CMM/CMMI จะทราบดี

ปัจจุบัน SA อาจหมายถึง System Analyst รึไม่ก็ System Architect (อันนี้ไม่ค่อยชัวร์ค่ะ)

แตกต่าง SE ที่หมายถึงSoftware Engineer

ตาม ความเข้าใจนะคะ Software Engineer จะดูแลเรื่อง Detail Design เช่น การ Design Class Diagram และ Sequence Diagram นอกจากนี้ถ้าเป็น SE ระดับ สูงๆ หน่อยก็เป็นพวก Project Management ค่ะ ส่วน System Analyst จะดูเรื่องการเก็บ Requirement ทำพวก Input และ Output ที่ User ต้องการ รวมถึง Business Process ต่างๆ ส่วน System Architect จะดูและภาพรวมของระบบ Environment ของระบบ การ Integrate เข้ากับระบบอื่น

เท่าที่เรียน มา Software Engineering วิชาจะเน้นหนักไปที่ Software Lifecycle, Project Management , Software Quality และ Design Pattern

ส่วน System Analysis จะเน้นพวกการเก็บ Requirement การกำหนด Input Output การ Design Process Flow

และสุดท้าย System Architect ซึ่งยังไม่ค่อยมีเปิดสอน จะเน้นพวก System Integration และความรู้ด้าน Data Communication

แต่ถ้ามอง ปัจจัยในการ พัฒนา Software เป็นหลัก
SA ==> System Analyst จะเป็น ผู้ที่ทำการวิเคราะระบบเป็นหลัก ซึ่งจะ Abstarct มากๆ ก่อน
SE ==> System Engineer นำสิ่งที่ SA วิเคราะห์มา ในเชิง Realize ขึ้น คือเริ่มมองเห็นรูปร่างของ Software นั่นเอง
SAt ==> System architecture เป็นคนออกแบบโครงสร้างของระบบทั้งหมดในเชิง Software คือ ระบุได้ว่า ส่วนไหนพัฒนางานโดยอะไร (Framwork ) รูปแบบไหน

อันนี้ความรู้เพิ่มเติมจากweb อื่นนะคะ

SA ที่หมายถึง System Analyst ยังสามารถแบ่งออกเป็น 2 ประเภทอะครับ (อ้างอิงจากที่เคยเรียนอะนะ)

1.) System Analyst
2.) Bussiness Analyst

ถ้า เป็นลักษณะที่ 1. ก็รู้ Business และเข้าใจ Requirement ในระดับที่สามารถออกแบบระบบ หรือ ส่วนใหญ่กระบวนทางธุรกิจก็มักจะหมายถึง Table ใน Database รวมไปถึงสามารถอธิบาย Business Flow ให้พวก Developer ทำโปรแกรมออกมาให้ตาม Requirement ของลูกค้า
เข้าใจว่างานหลักๆคือเน้น การสร้างระบบจึงต้องมีความรู้ด้าน Program ด้วย ไม่อย่างนั้นจะคุยกะโปรแกรมเมอร์ไม่ค่อยรู้เรื่องเหมือนพูดกันคนละภาษา
แต่คนพวกนี้จึงอาจโดนเกณฑ์ไป coding ถ้าโปรเจคไม่เสร็จ

ถ้า เป็นลักษณะที่ 2. เข้าใจว่าต้องเป็นพวกที่มีประสบการณ์ด้าน Business สูง สามารถวิเคราะห์ข้อมูลหรือ Requirement จากลูกค้าได้ พวกนี้อาจจะต้องหนักด้านการติดต่อกับลูกค้าเป็นหลัก , design table , หน้าจอ เข้าใจ flow งานทั้งหมดแต่อาจจะไม่ต้อง Programming เป็นเลยก็ได้

แต่ ในโลกตวามจริง โปรเจคอาจจะไม่จำเป็นต้องจ้าง SA ที่เป็น 2 แบบนี้พร้อมกันเพราะทำให้ต้นทุนสูงก็เลยจ้างมาคนเดียวแล้วก็รับหน้าที่ทั้ง 2 เรื่องนี้ไปพร้อมๆกัน เพราะ Phase Design มันไม่ได้ต้องทำกันตลอดทั้ง Project และเมื่อ SA วางระบบเสร็จแล้ว ขั้นตอนในการ implement หรือ tuning ระบบให้เข้ากับความต้องการ SA ก็ไม่ต้องทำงานหนักแล้วดังนั้นความรับผิดชอบก็จะตกอยู่ที่การไปคุยกับลูกค้า ว่าระบบโ
อเคไม๊มมากกว่า

อีกอย่างนึงที่มักจะเห็น SA ชอบทำตกไปคือ การให้ความเข้าใจกับลูกค้า SA ควรจะ minimize scope ของงานให้ได้ตาม requirement แต่ไม่ได้ทำให้งานไปตกอยู่ที่ Programmer ทั้งหมด ดังนั้นในขั้นตอนการ design จึงเป็นเรื่องสำคัญว่าจะทำอย่างไรให้ระบบทำงานได้ครบตามความต้องการ และ งานไม่ใหญ่มากนักเพื่อให้ส่งมอบงานได้ตรงเวลาอะครับ (ไม่งั้นอาจเห็น Programmer กับ SA ทะเลาะกันแน่ๆจริงไหมครับ คุณ plynoi)


ส่วน SA ที่เป็น Software/System Architect

เน้น หนักไปที่การ design software / system ให้มี Quality หรือ Best Performance มากกว่าอะครับ แช่นทำอย่างไรโปรแกรมจะทำงานได้เร็ว , โปรแกรมไม่ Error บ่อย , ปรับระบบให้รองรับต่อการเปลี่ยนแปลง ต้องเข้าใจก่อนนะครับว่าในส่วนของ Architect นี้ไม่ได้เกี่ยวข้องกับ Requirement เพราะ Analyst เป็นคน design ให้ตรงกับ Requirement
ดัง นั้นคิดว่าคนเป็น Architect ควรจะมีความรู้ด้าน Design Pattern , Framework เป็นอย่างดี และสามารถประยุกต์เข้ากับระบบที่ Analyst design มา

Requirement แบ่งออกเป็น 2 ส่วน คือ

functional requirement : Analyst ต้องรับตรงนี้ไปหละว่าจะ design กันยังไง

non-function requirement : ตรงนี้ Architect ต้องดูแล

ที่มา : http://blog.eduzones.com/choticmu/17761

นายต้น เหรียญรุ่งเรือง (ต้น)

ไม่มีความคิดเห็น:

แสดงความคิดเห็น

หมายเหตุ: มีเพียงสมาชิกของบล็อกนี้เท่านั้นที่สามารถแสดงความคิดเห็น