การพัฒนาซอฟต์แวร์: อะไรคือบทบาทหลักในทีม?
เผยแพร่แล้ว: 2021-01-29หลายคนคิดว่าการสร้างแอป แค่จ้างนักพัฒนาเพียงคนเดียวก็เพียงพอแล้ว อย่างไรก็ตาม เมื่อความซับซ้อนเพิ่มมากขึ้นและเวลาในการพัฒนาก็เพิ่มขึ้น เป็นที่ชัดเจนว่าใครบางคนต้องแสดงบทบาทอื่น แม้ว่าจะไม่ได้กำหนดไว้อย่างชัดเจนก็ตาม
การพัฒนาซอฟต์แวร์ดำเนินการภายใต้กรอบของโครงการ มีการกำหนดกรอบเวลา ผลลัพธ์ที่ต้องการ และงบประมาณอย่างชัดเจน ทุกโครงการรวมถึงทรัพยากรบุคคลด้วย และจำเป็นอย่างยิ่งที่จะต้องเลือกผู้เข้าร่วมอย่างเหมาะสม เนื่องจากสิ่งนี้จะส่งผลต่องบประมาณที่กำหนด ลองมาดูกันว่าใครมีส่วนร่วมในการพัฒนาโครงการและมีหน้าที่อะไรบ้าง
- 10 บทบาทสำคัญในทีมพัฒนาซอฟต์แวร์
- 1. ผู้จัดการโครงการ
- 2. นักวิเคราะห์
- 3. สถาปนิก
- 4. นักพัฒนาชั้นนำ (หัวหน้าทีม)
- 5. นักพัฒนา
- 6. QA-ผู้เชี่ยวชาญ/ผู้ทดสอบ
- 7. นักออกแบบ
- 8. ผู้ดูแลระบบ/เจ้าหน้าที่ DevOps
- 9. หัวหน้าฝ่ายพัฒนา
- 10. ลูกค้า/เจ้าของผลิตภัณฑ์
- การผสมผสานบทบาทโดยทั่วไป
- สรุปแล้ว
10 บทบาทสำคัญในทีมพัฒนาซอฟต์แวร์
“เมื่อวิเคราะห์บทบาทของโครงการ จำเป็นต้องเข้าใจว่าพนักงานทั่วไปจากบริษัทสามารถเล่นได้หลายบทบาทพร้อมกัน และยังมีส่วนร่วมในโครงการต่างๆ ในบทบาทที่แตกต่างกันด้วย” – ดังที่ Sebastian Streiffert หัวหน้าฝ่ายการตลาดของ Beetroot กล่าวไว้ในบทความล่าสุดของเขา
เราจะพูดถึงการรวมกันของบทบาทในภายหลัง ให้ความสนใจกับบทบาทหลักและตำแหน่งของทีมโครงการพัฒนาซอฟต์แวร์:
แนะนำสำหรับคุณ: ธุรกิจซอฟต์แวร์และไอทีเอาตัวรอดจากการระบาดใหญ่ของ COVID-19 ได้อย่างไร
1. ผู้จัดการโครงการ
บุคคลนี้กำหนดแผนโครงการและรับผิดชอบในการดำเนินการ เขาหรือเธอได้รับชิ้นส่วนของแผนจากพนักงาน นำมารวมกัน และตรวจสอบความสอดคล้องกัน PM มีหน้าที่จัดทำรายงานสำหรับสมาชิกในทีมและส่งมอบผลลัพธ์ตรงเวลาและภายในงบประมาณที่กำหนด นอกจากนี้ พวกเขายังปฏิบัติงานดังต่อไปนี้:
- ดำเนินการทบทวนแผนเป็นประจำ (รายสัปดาห์) กับลูกค้าและทีมงานโครงการ
- ปรับแผนตามคำขอของลูกค้า
- เขียนรายงานโครงการรายสัปดาห์
- แจ้งลูกค้าและพนักงานเกี่ยวกับปัญหาและพยายามแก้ไขภายในงบประมาณ ฯลฯ
โดยทั่วไป PM จะรับผิดชอบ KPI ของโครงการ จากสถิติ มีโครงการพัฒนาเพียงไม่กี่โครงการเท่านั้นที่เสร็จทันเวลาตาม KPI ที่ตั้งไว้และอยู่ภายในงบประมาณเริ่มต้น หากมีข้อผิดพลาดเกิดขึ้น ในที่สุด PM จะรับผิดชอบต่อการเลื่อนการเปิดตัวผลิตภัณฑ์ ข้อบกพร่องของการอัปเดต ฯลฯ
2. นักวิเคราะห์
นักวิเคราะห์มีหน้าที่รับผิดชอบในการเขียนและการรักษาข้อกำหนดที่เป็นปัจจุบัน โดยเฉพาะอย่างยิ่ง เขา/เธอเป็นผู้เจรจาหลักกับลูกค้าเกี่ยวกับข้อกำหนดของโครงการ บุคคลนี้เขียนคำแนะนำสำหรับโครงการ วิจารณ์ร่วมกับผู้มีส่วนได้ส่วนเสีย สถาปนิก และนักพัฒนาชั้นนำ นอกจากนี้ นักวิเคราะห์จะตรวจสอบแผนการทดสอบ อธิบายความยากลำบากให้กับผู้ทดสอบ และยังสามารถมีส่วนร่วมในการทดสอบโค้ดได้อีกด้วย บุคคลนี้ยังสามารถมีส่วนร่วมในการทบทวนการพัฒนาระดับสูงสุด
โครงการที่ซับซ้อนอาจต้องการกลุ่มนักวิเคราะห์และผู้นำที่รับผิดชอบทีม
3. สถาปนิก
บุคคลนี้พัฒนาสถาปัตยกรรมสำหรับโครงการ สำหรับโครงการขนาดใหญ่ สถาปนิกควรเป็นพนักงานประจำ สมาชิกในทีมนี้รับผิดชอบเอกสารระดับสูง (HLD) การจัดแนวสถาปัตยกรรมกับข้อกำหนดทางเทคนิคของลูกค้า เขา/เธอวางโครงสร้างโครงการ แจกจ่ายงานระหว่างนักพัฒนา และช่วยเหลือพวกเขาในประเด็นที่ยากลำบาก
4. นักพัฒนาชั้นนำ (หัวหน้าทีม)
ในโครงการขนาดเล็กที่ไม่มีสถาปนิกโดยเฉพาะ นักพัฒนาชั้นนำมีหน้าที่รับผิดชอบงานพัฒนาทั้งหมด พวกเขาแต่งตั้งนักพัฒนา ทบทวนแผน และกำหนดเส้นตายสำหรับพวกเขา นอกจากนี้ พวกเขายังปฏิบัติงานดังต่อไปนี้:
- รับงานจากผู้พัฒนาและดำเนินการตรวจสอบโค้ด
- รวมสาขาในพื้นที่เก็บข้อมูลและตรวจสอบให้แน่ใจว่าเฉพาะรหัสที่ผ่านการทดสอบและที่เกี่ยวข้องเท่านั้นที่เข้าสู่สาขาหลัก
- เขียนเอกสารโครงการ
- ฝึกอบรมพนักงานและช่วยเหลือพวกเขาในเรื่องยากๆ
- เขียนโค้ด
5. นักพัฒนา
บุคคลนี้เขียนรหัสสำหรับโครงการ เขาหรือเธออ่านข้อกำหนด วิเคราะห์พื้นที่ที่ซับซ้อนกับนักวิเคราะห์ รับงานพัฒนาจากหัวหน้าทีมหรือสถาปนิก และถ้าจำเป็น ให้ข้อเสนอแนะ ความรับผิดชอบโดยตรงของพวกเขาคือ:
- การพัฒนาส่วนประกอบของรหัสและการทดสอบหน่วย
- วิ่งทดสอบ;
- ตรวจสอบว่าฟังก์ชันที่ใช้งานตรงตามข้อกำหนดหรือไม่
- รับตั๋วจากผู้ทดสอบและแก้ไขข้อผิดพลาด
- เข้าร่วมการทดสอบในกรณีที่ยากลำบาก
หากไม่มีโค้ดที่เขียนและคอมไพล์แล้ว ก็จะไม่มีแอป นั่นเป็นเหตุผลที่ไม่สามารถแยกนักพัฒนาออกได้ แม้ว่าบางแอปจะถูกสร้างขึ้นด้วย Visual Constructor แบบง่ายๆ ซึ่งเป็นรูปแบบหนึ่งของการเขียนโปรแกรม
คุณอาจชอบ: อนาคตของวิศวกรรมซอฟต์แวร์ | เทรนด์ การคาดการณ์สำหรับปี 2021 และปีต่อๆ ไป
6. QA-ผู้เชี่ยวชาญ/ผู้ทดสอบ
คนเหล่านี้คือผู้ที่ตรวจสอบว่าแอปทำงานอย่างถูกต้องหรือไม่ นอกจากนี้ อย่างถูกต้องไม่ได้หมายความว่าใช้งานง่ายเสมอไป ผู้ทดสอบสามารถเขียนบันทึกการใช้งานได้ แต่ข้อกังวลหลักของพวกเขาคือต้องแน่ใจว่าแอปทำงานตามข้อกำหนดและข้อกำหนดเฉพาะ พวกเขาสามารถทดสอบแอพด้วยตนเองหรือโดยใช้การทดสอบอัตโนมัติ
สำหรับนักวิเคราะห์ ผู้ทดสอบสามารถกำหนดโดยระบบย่อยของโครงการหรือวิธีการทดสอบ หากมีผู้ทดสอบมากกว่าหนึ่งคน ควรแต่งตั้งคนใดคนหนึ่งเป็นหัวหน้าทีม หากไม่มีผู้ทดสอบเฉพาะในเจ้าหน้าที่โครงการ โดยปกติแล้วหน้าที่ของพวกเขาจะถูกมอบหมายให้กับนักพัฒนา ในขณะเดียวกัน ก็ถือว่านักพัฒนาไม่สามารถทดสอบโค้ดของตนเองได้อย่างถูกต้อง ดังนั้นการทดสอบข้ามจึงเป็นทางเลือกที่ดีกว่า
7. นักออกแบบ
นี่คือบุคคลที่กำหนดว่าแอปจะมีลักษณะและใช้งานอย่างไร นักออกแบบต้องคิดถึงตำแหน่งขององค์ประกอบ รูปแบบการเคลื่อนไหว ภาพเคลื่อนไหว ฯลฯ แอพที่ซับซ้อนอาจต้องใช้นักออกแบบหลายคน ตัวอย่างเช่น นักออกแบบคนหนึ่งสามารถวาดส่วนต่อประสาน ในขณะที่อีกคนหนึ่งสามารถคิดเกี่ยวกับแนวคิดทั้งหมดของการโต้ตอบกับผู้ใช้ บริษัทพัฒนาซอฟต์แวร์บางแห่งไม่มีนักออกแบบ ดังนั้นนักพัฒนาอาจรับบทบาทนี้สำหรับโครงการง่ายๆ งานหลักของนักออกแบบมีดังต่อไปนี้:
- การพัฒนา ScreenFlow;
- การสร้างต้นแบบหน้าจอ
- การเพิ่มประสิทธิภาพของการโต้ตอบกับผู้ใช้ (ให้คำแนะนำ);
- ให้คำปรึกษาทีมพัฒนา
บางครั้งนักออกแบบร่วมกับโปรแกรมเมอร์ต้องรับผิดชอบต่อข้อผิดพลาดบางอย่างในแอปพลิเคชัน ตัวอย่างเช่น การนำแนวคิดการออกแบบของลูกค้าไปใช้อาจเป็นเรื่องยาก ดังนั้นโอกาสที่จะเกิดข้อผิดพลาดจึงเพิ่มขึ้น ดังนั้นความล้มเหลวทั้งหมดจึงเกี่ยวข้องกับงานของนักออกแบบ
8. ผู้ดูแลระบบ/เจ้าหน้าที่ DevOps
สมาชิกในทีมนี้มีหน้าที่รับผิดชอบในการส่งมอบอย่างต่อเนื่องและเวิร์กโฟลว์การรวมระบบอย่างต่อเนื่อง การจัดระเบียบของการโต้ตอบระหว่างระบบ การปรับใช้ การระบุปัญหาระหว่างการทดสอบ พวกเขามีส่วนร่วมในการวางแผนและทำงานเกี่ยวกับการย้ายข้อมูลและการซิงโครไนซ์ นอกจากนี้ พวกเขายังปฏิบัติงานดังต่อไปนี้:
- เขียนคำแนะนำเกี่ยวกับการปรับใช้และการดูแลระบบ
- โต้ตอบกับลูกค้า
- ประกอบและจัดโครงสร้างฮาร์ดแวร์ระบบ
- ติดตั้ง VPN และจัดการกับไฟร์วอลล์
- วางระบบโดยไม่ต้องใช้โปรแกรมเมอร์
9. หัวหน้าฝ่ายพัฒนา
บุคคลนี้มีส่วนร่วมในการจัดตั้งทีมโครงการ พวกเขามีหน้าที่รับผิดชอบเกี่ยวกับคุณสมบัติของพนักงาน ดังนั้น งานของพวกเขาคือการจัดฝึกอบรม ติดตามการเติบโตในสายอาชีพของพนักงาน นอกจากนี้ พวกเขายังต้องรับผิดชอบต่อความสะดวกสบายในที่ทำงานอีกด้วย
10. ลูกค้า/เจ้าของผลิตภัณฑ์
นี่คือสมาชิกทีมหลักที่กำหนดเส้นทางการสร้างผลิตภัณฑ์ทั้งหมด บุคคลนี้ตัดสินใจว่าจะต้องทำอะไรและประเมินว่าการดำเนินการนั้นสอดคล้องกับแนวคิดของผลิตภัณฑ์หรือไม่ โดยเฉพาะอย่างยิ่ง เจ้าของผลิตภัณฑ์ที่รับผิดชอบดำเนินการต่อไปนี้:
- กำหนดแนวคิดของผลิตภัณฑ์
- สร้างกลยุทธ์ทางการตลาด
- ทำการวิเคราะห์คู่แข่ง
- ดำเนินการควบคุมสถานะการพัฒนา
- การเลือกกลยุทธ์ผลิตภัณฑ์และวิธีการสร้างรายได้
- สร้างแนวคิดในการปรับปรุงประสิทธิภาพทางธุรกิจ
- ประเมินคุณภาพของผลิตภัณฑ์
ดังนั้น วัตถุประสงค์หลักของบุคคลนี้คือเพื่อให้แน่ใจว่าผลิตภัณฑ์นั้นสอดคล้องกับเป้าหมายทางธุรกิจ
การผสมผสานบทบาทโดยทั่วไป
บางครั้งเมื่อพูดถึงผลลัพธ์ ลูกค้าบอกว่านักพัฒนาได้ทำอะไรผิดไป สถานการณ์ดังกล่าวอาจปรากฏขึ้นหากเจ้าหน้าที่โครงการบางคนต้องทำงานหลายบทบาทพร้อมกัน ปัญหานี้มักจะเกิดขึ้นเมื่อขาดทรัพยากรทางการเงินในการจ้างกลุ่มนักพัฒนา บางครั้ง การผสมผสานของบทบาทสามารถให้ผลลัพธ์ในเชิงบวก ตัวอย่างเช่น ตัวเลือกต่อไปนี้เป็นไปได้:
- นักวิเคราะห์ + ผู้ทดสอบ – ฟังดูดี แต่คนแบบนี้จะทำให้คุณเสียเงินมหาศาล
- ผู้จัดการโครงการ + นักวิเคราะห์ – ตัวเลือกดังกล่าวเป็นที่ยอมรับในโครงการขนาดเล็ก
- สถาปนิก + นักพัฒนาชั้นนำ – ใช้ได้ในโครงการขนาดเล็ก
- ผู้จัดการโครงการ + นักพัฒนาชั้นนำ – สำหรับโครงการขนาดเล็กที่มีทีมโปรแกรมเมอร์และผู้ทดสอบที่มีประสบการณ์ คุณสามารถลองใช้ตัวเลือกนี้ได้เช่นกัน
- นักพัฒนา + นักออกแบบ – เป็นไปได้ในกรณีที่มีทีมนักพัฒนาฝีมือดี
ในขณะเดียวกัน ยังมีบทบาทในทีมที่ไม่ควรรวมในโครงการพัฒนาซอฟต์แวร์หากเป็นไปได้:
- นักพัฒนา + ผู้ทดสอบ - ไม่อนุญาต
- สถาปนิก + นักวิเคราะห์ – ดูแวบแรกอาจฟังดูยอมรับได้ แต่โดยรวมแล้วไม่ใช่ทางเลือก บทบาททั้งสองนี้เป็นปฏิปักษ์กันเล็กน้อย
อย่างที่คุณเห็น ในขณะที่บางตำแหน่งสามารถผสานได้ แต่ตำแหน่งอื่น ๆ จะสร้างส่วนผสมที่ระเบิดได้ซึ่งจะสร้างความเสียหายให้กับผลลัพธ์สุดท้าย พยายามหลีกเลี่ยงการรวมบทบาทหรือใช้เวลาในการพัฒนาโครงการอย่างเพียงพอ
คุณอาจชอบ: เคล็ดลับสำหรับการพัฒนาตนเองในฐานะนักพัฒนาซอฟต์แวร์ทางไกลใน COVID-19
สรุปแล้ว
ตอนนี้คุณรู้แล้วว่าใครเป็นใครในทีมพัฒนาโครงการ หากคุณพิจารณาที่จะพัฒนาแอพสำหรับ Android หรือ iOS คุณจะรู้ว่าคุณต้องการหาคนประเภทไหน ในขณะเดียวกัน บทบาทหลักอาจแตกต่างกันไปขึ้นอยู่กับประเภทของโครงการ หากคุณต้องการสร้างซอฟต์แวร์ตั้งแต่เริ่มต้น คุณต้องมีทีมอื่นที่ไม่ใช่ทีมที่ติดตั้งระบบ ERP หรือติดตั้งแอป BI สำหรับผู้บริหารระดับสูงของลูกค้า
หากคุณจ้างทีมของคุณเอง คุณจะต้องรักษาพนักงานทั้งหมดไว้ แม้ว่าพวกเขาจะไม่เกี่ยวข้องหรือไม่ได้มีส่วนร่วมอย่างเต็มที่ในโครงการปัจจุบันของคุณก็ตาม ในความเป็นจริง โครงการส่วนใหญ่ไม่ต้องการนักออกแบบเต็มเวลา ผู้ดูแลระบบ หรือผู้ทดสอบ ดังนั้นการจ้างทีมพัฒนาเฉพาะหรือมอบงานนี้ให้กับการเอาท์ซอร์สอาจเป็นความคิดที่ดี
บทบาทการพัฒนาซอฟต์แวร์ใดที่เป็นประโยชน์สำหรับโครงการและทีมของคุณ แบ่งปันประสบการณ์ของคุณกับเราในความคิดเห็น