Agile - Spikes และ Timeline โดยรวม


9

ทีมกำลังเริ่มโครงการทุนแรกของพวกเขา - A Agile และโครงการดูเหมือนว่าจะสอดคล้องกับระเบียบวิธี (เช่นเราอาจเพิ่งคว้าหนังสือเปรียวและทำตามสูตร) ​​ด้วยความสับสนเล็กน้อย:

โครงการเกี่ยวข้องกับสามสิ่งที่ไม่มีใครในทีมมีประสบการณ์ด้วย: รวมเข้ากับระบบ Foo Payroll สามารถจัดการไฟล์ประเภท XYZ89 (โดยที่ "XYZ89" = ไฟล์บางประเภทที่คุณไม่เคยได้ยิน) และแปลงบางส่วน ไฟล์อื่น ๆ เพื่อให้สามารถจัดการได้โดย Frobnobdicator

ตามที่ฉันเข้าใจแล้วการฝึกแบบ Agile แบบมาตรฐานนั้นคือการกำหนดตารางเวลาสำหรับแต่ละสิ่งเหล่านี้หลังจากนั้นเราสามารถกำหนดได้ว่าจะต้องใช้เวลานานเท่าใด (ฉันไม่แน่ใจว่ามีโอกาสมากที่ลูกค้าจะตัดสินใจไม่ทำ พวกเขาเนื่องจากพวกเขาค่อนข้างแข็งแกร่งข้อกำหนดของโครงการ)

ดังนั้นคำถามของฉันคือ:

  1. เราทำเดือยทั้งหมดขึ้นด้านหน้าในการคำนวณซ้ำครั้งแรกเพื่อให้ได้ประมาณเวลาที่ดีขึ้นในการทำมันและ / หรือทำให้ "โครงกระดูกเดิน" เดินต่อไป

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

วิธีปฏิบัติที่ดีที่สุดในการจัดการ spikes หลายอย่างเมื่อพวกเขาโดยทั่วไปจะไม่สามารถเจรจาต่อรองความต้องการของโครงการ?

agile 

คำตอบ:


4

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

นี่คือเหตุผลที่โครงการเปรียวจำนวนมากมักจะเริ่มต้นด้วยสิ่งที่ฉันชอบที่จะเรียก, Sprint 0

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


1
Bandaids ที่ nips นั้นเป็นสิ่งที่ขาดไม่ได้เลย! และดังนั้นก็คือ Sprint 0 สำหรับทุกคน แต่เป็นโครงการที่มีความเสี่ยงน้อยที่สุด!
Michael

3

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

หากพวกเขาจะไม่จัดลำดับความสำคัญสิ่งที่พวกเขาต้องการคุณจะต้องดิ้นรน

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

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


1
ฉันคิดว่าในกรณีนี้พวกเขาจะต้องมีหนามแหลมเพราะไม่มีใครในทีมเคยทำงานกับระบบ Foo Payroll ไฟล์ XYZ89 หรือ Frobnobdicator มาก่อน เราไม่ทราบว่าจะใช้การรวมกับระบบเหล่านี้ได้นานเท่าใด

@Jordan - ฉันเข้าใจแล้ว แต่ถ้าคุณประเมินการประมาณโมเดลความซับซ้อนซึ่งต่างจากแบบจำลองรายชั่วโมงคุณสามารถเข้าใจได้ว่าจะต้องทำอย่างไร ใช่คุณมีกราฟการเรียนรู้เกี่ยวกับรูปแบบไฟล์และ API - ความซับซ้อนเพิ่มขึ้นเล็กน้อย ใช่คุณต้องทำงานกับกลุ่มเงินเดือน - ความซับซ้อนเพิ่มขึ้นเล็กน้อย นั่นอาจหมายความว่าคุณสามารถทำงานกับหนึ่งในรายการเหล่านั้นและไม่มีอะไรอื่นในการทำซ้ำ
Matthew Flynn

1
ฉันขอแนะนำให้ดูที่เรื่องราวของผู้ใช้ของ Mike Cohn ถูกนำไปใช้ ( amazon.com/User-Stories-Applied-Software-Development/dp/… )
Matthew Flynn

1
โอ้แน่ใจว่าฉันเข้าใจคุณค่าของการประเมินในแง่ของความซับซ้อนสัมพัทธ์เมื่อเทียบกับชั่วโมง ส่วนที่ฉันสับสนคือถ้าวิธีการนี้ถูกต้องสำหรับสถานการณ์ที่ฉันอธิบายมันจะดูเหมือนว่าจะไม่ใช้ spikes ในโครงการใด ๆ เลย (devs จะพูดว่า "เอ๊ะดูเหมือนเป็น 3 ดูเหมือนว่าจะเป็น 5 "แม้ว่าจะไม่มีใครรู้อะไรเกี่ยวกับการรวมเข้ากับระบบ Fizzbot)

ความหวังของฉันคือถ้าไม่มีใครรู้เรื่อง Fizzbot พวกเขาจะบอกว่ามันดูเหมือนเป็น 13 หรือ 21 แล้วก็แยกย่อยงานออกเป็น - 1 เรียนรู้บางอย่างเกี่ยวกับ Fizzbot 2. สร้างการเข้าถึง Fizzbot พื้นฐาน 3. รูปแบบกรณีสำหรับการใช้งาน Fizzbot จริง 4. สร้างแบบทดสอบการรวม 5. สร้างการบูรณาการของ Fizzbot ที่แท้จริง ... คุณรู้ทำลายสิ่งต่างๆลงในสิ่งที่เข้าใจได้
Matthew Flynn

0

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

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

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