ผู้คน ผลิตภัณฑ์ และเทคโนโลยี: คู่มือสำหรับผู้เริ่มต้นในการจัดการวิศวกรรม

เผยแพร่แล้ว: 2022-03-11

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

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

ผู้คนคือสิ่งสำคัญของคุณ

ในบทบาทผู้จัดการฝ่ายวิศวกรรม ลำดับความสำคัญใหม่ของคุณคือทีมของคุณ แล้วคุณจะมั่นใจได้อย่างไรว่าคุณมีทีมที่ยอดเยี่ยม?

การสร้างทีมและสร้างความไว้วางใจ

ขั้นตอนแรกคือต้องแน่ใจว่าคุณจ้างคนที่เหมาะสมสำหรับทีมของคุณ หากคุณยังไม่มีทีมอยู่ในตำแหน่งนั้น

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

ตรวจสอบให้แน่ใจว่าคุณไม่ได้ถามเฉพาะคำถามทางเทคนิคเท่านั้น แต่ยังรวมถึงคำถามปลายเปิดเกี่ยวกับการทำงานในทีมหรือบทบาทความเป็นผู้นำด้วย ตัวอย่างเช่น ถามผู้สมัคร:

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

เมื่อคุณมีทีมแล้ว ให้อุทิศเวลาเพื่อให้ทีมได้รับความเคารพและสร้างความไว้วางใจ เพื่อนำทีมอย่างมีประสิทธิภาพ คุณต้องพัฒนาความสัมพันธ์ที่ดีกับสมาชิกในทีมของคุณ ใช้เวลาในการทำความเข้าใจเป้าหมายทางอาชีพและสิ่งที่สำคัญสำหรับพวกเขา

การประชุมแบบตัวต่อตัวเป็นเครื่องมือสำคัญในการสร้างสายสัมพันธ์กับสมาชิกในทีมแต่ละคนและทำความรู้จักกับพวกเขาให้ดีขึ้น ความถี่ในการประชุมแบบตัวต่อตัวในอุดมคติคืออะไร? ขึ้นอยู่กับความต้องการเฉพาะของสมาชิกในทีมของคุณ แต่ควรพบปะกับพวกเขาอย่างน้อยสองสามครั้งทุกเดือน

อย่างไรก็ตาม หากคุณและทีมของคุณทำงานร่วมกันอย่างใกล้ชิดหรือมีทีมขนาดใหญ่ คุณสามารถจัดการประชุมเดือนละครั้งได้

วิธีที่ผู้จัดการด้านวิศวกรรมให้อำนาจและพัฒนาทีม

งานส่วนใหญ่ของคุณขึ้นอยู่กับการระบุจุดแข็งและจุดอ่อนของสมาชิกแต่ละคน ช่วยพวกเขาแก้ไขจุดอ่อนโดยจับคู่กับวิศวกรอาวุโสและดำเนินการตรวจสอบโค้ดบ่อยๆ และเน้นที่จุดแข็งของพวกเขา ท้ายที่สุด จุดแข็งของเราที่กระตุ้นเราและกำหนดสิ่งที่เราสนุกกับการทำ

มอบหมายงานตามความสามารถและคุณสมบัติของวิศวกรแต่ละคน เพื่อที่จะดึงเอาสิ่งที่ดีที่สุดของแต่ละคนออกมาและสร้างทีมที่ยอดเยี่ยม ระบบอัตโนมัติสามารถไปได้ไกลในเรื่องนี้ ตั้งค่าการรวมอย่างต่อเนื่องเพื่อระบุรหัสที่เสียหายหรือด้อยประสิทธิภาพและบุคคลที่ส่งรหัสดังกล่าวบ่อยๆ

สมาชิกในทีมของคุณจะพยายามเรียนรู้ ปรับปรุง และเติบโตอย่างต่อเนื่องในด้านที่มีความสำคัญต่อพวกเขาหรือทีม บทบาทและความรับผิดชอบที่เหมาะสมสำหรับสมาชิกในทีมแต่ละคนในปีที่แล้วอาจไม่เหมาะกับปีนี้อีกต่อไป เพื่อให้แน่ใจว่าสมาชิกในทีมแต่ละคนยังคงรู้สึกท้าทายและปรับปรุง:

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

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

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

ผู้จัดการผลิตภัณฑ์และผู้จัดการฝ่ายวิศวกรรม

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

ความรับผิดชอบของผู้จัดการฝ่ายวิศวกรรมหกประการที่คุณควรดำเนินการมีดังนี้:

ตรวจสอบให้แน่ใจว่าโครงการได้รับการจัดลำดับความสำคัญอย่างดี

เป้าหมาย 6 ถึง 12 เดือนสำหรับทีมของคุณคืออะไร? ใครคือผู้ชมของคุณ? ลูกค้าของคุณคาดหวังอะไรจากผลิตภัณฑ์? ทีมของคุณอาจรู้ว่าพวกเขากำลังจะทำอะไรในอีกไม่กี่สัปดาห์ข้างหน้า แต่สิ่งสำคัญคือต้องเข้าใจผลิตภัณฑ์ทั้งหมดและทิศทางที่จะไป

มีส่วนร่วมในการตัดสินใจพัฒนาผลิตภัณฑ์

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

กำหนดและขับเคลื่อนกลยุทธ์ทางเทคนิคและวิธีการพัฒนา

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

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

สร้างสมดุลและชำระหนี้ทางเทคนิค และพัฒนาคุณสมบัติใหม่

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

ใช้เทคโนโลยีและระบบอัตโนมัติเพื่อช่วยจัดการหนี้ทางเทคนิค**

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

ตรวจสอบให้แน่ใจว่าการดำเนินการผลิตภัณฑ์เป็นไปตามแผน

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

เทคโนโลยีและการมอบอำนาจ

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

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

ตัวอย่างเช่น ท้าทายตัวเลือกของพวกเขาด้วย “จะเกิดอะไรขึ้นถ้าเรามีผู้ใช้มากกว่า 20 เท่า? มันจะยั่งยืนไหม?” หรือ “เทคโนโลยีนี้จะยังได้รับการสนับสนุนในสองหรือสามปีหรือไม่”

คุณสามารถและควรเสนอแนวทางแก้ไขและกรอบงานทางเลือกตามความรู้และความเชี่ยวชาญของคุณ แต่อย่าบังคับหรือกดดันให้ทีมของคุณยอมรับ นอกเหนือจากคำแนะนำทางเทคโนโลยี คุณยังสามารถให้คำแนะนำเกี่ยวกับกระบวนการพัฒนาและวิธีการ

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

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

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