Cinecus CC
Published on

Role ในสายงาน Software Development มีอะไรบ้าง ต้องทำงานกับใครบ้าง ?

Overview

วันนี้เราจะมารู้จักตำแหน่งงานแต่ละตำแหน่งในสาย Software Development กันว่ามีอะไรบ้าง และแต่ละฝ่ายทำเกี่ยวกับอะไร ทั้งนี้แต่ละองค์กรก็อาจมีชื่อเรียกตำแหน่ง และหน้าที่ที่ได้รับแตกต่างกันไปบ้างนะครับ โดยผมจะขอแบ่งตำแหน่งออกเป็น 2หมวดหมู่ โดยฝั่งที่เกี่ยวกับ Tech กับ ฝั่งที่เกี่ยวกับ Business นะครับ

ฝั่งที่เกี่ยวกับ Tech

ขอเปิดด้วยฝั่งที่เกี่ยวกับ Tech ก่อนเลยนะครับ ส่วนใหญ่ตำแหน่งในฝั่งนี้ก็จะเป็นฝั่งที่ผลิต software ขึ้นมา โดยจะยึดตาม Requirement ที่ได้รับจากฝั่ง Business ครับ มีตำแหน่ง ดังนี้

  • Software Engineer / Developer / Programmer

จากที่ผมลองหาข้อมูลมาในแต่ละบริษัทก็จะมีตำแหน่งที่เป็นเหมือนตัวหลักในการพัฒนา software โดยเรียกชื่อตำแหน่งทั้ง 3 นี้ แต่ว่า job description บางที่ก็จะแตกต่างออกไป บางที่ตำแหน่ง Developer ก็คือ dev อย่างเดียว บางที่มองว่า Software Engineer ทำทั้ง dev ทั้งออกแบบ ทั้ง deploy ส่วน Programmer หลัง ๆแทบไม่ค่อยเห็นคนเรียกชื่อนี้สักเท่าไรครับ โดยทั้ง 3 ตำแหน่งก็จะมีแบ่งออกเป้น Frontend (พัฒนาในฝั่งของ Client Side อาจจะรวมไปถึงฝั่งที่ทำ Mobile App) และ Backend (พัฒนาในฝั่งของ Server Side)

  • Software Tester

ตำแหน่งที่เข้ามาช่วยให้ชีวิตของ dev ดีขึ้น เพราะช่วย dev ค้นหาบัค ลดจุดบกพร่องของงาน โดยการทดสอบก็จะมีทั้ง manual และ automate ซึ่งศาสตร์การ test ระบบเป็นอะไรที่ค่อนข้างกว้าง ต้องไปหาข้อมูลเพิ่มกันอีกทีครับ

  • Quality Assurance (QA)

ตำแหน่งที่ควบคุมคุณภาพของ Software ดูคล้ายกับ Tester แต่จริงๆแล้วต่างกันตรงที่ QA เป็นฝ่ายที่เน้นการป้องกัน การควบคุมไม่ให้เกิดข้อผิดพลาดในระบบ และตรวจสอบช่องโหว่ การกระทบกับระบบอื่น ๆ แต่ Tester อาจจะเน้นค้นหา bug มากกว่าและทดสอบความผิดพลาด

  • System Analyst (SA)

ตำแหน่งที่ทำหน้าที่วิเคราะห์ระบบ หา Technical ให้ตอบรับกับ Business Requirement ได้ วิเคราะห์ผลกระทบที่เกิดขึ้นได้จาก Requirement หา Solution หรือแนวทางที่ช่วยในการแก้ไขปัญหา เป็นตำแหน่งงานที่ต้องเน้นประสบการณ์มาก ๆ

  • DevOps Engineer

ตำแหน่งที่เน้นดูเรื่องกระบวนการ Deployment Service ที่พัฒนา ทำเกี่ยวกับ Infra ของระบบเป็นส่วนใหญ่ คอยดูเกี่ยวกับการใช้ Cloud หรือ การใช้พวก Virtaul Machine ซึ่งก็เป็นศาสตร์ที่ค่อนข้างกว้าง เพราะว่าอาจจะต้องคุ้นเคยกับ Service ของ Cloud Provider เจ้าต่างๆพอสมควร

ฝั่งที่เกี่ยวกับ Business

ทีนี้มาถึงฝั่งที่เกียวข้องกับ Business บ้างนะครับ ทางฝั่งนี้ผมอาจจะไม่ได้รู้ลึกมาก ๆ เพื่อน ๆ ลองเอา keyword ไปค้นหาต่อจะเห็นภาพกว้างขึ้นครับ

  • Business Analyst (BA)

ตำแหน่งที่เป็นนักวิเคราะห์ธุรกิจ ทำโจทย์ Requirement ทางธุรกิจ วิเคราะห์ข้อมูลทางธุรกิจเพื่อหา Solution รวมถึงารทำ Presentation กับ Report เพื่อนำเสนอกับทีมบริหารได้

  • UX/UI Designer

ตำแหน่งที่ทำหน้าที่ออกแบบ Product ให้สอดคล้องกับประสบการณ์ที่ดีของผู้ใช้งาน โดยจะต้องตอบโจทย์ทางธุรกิจด้วย

  • Project Manager (PM)

ตำแหน่งนี้บางที่ก็อาจจะเป็น Product Manager ซึ่ง job description ก็อาจจะแตกต่างกันไปในแต่ละองค์กร แต่ Project Manager จะเน้นการดูแลทีม การจัดสรรทรัพยากรทีม ลำดับการให้ความสำคัญของงานก่อนหรือหลัง ประสานงานระหว่างฝั่ง Tech และ Businesss

  • Product Owner (PO)

ตำแหน่งนี้เป็นเหมือนเจ้าของ Software ต้องเข้าใจ pain-point ที่เกิดขึ้นทาง Business และอาจจะเป้นผู้มอบ Requirement แบบกว้าง ๆ ให้ทั้งทางฝั่ง Business หรือ Tech ด้วยก็ได้

Summary

อาจจะมีบางตำแหน่งที่ผมไม่ได้พูดถึงนะครับ เนื่องจากสายงานมันมีชื่อตำแหน่งที่เกี่ยวข้องเยอะมากๆๆ ที่ยกขึ้นมาเป็นตำแหน่งที่พบบ่อย ๆ ในองค์กรส่วนใหญ่ครับ และ ไม่ว่าจะเป็นตำแหน่งไหน ๆก็มีความสำคัญหมดในการพัฒนา software บางครั้งคนคนหนึ่งอาจจะสวมหมวกได้หลายใบขึ้นอยู่กับองค์กร ซึ่งการเข้าใจบทบาทหน้าที่ของแต่ละฝ่ายก็ทำให้เรามี empathy ต่อกันมากขึ้น ก็จะทำให้สามารถทำงานร่วมกันได้อย่างราบรื่นครับ

References