บุคลากรด้านซอฟต์แวร์

Posted By Plookpedia | 21 เม.ย. 60
289 Views

  Favorite

บุคลากรด้านซอฟต์แวร์

      การวิเคราะห์ของแบรี่ บีม (Barry Boehm ; ๑๙๘๘)  จากประสบการณ์เกี่ยวกับโครงการพัฒนาซอฟต์แวร์ต่าง ๆ มากว่ายี่สิบปีพบว่าคุณภาพของบุคลากรที่พัฒนาซอฟต์แวร์โดยเฉพาะคุณภาพของหัวหน้าโครงการที่รู้จักพิจารณาว่าเรื่องใดมีความสำคัญหรือมีความเสี่ยงสูงแล้วทำสิ่งนั้นก่อนสามารถจะบ่งบอกถึงความสำเร็จของโครงการและคุณภาพของซอฟต์แวร์ได้ ในขณะที่วิธีการพัฒนา หรือเครื่องมือที่ใช้จำเพาะแบบไม่สามารถรับประกันได้ว่าการใช้วิธีจำเพาะแบบนั้นจะส่งผลให้ซอฟต์แวร์มีคุณภาพเสมอ ผลการศึกษาของนายเคอร์ติส (B. Curtis : ๑๙๘๘) และนายแอนดรู โนแลน (Andrew J. Nolan : ๑๙๘๘) ยืนยันได้ว่าปัจจัยของความสำเร็จในการพัฒนาซอฟต์แวร์อยู่ที่การมีบุคคลที่มีคุณภาพในทีมงาน  ดังนั้นมนุษย์จึงเป็นกลไกสำคัญในการพัฒนาซอฟต์แวร์ในปัจจุบัน การพัฒนาซอฟต์แวร์ขนาดใหญ่ไม่ใช่จะมีเฉพาะโปรแกรมเมอร์เท่านั้นแต่จำเป็นต้องมีทีมงานมาช่วยพัฒนาด้วย 

 

การพัฒนาซอฟต์แวร์คอมพิวเตอร์
อุปกรณ์ที่ใช้จัดเก็บซอฟต์แวร์และข้อมูลที่ซอฟต์แวร์ใช้: ซิปดิสก์ (Zip disk)

 

ทีมงานพัฒนาซอฟต์แวร์ 

อาจจะประกอบด้วยบุคลากรหลายตำแหน่งซึ่งมีหน้าที่และคุณสมบัติต่าง ๆ กัน ดังต่อไปนี้ 

ผู้บริหารอาวุโส (senior manager) 

      เป็นผู้กำหนดสาระสำคัญของโครงการพัฒนาซอฟต์แวร์ 

หัวหน้าโครงการ (project manager) 

      มีหน้าที่บริหารโครงการจัดทีมงาน ประสานการทำงานแบบทีม ติดตามผลงาน ให้กำลังใจ เข้าใจปัญหาในการบริหารงาน ทั้งด้านบุคคลและเทคนิคในการวิเคราะห์สถานการณ์ต่าง ๆ ลำดับความสำคัญของเรื่องที่จะต้องทำและปรับแนวทางการดำเนินงานให้เหมาะสมกับสถานการณ์ได้ 
นักวิศวกรรมข้อกำหนด (requirement engineer) 

      มีหน้าที่วิเคราะห์ชี้แจงโจทย์ปัญหาที่ซอฟต์แวร์จะต้องการ  โดยสรุปให้เห็นคุณลักษณะซอฟต์แวร์ที่ต้องการ ขอบเขตหน้าที่ที่ซอฟต์แวร์ควรทำ ทบทวนความครบถ้วนของข้อกำหนด และความถูกต้องตามวัตถุประสงค์ ฯลฯ ในกรณีที่เป็นข้อกำหนดของซอฟต์แวร์ประเภทที่เสริมระบบงานธุรกิจผู้ที่ทำหน้าที่นี้เรียกว่า นักวิเคราะห์ระบบ (system analyst) โดยมีหน้าที่ศึกษาระบบงานขั้นตอนในการทำงาน ลักษณะข้อมูลที่ส่งต่อในแต่ละขั้นตอน และสอบถามความต้องการของผู้บริหารหรือผู้ที่จะใช้ระบบ ฯลฯ แต่สำหรับกรณีที่เป็นข้อกำหนดซอฟต์แวร์สำเร็จรูปเพื่อจำหน่ายให้แก่บุคคลทั่วไปผู้ที่ทำหน้าที่นี้จะต้องศึกษาความต้องการของตลาดด้วย 
