"ทีมศัลยกรรม" ของ Fred Brooks จัดการกับปัจจัยรถบัสได้อย่างมีประสิทธิภาพหรือไม่?


10

ทีมนักพัฒนาที่มีประสบการณ์ 4 คนของฉันทำงานบนแอพพลิเคชั่น Windows ขนาดใหญ่ (ประมาณ 200 KLoC) ฉันได้มุ่งเน้นไปที่ codebase หลักตั้งแต่จุดเริ่มต้นของโครงการ (3 ปีที่แล้ว) และค่อยๆเปลี่ยนไปสู่ตำแหน่งผู้พัฒนากึ่งนำแม้ว่าฉันไม่ใช่ผู้จัดการทีม

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

ในสามวันนับตั้งแต่เราเริ่มทำงานฉันได้สังเกตสองสิ่ง:

  1. สมาชิกในทีมที่ไม่มีประสบการณ์คนอื่น ๆ ทำภารกิจอย่างน้อย 1 อย่างให้เสร็จ

  2. กฎหมายของ Brook ใช้งานได้ : ฉันใช้เวลาประมาณครึ่งหนึ่งในการให้ความช่วยเหลือ (พยายามสอนพวกเขาเกี่ยวกับการใช้ส่วนประกอบ) เป็นผลให้ฉันทำงาน 2 อย่างด้วยตัวเองแทนที่จะเป็น 5 หรือ 6 อย่างที่คาดไว้

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

  1. จำกัดปัจจัยรถบรรทุก / รถบัส - เพิ่มนักพัฒนาคนอื่น ๆ เกี่ยวกับทักษะเหล่านี้ในขณะนี้ดังนั้นในอนาคตงานใด ๆ ก็สามารถมอบให้กับทุกคนไม่ใช่แค่ฉัน
  2. เพื่อกำจัด "คอขวด" (ฉัน) และทำงานให้เสร็จเร็วขึ้น

เพื่อความชัดเจนฉันไม่มีปัญหากับ: a) ลงทุนสอนเวลา b) คนแตะรหัสของฉันหรือ c) ความปลอดภัยในงาน ในความเป็นจริงฉันแนะนำให้หัวหน้าทีมอย่างสม่ำเสมอว่าฉันฝึกอบรม devs อื่น ๆ ในบางแง่มุมของ codebase หลักเพื่อลดความเสี่ยง

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

ใน Mythical-Man-Month บรูกส์แนะนำ" ทีมศัลยกรรม "ซึ่งทุกทีมประกอบด้วยลีดย่อย + ลีด (ผู้จัดการและฉัน) และบทบาทเล็กน้อย ฉันรู้สึกราวกับว่าเราตกอยู่ในองค์กรนี้โดยธรรมชาติ แต่ผู้จัดการของฉันทำงานกับมัน ฉันรู้สึกว่าปัจจัยรถบัสได้รับการดูแลอยู่แล้ว (ผู้จัดการมีความรอบรู้ในรหัสหลัก) และไม่มีคอขวดจริง (เกี่ยวข้องกับ devs มากขึ้นจะไม่ทำงานเร็วขึ้น) ฉันคิดว่าในเรื่องนี้ทีมศัลยกรรมเป็นสิ่งที่ดี

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

คำถามที่คล้ายกัน:


1
พิจารณาการฝึกอบรมในการสื่อสารทักษะของคุณกับทีม

คำตอบ:


5

ที่จริงแล้วฉันขอยืนยันว่าคุณกำลังติดตามโมเดล "ทีมศัลยกรรม" โชคดี!

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

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

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

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

ประสบการณ์เป็นเพียงชื่อที่เราให้ผิดพลาด

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


ขอบคุณสำหรับคำตอบ. จากนั้นประสบการณ์นี้เป็นการเปิดเผยจุดอ่อนสองประการของทีมงานของเรา: 1) รหัสฐานหลักของเราใหญ่เกินไปและต้องการการทำให้เป็นโมดูลมากขึ้นและ 2) เมื่อเราทำโมดูลให้มากขึ้นนักพัฒนาอื่น ๆ จำเป็นต้องเป็นผู้นำของส่วนประกอบใหม่ ผม. ปัญหาที่ใหญ่กว่าซึ่งไม่จำเป็นต้องเป็นส่วนหนึ่งของคำถามเดิมของฉันคือฉันมีความรู้เกี่ยวกับรหัสมากกว่าผู้จัดการ (ซึ่งเป็นศัลยแพทย์ "ทางการ") ดังนั้นเขาจึงไม่ได้มอบหมายอย่างมีประสิทธิภาพเท่าที่ควร .
Kevin McCormick

@KevinMcCormick - ฟังดูคุณควรอนุญาตให้ผู้จัดการของคุณกังวลเกี่ยวกับสิ่งเหล่านี้ ปรับการประมาณของคุณเป็นตอนนี้รวมถึงการช่วยให้สมาชิกในทีมของคุณทำงาน คุณพอใจกับเหตุผลในการทำเช่นนั้น
Ramhound

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

7

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

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

ในที่สุดผู้จัดการก็เบื่อที่จะรอและเริ่มฝึกทีมของตัวเอง ใช่มันช้ากว่ามากในขณะนี้ แต่ตอนนี้ปริมาณงานของเราดีขึ้นมาก

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

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


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

6

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


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

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

@Ramhound ใช่แน่นอนในกรณีนั้นมันจะเป็นจริงอย่างแน่นอน ฉันไม่ต้องการให้คนอื่นเป็นเจ้าของในสิ่งที่ผมเคยเขียนการเปลี่ยนแปลงทำและเข้าใจมัน (ฉันเป็นประจำให้การฝึกอบรมและเอกสาร) ฉันไม่คิดว่าวิธีการ "ทุกคนทำงานทุกอย่างในระดับเดียวกัน" นั้นมีประสิทธิภาพเทียบกับการกำหนดบทบาทในระดับหนึ่งเนื่องจากเราทุกคนมีทักษะและความเชี่ยวชาญที่แตกต่างกัน
Kevin McCormick

3

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

หากคุณสละเวลาส่งมอบคำถามของคุณคุณจะเริ่มสงสัยได้อย่างรวดเร็วว่าทำไมคุณจึงถามคำถามตั้งแต่แรก

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

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

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

เป็นเรื่องง่ายที่จะเข้าสู่ความคิดของทุกสิ่งที่จำเป็นต้องทำให้สำเร็จโดยเร็วที่สุด ผู้จัดการที่ดีมองเห็นโอกาสที่หายากซึ่งความล่าช้าเล็กน้อย (สำหรับการฝึกอบรมข้ามสายการศึกษา /) สามารถจ่ายเงินปันผลที่สำคัญได้ในภายหลัง


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

3
+1 ผู้บังคับบัญชาบางคนอาจเป็นคนงี่เง่า แต่หลายครั้งที่เจ้านายของคุณมีมุมมองที่กว้างขึ้นและคุณต้องเชื่อใจเขา
Phil

@Phil - ดูเหมือนว่าในกรณีนี้เจ้านายอาจมีมุมมองที่ดี ให้เขากังวลเกี่ยวกับไทม์ไลน์กังวลเกี่ยวกับการมาสายเขาจัดทำประมาณการหลังจากทั้งหมด กรณีที่เลวร้ายที่สุดเวลากระทืบเกิดขึ้นและคุณทำทุกอย่างให้สำเร็จด้วยตัวเอง
Ramhound
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.