ทีมแย่งชิงไม่ปฏิบัติตามหลักการ YAGNI


13

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

จากสิ่งนี้และการสนทนาที่ฉันมีกับเจ้าของผลิตภัณฑ์ฉันสร้างต้นแบบสำหรับการตอบกลับ API (HAL + JSON) มันง่ายมาก JSON ที่สอดคล้องกับ HAL ซึ่งไม่ได้ทำอะไรมากไปกว่าการเป็นตัวแทนของสิ่งที่อยู่ในการจำลอง ฉันไม่ได้รับอิทธิพลจากความคิดในอนาคตที่นักธุรกิจเล็งเห็นเนื่องจากพวกเขามีแนวโน้มที่จะเปลี่ยนความคิดของพวกเขาบ่อยครั้งและฉันตัดสินใจที่จะใช้วิธีการที่เรียบง่าย ข้อเสนอของฉันถูกปฏิเสธโดยทีมงานและฉันได้รับคะแนนมากกว่า 7 ต่อ 1

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

เวลาส่วนใหญ่ที่เราถกเถียงกันเกี่ยวกับสิ่งที่ไม่ได้เป็นส่วนหนึ่งของการวิ่งหรือไม่ได้กล่าวถึงในการจำลอง ปัญหาที่อธิบายไว้คือ "จะเกิดอะไรขึ้นถ้าการตลาดในอนาคตจะ ... ", "จะเกิดอะไรขึ้นถ้าธุรกิจอาจต้องการให้เรา ... "

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

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

เป็นมูลค่าการกล่าวขวัญว่าผลิตภัณฑ์นี้เป็น MVP ขั้นต้น


11
I'm afraid if such thing can become a precedence for upcoming, more complicated debates?- นั่นเป็นการละเมิด YAGNI: กังวลเกี่ยวกับอนาคตที่อาจไม่เกิดขึ้น หากคุณกำลังจะยืนหยัดอยู่บนพื้นดินคุณควรทำเช่นนั้นแล้ว
Robert Harvey

@gnat: นี่ไม่ได้เกี่ยวกับการ จำกัด เวลา
Robert Harvey

การเป็น HAL-Compliant นั้นไม่ได้ขึ้นอยู่กับ YAGNI หรือไม่?
แมทธิว

@Matthew สิ่งทั้งหมดใช้เวลาหนึ่งสัปดาห์และฉันยังเตรียมต้นแบบอื่นโดยใช้ JSON ธรรมดาเพื่อกำจัด HAL แต่มันก็ถูกปฏิเสธว่า "ไม่ยืดหยุ่นพอ" ทีมแก้ไขมันและเวอร์ชันที่แก้ไขนั้นถูกใช้ในที่สุด HAL ใช้งานได้กับเราในฐานะมาตรฐานชุดของแนวทางและมันง่ายกว่าสำหรับฉันที่จะบังคับใช้โครงสร้างแบบสม่ำเสมอในจุดสิ้นสุดทั้งหมด API ก่อนหน้านี้ไม่ได้ใช้มาตรฐานใด ๆ และมันก็ยังไม่จบ
Jacek Kobus

5
ความยืดหยุ่นเพิ่มความซับซ้อน ตราบใดที่ทีมเข้าใจว่าสามารถก้าวไปข้างหน้าได้
Jon Raynor

คำตอบ:


10

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

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

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

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

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


5
คนส่วนใหญ่ต้องแตะที่เตาเพื่อเรียนรู้มันร้อนและไม่ต้องสัมผัส ซอฟต์แวร์เหมือนกันมาก ++
RubberDuck

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

@ RobbieDee: แน่นอนถ้ามันช่วยให้ทีมเรียนรู้เกี่ยวกับ YAGNI และ KISS
Doc Brown