นักวิเคราะห์องค์ความรู้ (Knowledge engineer) 

      มีหน้าที่สอบถามและรวบรวมองค์ความรู้จากผู้เชี่ยวชาญในสาขาต่าง ๆ เพื่อให้ทราบถึงกฎเกณฑ์ (rule) ต่าง ๆ และวิธีวินิจฉัยปัญหาในสาขานั้น ๆ องค์ความรู้นี้มักจำเป็นต้องมีในการพัฒนาซอฟต์แวร์ที่จำลองการทำงานของผู้เชี่ยวชาญ (Expert system) หรือระบบช่วยตัดสินใจ (Decision support system) 
นักออกแบบระบบ (designer) 

      มีหน้าที่วางแนวทาง รายละเอียดขั้นตอน และวิธีการทำงานซอฟต์แวร์ เพื่อให้สามารถทำงานได้ตามข้อกำหนดรวมถึงการออกแบบวิธีประสานงานระหว่างคนกับคอมพิวเตอร์ ออกแบบวิธีจัดระเบียบข้อมูลในฐานข้อมูล ออกแบบหน้าจอแนวทางนำเสนอข้อมูลที่เป็นรูป เสียง บทความ ภาพเคลื่อนไหว ฯลฯ 
นักวิจัย (researcher) 

      ในกรณีที่นำซอฟต์แวร์มาใช้แก้โจทย์ปัญหาที่ปัจจุบันยังไม่ทราบวิธีที่จะสั่งให้คอมพิวเตอร์แก้ให้เราหรือทำแทนเรา เช่น วิธีที่ทำให้ซอฟต์แวร์อ่านลายมือภาษาไทยออก ผู้ที่ออกแบบระบบได้สำเร็จ มักเป็นนักวิจัย (researcher) ที่ต้องคิดค้นวิธีการใหม่ ๆ ไม่ใช่นักออกแบบระบบซอฟต์แวร์ธรรมดา 
นักเขียนโปรแกรม (Programmer) หรือโปรแกรมเมอร์

      ทำหน้าที่เขียนซอฟต์แวร์หรือชุดคำสั่งให้คอมพิวเตอร์ทำงานตามที่ได้ออกแบบไว้ 
นักทดสอบคุณภาพระบบ (tester) 

      มีหน้าที่จัดทำกรณีทดสอบ เพื่อทดสอบ และประเมินคุณภาพของโปรแกรม ซึ่งรวมถึงความถูกต้อง ประสิทธิภาพ ฯลฯ ตามที่ระบุในข้อกำหนดของซอฟต์แวร์ 
ผู้ประเมินคุณภาพการใช้งานของระบบ (usability engineer) 

      ทำหน้าที่ตรวจสอบความสะดวกในการใช้งานของซอฟต์แวร์ซึ่งสามารถทำได้ตั้งแต่เริ่มต้นออกแบบซอฟต์แวร์ 

 

 

      ความจำเป็นจองบุคลากรแต่ละตำแหน่งจะขึ้นอยู่กับประเภท ขนาด และความซับซ้อนของซอฟต์แวร์ บางซอฟต์แวร์อาจไม่จำเป็นต้องมีบุคลากรครบดังที่กล่าวมานี้ บางซอฟต์แวร์อาจต้องการผู้เชี่ยวชาญเพิ่มเติม อย่างไรก็ตามทีมงานพัฒนาซอฟต์แวร์ยังต้องประสานงานกับบุคคลอื่น เช่น ผู้บริหารบริษัทซอฟต์แวร์ ผู้ใช้ซอฟต์แวร์ผู้บริหารองค์กรที่ว่าจ้างให้พัฒนาซอฟต์แวร์ ฯลฯ

 

