ฉันกำลังคิดถึงคำถามที่แน่นอนนี้มาก
ฉันคิดว่ามันสำคัญที่จะต้องแยกความแตกต่างระหว่างการแบ่งตามความรับผิดชอบส่วนบุคคลและการแบ่งตามความรับผิดชอบของทีม ฉันจะเน้นคำตอบนี้เป็นหลักในการแบ่งทีม
สำหรับพื้นหลังบางอย่าง: ฉันได้ทำงานในโครงการที่มีผู้พัฒนาเต็มสแต็คนักพัฒนาชั้นเดียวทีมแนวตั้ง (เต็มสแต็ค) ทีมแนวนอน (ชั้นเดียว) และทีมแนวทแยง โดยทีมแนวทแยงมุมฉันหมายถึงการมีเทียร์ทั้งหมดที่จำเป็นสำหรับเรื่องราว แต่ไม่จำเป็นต้องมีเทียร์ทั้งหมดในระบบและอาจมีนักพัฒนาหลายคนที่มุ่งเน้นไปที่เทียร์เดียวกัน กล่าวอีกนัยหนึ่งในแนวตั้งด้วยจิตวิญญาณ แต่อาจจะค่อนข้างแนวนอนในลักษณะที่ปรากฏหรือในรายละเอียดการใช้งาน
เมื่อเร็ว ๆ นี้ฉันได้ทำงานในกลุ่มที่เปลี่ยนจากทีมแนวนอนเป็นทีมแนวขวาง มันเป็นคำแนะนำโดยเฉพาะอย่างยิ่งที่จะเห็นคนกลุ่มเดียวกันจัดสองวิธีที่แตกต่างกัน มันทำให้ข้อดีและข้อเสียค่อนข้างชัดเจน
ฉันจะสรุปความคิดเห็นของฉันจนถึงการเปรียบเทียบสรุปต่อไปนี้:
ทีมแนวนอน
ข้อดี:
- ส่งเสริมการแบ่งแยกที่ดีของความกังวลและชั้นที่สองอย่างหลวม ๆ
- การจัดการการกระจายภาระงานง่ายขึ้นมาก
- ง่ายสำหรับผู้เชี่ยวชาญด้านเทคนิคในการจัดการ
- ส่งเสริมการทำงานร่วมกันภายในชั้นเรียนแนวปฏิบัติที่ดีที่สุดความภาคภูมิใจและวัฒนธรรมแห่งความเป็นเลิศ
- สอดคล้องกับรูปแบบการสื่อสารตามธรรมชาติ / ฉุกเฉิน
ข้อเสีย:
- สามารถนำไปสู่การแยกชั้นและทำให้การสื่อสารระหว่างชั้น
- เปิดใช้งานการเพาะเลี้ยงระดับ "ฟอง" หากไม่ได้รับอนุญาต
- ยากที่จะใช้ประโยชน์จากภาวะผู้นำที่เป็นผู้นำ
- เป็นอุปสรรคขัดขวางกลุ่มคนทั่วไป
ทีมแนวตั้ง / แนวทแยง
ข้อดี:
- ทุกส่วนของเรื่องราวผู้ใช้ในหนึ่งทีม ("ร้านค้าครบวงจร")
- ช่วยโดยเฉพาะในการส่งมอบเรื่องราวในระดับ n ด้วยการวิ่งเพียงครั้งเดียว
- ส่งเสริมความร่วมมือระหว่างเทียร์และการเติบโตของทักษะทั่วไป
- รองรับผู้ใช้งานทั่วไป
ข้อเสีย:
- การจัดการการกระจายเวิร์กโหลดที่ยากมากขึ้น
- เปิดใช้งานการแยกความกังวลที่ไม่ดีและเทียร์คู่แน่น
- เป็นอุปสรรคต่อความเชี่ยวชาญโดยการลดการสื่อสารภายในองค์กร เป็นการยากที่จะเห็นว่าวัฒนธรรมแห่งความเป็นเลิศสามารถเกิดขึ้นได้จากโครงสร้างนี้โดยไม่ต้องเพิ่มพฤติกรรมแนวนอน / ผู้เชี่ยวชาญ
ฉันไม่คิดว่าการเป็นสมาชิกในทีมจะมีวิธีแก้ปัญหาเดียวที่พอดี ดูเหมือนว่าจะตรงไปตรงมาอย่างไรก็ตามทีมแนวดิ่งเข้าแถวได้ดีกว่าสำหรับองค์กรที่ต้องการความเห็นทั่วไป หากวิศวกรของคุณเป็นผู้ใช้งานทั่วไปและชอบทำงานเต็มสแต็คนั่นเป็นเหตุผลที่ดีที่คุณควรพิจารณาทีมแนวดิ่ง ทีมแนวนอนจัดแนวที่ดีขึ้นสำหรับองค์กรที่ต้องการผู้เชี่ยวชาญ หากวิศวกรของคุณเป็นผู้เชี่ยวชาญนั่นเป็นเหตุผลที่ดีที่จะพิจารณาทีมแนวนอน
ตามที่คนอื่น ๆ ได้กล่าวถึงโครงสร้าง / พฤติกรรมรองที่แบ่งส่วนอื่น ๆ สามารถช่วยลดข้อเสียของทั้งสองระบบได้ หนึ่งในปัจจัยบรรเทาที่น่าสนใจคือระยะเวลาการวิ่ง การวิ่งระยะสั้นทำให้เกิดข้อเสียของทีมแนวนอนที่ทนได้มากกว่า หากคุณสามารถสร้างแบ็กเอนด์ในสัปดาห์นี้และส่วนหน้าในสัปดาห์หน้านั่นอาจเร็วพอใช่ไหม
เพื่อนำหลักการที่เสนอมาเหล่านี้ไปใช้กับปัญหาในโลกแห่งความจริง ... ฉันจะบอกว่าชิ้นส่วนแนวนอนทำงานได้ค่อนข้างดีสำหรับทีมพัฒนา SaaS ที่แท้จริงที่ฉันได้ทำงานมาแล้ว ความเชี่ยวชาญเป็นสิ่งที่ฉันคิดว่าสำคัญมากอย่างไม่น่าเชื่อ) ซึ่งความถี่ในการส่งมอบ (และความน่าเชื่อถือในระดับสูง / ความถี่) เป็นสิ่งสำคัญต่อความสำเร็จของธุรกิจ โปรดทราบว่าข้อสรุปนี้มีไว้สำหรับทีมในโลกแห่งความเป็นจริงโดยเฉพาะไม่ใช่คำแถลงทั่วไปเกี่ยวกับการแบ่งส่วนแนวนอน
ข้อแม้หนึ่ง: ฉันอาจจะลำเอียงต่อการเรียกร้องความเชื่อของบุคคลทั่วไปในโลกการพัฒนาซอฟต์แวร์ที่ทันสมัยโดยไม่มีข้อพิสูจน์ที่สำคัญแม้ว่าฉันจะรู้จักผู้รู้เห็นที่พิเศษที่หายากไม่กี่คน ฉันรู้สึกว่าคำสั่งทั่วไปนั้นค่อนข้างสูง (ตามแนวตั้ง?) โดยเฉพาะอย่างยิ่งเมื่อแต่ละระดับเติบโตขึ้นด้วยความซับซ้อนและด้วยการเพิ่มขึ้นของภาษา / แพลตฟอร์ม / กรอบ / การใช้งานทางเลือกที่แตกต่างกัน วันนี้โดยเฉพาะอย่างยิ่งแจ็คของการซื้อขายทั้งหมดได้อย่างง่ายดายเป็นหลักของใคร นอกจากนี้โดยทั่วไปฉันพบว่าคนส่วนใหญ่ต้องการที่จะมีความเชี่ยวชาญค่อนข้างน้อยอีกครั้งด้วยข้อยกเว้นบางอย่าง