ทีมงานพัฒนาซอฟต์แวร์อาจจะประกอบด้วยบุคลากรหลายตำแหน่ง ซึ่งมีหน้าที่และคุณสมบัติต่างๆ กัน ดังต่อไปนี้
- ผู้บริหารอาวุโส (senior manager) เป็นผู้กำหนดสาระสำคัญของโครงการพัฒนาซอฟต์แวร์
- หัวหน้าโครงการ (proJect manager)มีหน้าที่บริหารโครงการ จัดทีมงาน ประสานการทำงานแบบทีม ติดตามผลงาน ให้กำลังใจเข้าใจปัญหาในการบริหารงานทั้งด้านบุคคลและเทคนิคในการวิเคราะห์สถานการณ์ต่างๆ ลำดับ
ความสำคัญของเรื่องที่จะต้องทำ และปรับแนวทางการดำเนินงานให้เหมาะสมกับสถานการณ์ได้
- นักวิศวกรรมข้อกำหนด (requirementengineer) มีหน้าที่วิเคราะห์ ชี้แจงโจทย์ปัญหาที่ซอฟต์แวร์จะต้องการ โดยสรุปให้เห็นคุณลักษณะซอฟต์แวร์ที่ต้องการ ขอบเขตหน้าที่ที่ซอฟต์แวร์ควรทำ ทบทวนความครบถ้วนของข้อกำหนดและความถูกต้องตามวัตถุประสงค์ ฯลฯ ในกรณีที่เป็นข้อกำหนดของซอฟต์แวร์ประเภทที่เสริมระบบงานธุรกิจ ผู้ที่ทำหน้าที่นี้เรียกว่านักวิเคราะห์ระบบ (system analyst) โดยมีหน้าที่ศึกษาระบบงาน ขั้นตอนในการทำงาน ลักษณะ
ข้อมูลที่ส่งต่อในแต่ละขั้นตอน และสอบถามความต้องการของผู้บริหาร หรือผู้ที่จะใช้ระบบ ฯลฯ แต่สำหรับกรณีที่เป็นข้อกำหนดซอฟต์แวร์สำเร็จรูปเพื่อจำหน่ายให้แก่บุคคลทั่วไป ผู้ที่ทำหน้าที่นี้จะต้องศึกษาความต้องการของตลาดด้วย
- นักวิเคราะห์องค์ความรู้ (Knowledgeengineer) มีหน้าที่สอบถาม และรวบรวมองค์-ความรู้จากผู้เชี่ยวชาญในสาขาต่างๆ เพื่อให้ทราบถึงกฎเกณฑ์ (rule) ต่างๆ และวิธีวินิจฉัยปัญหาในสาขานั้นๆ องค์ความรู้นี้มักจำเป็นต้องมีใน
การพัฒนาซอฟต์แวร์ที่จำลองการทำงานของผู้เชี่ยวชาญ (Expert system) หรือระบบช่วยตัดสินใจ (Decision support system)
- นักออกแบบระบบ (designer) มีหน้าที่วางแนวทาง รายละเอียดขั้นตอน และวิธีการทำงานซอฟต์แวร์ เพื่อให้สามารถทำงานได้ตามข้อกำหนด รวมถึงการออกแบบวิธีประสานงานระหว่างคนกับคอมพิวเตอร์ ออกแบบวิธีจัดระเบียบข้อมูลในฐานข้อมูล ออกแบบหน้าจอแนวทางนำเสนอข้อมูลที่เป็นรูป เสียง บทความภาพเคลื่อนไหว ฯลฯ
- นักวิจัย (researcher) ในกรณีที่นำซอฟต์แวร์มาใช้แก้โจทย์ปัญหาที่ปัจจุบันยังไม่ทราบวิธีที่จะสั่งให้คอมพิวเตอร์แก้ให้เรา หรือทำแทนเรา เช่น วิธีที่ทำให้ซอฟต์แวร์อ่านลายมือภาษาไทยออก ผู้ที่ออกแบบระบบได้สำเร็จมักเป็นนักวิจัย (researcher) ที่ต้องคิดค้นวิธีการใหม่ๆไม่ใช่นักออกแบบระบบซอฟต์แวร์ธรรมดา
- นักเขียนโปรแกรม (Programmer) หรือโปรแกรมเมอร์ ทำหน้าที่เขียนซอฟต์แวร์ หรือชุดคำสั่งให้คอมพิวเตอร์ทำงานตามที่ได้ออกแบบไว้
- นักทดสอบคุณภาพระบบ (tester) มีหน้าที่จัดทำกรณีทดสอบ เพื่อทดสอบและประเมินคุณภาพของโปรแกรม ซึ่งรวมถึงความถูกต้องประสิทธิภาพ ฯลฯ ตามที่ระบุในข้อกำหนดของซอฟต์แวร์
- ผู้ประเมินคุณภาพการใช้งานของระบบ(usability engineer) ทำหน้าที่ตรวจสอบความสะดวกในการใช้งานของซอฟต์แวร์ ซึ่งสามารถทำได้ตั้งแต่เริ่มต้นออกแบบซอฟต์แวร์ความจำเป็นของบุคลากรแต่ละตำแหน่งจะขึ้นอยู่กับประเภท ขนาด และความซับซ้อนของซอฟต์แวร์ บางซอฟต์แวร์อาจไม่จำเป็นต้องมีบุคลากรครบดังที่กล่าวมานี้ บางซอฟต์แวร์อาจต้องการผู้เชี่ยวชาญเพิ่มเติม อย่างไรก็ตาม ทีมงานพัฒนาซอฟต์แวร์ยังต้องประสานงานกับบุคคลอื่นเช่น ผู้บริหารบริษัทซอฟต์แวร์ ผู้ใช้ซอฟต์แวร์ผู้บริหารองค์กรที่ว่าจ้างให้พัฒนาซอฟต์แวร์ ฯลฯ ปัจจุบัน การพัฒนาบุคลากรด้านซอฟต์แวร์ในประเทศไทยยังคงให้ความสำคัญต่อการพัฒนาโปรแกรมเมอร์มากที่สุด คือ สอนให้เขียนชุดคำสั่งในแต่ละภาษาคอมพิวเตอร์ไปเลย แต่ค่อนข้างจะละเลยผู้ที่วิเคราะห์ข้อกำหนดของซอฟต์แวร์ ผู้ที่ออกแบบซอฟต์แวร์และผู้ที่ทดสอบซอฟต์แวร์ โดยมักสรุปให้หน้าที่ทั้งหมดเป็นของโปรแกรมเมอร์นอกจากนี้ ประเทศไทยยังมีปัญหาในการเลื่อนขั้นบุคลากรด้านซอฟต์แวร์ โดยมักจะเลื่อนขั้นโปรแกรมเมอร์ที่อาวุโสให้เป็นนักวิเคราะห์ระบบ หรือหัวหน้าโครงการ ซึ่งที่จริงแล้ว ถือว่าผิดหลักเกณฑ์อย่างมาก เพราะมีคุณสมบัติที่ไม่เหมาะสม เนื่องจากโปรแกรมเมอร์ส่วนใหญ่มักเป็นคนเก็บตัว ชอบอยู่หน้าจอคอมพิวเตอร์ และมีความเชี่ยวชาญด้านเทคนิคมาก แต่นักวิเคราะห์ระบบต้องมีมนุษย์สัมพันธ์ดี รู้จักสอบถาม ส่วนหัวหน้าโครงการต้องเป็นผู้ที่มีความสามารถสูงในการวางแผนและบริหารงานบุคคล การเลื่อนขั้นเช่นนี้อาจทำให้องค์กรต้องสูญเสียโปรแกรมเมอร์ที่ดี และได้นักวิเคราะห์ระบบที่ไม่เหมาะสมมาแทน
ที่กล่าวมาทั้งหมดนี้เป็นการอธิบายให้เข้าใจหลักการเบื้องต้นในการพัฒนาซอฟต์แวร์เท่านั้นการพัฒนาซอฟต์แวร์ยังจะต้องมีกิจกรรมเสริมอีกมาก ได้แก่ การประเมินค่าใช้จ่ายของโครงการการประเมินเวลาที่ต้องใช้ การวัดคุณภาพของขั้นตอนการทำงาน การวัดคุณภาพผลงาน ฯลฯการพัฒนาอุตสาหกรรมซอฟต์แวร์ให้เจริญรุ่งเรืองได้ในประเทศไทยจึงไม่ใช่เรื่องง่ายอย่างที่หลายคนคิด แต่ถ้าสามารถสร้างศักยภาพในส่วนนี้ได้อุตสาหกรรมซอฟต์แวร์ก็จะเป็นอุตสาหกรรมที่ช่วยส่งเสริมเศรษฐกิจของประเทศไทยได้อย่างมาก
ดูเพิ่มเติมเรื่อง วิวัฒนาการของไมโครคอมพิวเตอร์ และแนวโน้มของเทคโนโลยีสารสนเทศในต้นคริสต์ศตวรรษที่ ๒๑ เล่ม ๒๕
[กลับหัวข้อหลัก]