การพัฒนาซอฟต์แวร์คอมพิวเตอร์
อุปกรณ์ที่ใช้จัดเก็บซอฟต์แวร์และข้อมูลที่ซอฟต์แวร์ใช้: ฮาร์ดดิสก์ (Hard disk) 
การพัฒนาซอฟต์แวร์คอมพิวเตอร์
อุปกรณ์ที่ใช้จัดเก็บซอฟต์แวร์และข้อมูลที่ซอฟต์แวร์ใช้: แจซดิสก์ (Jaz disk)

     

      ปัจจุบันการพัฒนาบุคลากรด้านซอฟต์แวร์ในประเทศไทยยังคงให้ความสำคัญต่อการพัฒนาโปรแกรมเมอร์มากที่สุด คือ สอนให้เขียนชุดคำสั่งในแต่ละภาษาคอมพิวเตอร์ไปเลยแต่ค่อนข้างจะละเลยผู้ที่วิเคราะห์ข้อกำหนดของซอฟต์แวร์ ผู้ที่ออกแบบซอฟต์แวร์ และผู้ที่ทดสอบซอฟต์แวร์ โดยมักสรุปให้หน้าที่ทั้งหมดเป็นของโปรแกรมเมอร์  นอกจากนี้ประเทศไทยยังมีปัญหาในการเลื่อนขั้นบุคลากรด้านซอฟต์แวร์ โดยมักจะเลื่อนขั้นโปรแกรมเมอร์ที่อาวุโสให้เป็นนักวิเคราะห์ระบบหรือหัวหน้าโครงการซึ่งที่จริงแล้วถือว่าผิดหลักเกณฑ์อย่างมากเพราะมีคุณสมบัติที่ไม่เหมาะสมเนื่องจากโปรแกรมเมอร์ส่วนใหญ่มักเป็นคนเก็บตัวชอบอยู่หน้าจอคอมพิวเตอร์และมีความเชี่ยวชาญด้านเทคนิคมาก แต่นักวิเคราะห์ระบบต้องมีมนุษย์สัมพันธ์ดีรู้จักสอบถาม ส่วนหัวหน้าโครงการต้องเป็นผู้ที่มีความสามารถสูงในการวางแผนและบริหารงานบุคคล การเลื่อนขั้นเช่นนี้อาจทำให้องค์กรต้องสูญเสียโปรแกรมเมอร์ที่ดีและได้นักวิเคราะห์ระบบที่ไม่เหมาะสมมาแทน
      ที่กล่าวมาทั้งหมดนี้เป็นการอธิบายให้เข้าใจหลักการเบื้องต้นในการพัฒนาซอฟต์แวร์เท่านั้น การพัฒนาซอฟต์แวร์ยังจะต้องมีกิจกรรมเสริมอีกมาก ได้แก่  การประเมินค่าใช้จ่ายของโครงการ การประเมินเวลาที่ต้องใช้ การวัดคุณภาพของขั้นตอนการทำงาน การวัดคุณภาพผลงาน ฯลฯ การพัฒนาอุตสาหกรรมซอฟต์แวร์ให้เจริญรุ่งเรืองได้ในประเทศไทยจึงไม่ใช่เรื่องง่ายอย่างที่หลายคนคิด แต่ถ้าสามารถสร้างศักยภาพในส่วนนี้ได้ อุตสาหกรรมซอฟต์แวร์ก็จะเป็นอุตสาหกรรมที่ช่วยส่งเสริมเศรษฐกิจของประเทศไทยได้อย่างมาก

เว็บไซต์ทรูปลูกปัญญาดอทคอมเป็นเพียงผู้ให้บริการพื้นที่เผยแพร่ความรู้เพื่อประโยชน์ของสังคม ข้อความและรูปภาพที่ปรากฏในบทความเป็นการเผยแพร่โดยผู้ใช้งาน หากพบเห็นข้อความและรูปภาพที่ไม่เหมาะสมหรือละเมิดลิขสิทธิ์ กรุณาแจ้งผู้ดูแลระบบเพื่อดำเนินการต่อไป
  • Posted By
  • Plookpedia
  • 1 Followers
  • Follow