3
กระสุนนัดที่ 3 (ทำงานด้วยทักษะของคุณในการออกแบบการขายไม่ได้รับความสนใจเพียงพอ นี่คือเหตุผลที่นักพัฒนายังต้องมีทักษะการสื่อสารที่ดี
Randall Stewart

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

8

ความเข้ากันได้ไปข้างหน้าเป็นเรื่องที่ถูกต้องตามกฎหมาย

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

เช่นเดียวกับข้อกำหนดอื่น ๆ คุณต้องมีเกณฑ์การยอมรับ

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

มันไม่ควรเป็นการเรียกวิจารณญาณ

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


1
ในคำถามคุณอ่านว่าทีมของ OP ออกจากเส้นทางของ YAGNI เนื่องจากข้อกำหนดด้านความเข้ากันได้ไปข้างหน้าหรือไม่?
Doc Brown

ความเข้ากันได้ไปข้างหน้าคือสิ่งที่Content-Typeส่วนหัวมีไว้สำหรับ
แจ็ค

2
ฉันยินดีที่จะเรียกมันอย่างอื่นถ้าคุณต้องการอาจจะขยายได้ ประเด็นคือเหมือนกัน; มันยังคงเป็น NFR
John Wu

1
มีสองวิธีในการทำให้ระบบขยายได้ วิธีที่หนึ่งพยายามคาดการณ์การเปลี่ยนแปลงข้อกำหนดที่อาจเกิดขึ้นมากมายและกำหนดสิ่งต่าง ๆ ที่สามารถกำหนดค่าได้อย่างมาก ฉันมั่นใจว่าเราสามารถประดิษฐ์การทดสอบเพื่อยอมรับการขยายประเภทนี้ได้มากมาย หรือทำให้สิ่งต่าง ๆ เรียบง่ายที่สุดเท่าที่จะเป็นไปได้เพื่อให้รหัสฐานมีขนาดเล็กง่ายต่อการเข้าใจและสามารถเพิ่มจุดขยายหรือ abstractions ได้ในภายหลังเมื่อจำเป็นจริงๆ สิ่งหลังคือสิ่งที่คุณไม่สามารถ (หรือจำเป็น) ทดสอบการเขียนสำหรับ ดังนั้นฉันไม่คิดว่าสิ่งนี้สามารถแก้ไขได้ง่าย ๆ โดย "การเขียน NFRs ที่ไม่ได้พูดลง" ...
Doc Brown

... ดังนั้นนี่คือเพิ่มเติมเกี่ยวกับวิธีจับทีมนักพัฒนาที่สร้างสรรค์อาจกลับมาจากการตั้งสมมติฐานเกี่ยวกับ NFR และประดิษฐ์บางอย่าง
Doc Brown

3

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

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


3
1 การคาดการณ์และวางแผนสำหรับการเปลี่ยนแปลงไม่ได้เป็นสิ่งเดียวกับนักบินอวกาศจะสถาปัตยกรรมเต็มรูปแบบและการสร้างแพลตฟอร์มภายใน การวางรากฐานเล็กน้อยตอนนี้สามารถป้องกันการทำงานจำนวนมากได้ในอนาคต ในขณะที่ทีมของ OP อาจเอนตัวไปในทิศทางของสมมุติฐานมากเกินไป แต่แนวทางของ YAGNI แบบหวุดหวิดนั้นไม่ได้ผลแน่นอน
amon

4
มันฟังดูมากกว่าที่คุณจะออกเสียง out OP อย่างมีความสุขและทำผิดพลาดเหมือนกันในการวางแผนสำหรับ"จะเกิดอะไรขึ้นถ้าการตลาดในอนาคตจะ .. " มากกว่าส่วนที่เหลือของทีม เมื่อผู้คนเริ่มสร้างเฟรมเวิร์กแทนที่จะเป็นแอพพลิเคชั่นซอฟต์แวร์เมื่อภารกิจคือการสร้างแอพพลิเคชั่นซอฟต์แวร์พวกเขามักทำผิดพลาดอยู่เสมอ
Doc Brown

@DocBrown เทคนิคฉันจะเห็นด้วย อย่างไรก็ตามคดีนี้ดูเหมือนว่าจะเกี่ยวกับความเต็มใจที่จะอำนวยความสะดวกเมื่อเทียบกับการเรียกร้องความเคารพส่วนตัว การเป็น "สิทธิ" ในอีกด้านหนึ่งเมื่อเทียบกับการมีประโยชน์หรือช่วยเหลือในทางตรงกันข้าม สิ่งที่ฉันอ่านระหว่างบรรทัดคือ OP กำลังสูญเสียพื้นที่และเลือกที่จะเพิ่มอัตตาของเขาด้วยการตอกย้ำประสบการณ์ของเขาให้กับผู้ชมออนไลน์แทนการมีส่วนร่วมในสภาพแวดล้อมที่เขาไม่รู้สึกสะดวกสบายอีกต่อไป พลังนี้เป็นเรื่องปกติของการต่อสู้
Martin Maat

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

2

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

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

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


3
ประชาธิปไตยอาจเป็นสาเหตุของปัญหาที่นี่ แต่การไม่เป็นประชาธิปไตยนั้น IMHO ไม่มีวิธีแก้ปัญหาเพราะมันสามารถนำเสนอปัญหาที่ใหญ่กว่าปัญหาที่อธิบายไว้ในคำถามได้อย่างง่ายดาย - จริง ๆ แล้วมันสามารถทำลายทีมได้
Doc Brown

@DocBrown คุณเพิ่งโต้แย้งตนเองในประโยคเดียวกัน IMO การตัดสินใจบางอย่างไม่ได้ขึ้นอยู่กับคนที่จะตัดสินใจ สิ่งที่ OP อธิบายคือหนึ่งในนั้น เพื่ออ้างถึง Armstrong สำหรับผู้ที่ไม่ได้ใช้ YAGNI: คุณต้องการกล้วย แต่สิ่งที่คุณได้รับคือกอริลลาที่ถือกล้วยและป่าทั้งหมด
BЈовић

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

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

@oopexpert ปัญหาคือ: คุณอาจต้องการพวกเขา YAGNI พูดกับวิศวกรรม abstractions ที่เหมาะสมเป็นสิ่งหนึ่งการเพิ่มสิ่งที่คุณอาจไม่ต้องการเป็นเรื่องที่แตกต่างกัน
BЈовић

2

มันคิดว่ามีความสับสนเล็กน้อยเกี่ยวกับ YAGNI

นักพัฒนามักคิดว่าพวกเขาติดตาม YAGNI เมื่อพวกเขาละเว้น abstractions ที่จะทำให้ระบบ "ปิดเพื่อการปรับเปลี่ยนและเปิดสำหรับการขยาย"

หากคุณไม่ได้ "ขยาย" ระบบที่มีฟังก์ชั่น "ชัดแจ้ง" ที่ไม่ได้ร้องขอคุณไม่ได้จัดการกับ YAGNI แนะนำ abstractions ที่การขยายอาจเกิดขึ้นคือ "ความเข้ากันได้ไปข้างหน้า" ที่กล่าวถึงแล้ว

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


2

ปัญหาที่เกิดขึ้นกับ YAGNI และ KISS คือพวกเขาเป็นส่วนตัวและคลุมเครือ

JSON ?? YAGNI! เพียงแค่ส่งสตริง csv!

วัตถุ ?? KISSTUPID !!! เพียงแค่ใช้ gotos !!

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

  • การทดสอบหน่วยสำหรับรหัส
  • การทดสอบการรวมสำหรับ apis
  • การทดสอบ UI อัตโนมัติสำหรับผลิตภัณฑ์สุดท้าย
  • ข้อกำหนดด้านประสิทธิภาพและการปรับขนาด

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

หลังจากนั้นมันก็ผลักไปทำแบบเดียวกัน แต่เร็วกว่า


1

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

สิ่งใดก็ตามที่ส่งมอบเกินกว่าสิ่งนี้จะต้องอยู่ในสิ่งที่ค้างซึ่งตัวมันเองจะมีคำจำกัดความของตัวเองที่ทำ

สำหรับการจัดลำดับความสำคัญวิธีการMoSCoWให้บริการเราอย่างดีเสมอ - YMMV


1

ความคิดแรกของฉันเกี่ยวกับเรื่องนี้คือ ... เพราะเหตุใดทีมจึงกังวลเกี่ยวกับการเปลี่ยนแปลง พวกเขามีความเข้าใจในประวัติศาสตร์ของเจ้าของผลิตภัณฑ์ที่ทำให้พวกเขารู้สึกว่าพวกเขาต้องการสร้างโซลูชันแรกเพื่อให้สามารถกำหนดค่าได้มากขึ้นอีกเล็กน้อยเพื่อให้การปรับปรุงในอนาคตง่ายขึ้นหรือไม่ หากวิธีการแก้ปัญหาของคุณจะใช้เวลา 2 วันและของพวกเขา 5 วันใช่มันเป็นเวลานานกว่าสองเท่า แต่ถ้าการเปลี่ยนแปลงแผนของคุณจะใช้เวลา 2 วันในแต่ละครั้ง แต่การปรับปรุงแผนของพวกเขาจะใช้เวลา 1 วันแผนของพวกเขาดูเหมือนจะมีประสิทธิภาพมากกว่าการลากยาว ฉันไม่คิดว่าจะมีการตัดสินใจที่ถูกหรือผิดในคำถามนี้ ขึ้นอยู่กับปัจจัยอื่น ๆ IMHO อย่างไรก็ตามคุณมีความเข้าใจอย่างถ่องแท้เกี่ยวกับความคิดนี้หากใช้วิธีแก้ไขปัญหาอื่น ๆ พวกเขาเป็นสองเท่าของ LOE โดยไม่มีคำแนะนำโดยตรง (เช่นหลักฐานบางอย่างที่แสดงว่าจำเป็นต้องมีความซับซ้อนเพิ่มเติมสำหรับความสามารถในการขยายขีดความสามารถ ข้อเสนอแนะของฉันจะนำเจ้าของผลิตภัณฑ์มาสู่การสนทนาเหล่านี้เพราะพวกเขาต้องการความช่วยเหลือในการจัดลำดับความสำคัญ หากวิธีการแก้ปัญหาของคุณคือ 5 คะแนนและมันจะตอบสนองความต้องการในตอนนี้ แต่สิ่งที่พวกเขาต้องการจะต้องมี 50 คะแนนและสอง sprints หรือมากกว่านั้น PO อาจพูดว่า ไม่สามารถใช้เวลา 2 สัปดาห์ในการสร้างฟังก์ชันการทำงานที่ไม่ได้อยู่ในแผนงาน! "

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