บ่อยครั้งที่จะปล่อยในการต่อสู้แย่งชิงกัน


10

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


3
หากคุณปล่อยทุกครั้งที่มีการทำคุณสมบัติบางทีคุณควรดู kanban แทน Scrum
David

คำตอบ:


10

TL; DR: ปล่อยเมื่อใดก็ตามที่เหมาะสม

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

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


10

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

การวางจำหน่ายสามารถแยกประเภทของการวิ่งซึ่งสิ่งต่าง ๆ จะถูกบรรจุไว้สำหรับการปล่อย

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

หากเป็นกรณีฉุกเฉินคุณมีหลายสิ่งหลายอย่างเกิดขึ้น - การสนับสนุนและการพัฒนา - และคุณควรพิจารณาเปลี่ยนองค์กรให้มีสิ่งต่าง ๆ เกิดขึ้นน้อยลง


ดังนั้นผู้ทดสอบควรทดสอบอย่างต่อเนื่องอย่างไร
นักพัฒนาเมลเบิร์น

4

ถ้างานที่ทีมทำนั้นเอื้อต่อการเผยแพร่หลาย ๆ อย่างในการวิ่งให้ปล่อยมันบ่อยเท่าที่คุณต้องการ

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


ใช่ฉันเห็นด้วย. วิธีที่ดีที่สุดคือการแยกการวางจำหน่ายจากการใช้คุณสมบัติและ / หรือการวิ่ง กระบวนการ (release) จำเป็นต้องสนับสนุนสิ่งนี้ การวิ่งเป็นกรอบเวลา สามารถเผยแพร่ได้ทุกเมื่อหากรุ่นที่คุณวางจำหน่ายผ่าน QA สองสิ่งอาจแตกต่างกัน ทำอย่างไรจึงจะได้สิ่งนี้? ทางเลือกหนึ่งคือการใช้แนวคิด "ไม่มีขยะในลำตัว" สำหรับการจัดการสาขา
Manfred

3

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

แทบทุกรุ่นของเรารวมถึงจุดเรื่องราวและข้อบกพร่อง (ข้อบกพร่อง) ข้อบกพร่องนับเป็น "ชั่วโมงที่ไม่เหมาะ"; มี 5 ชั่วโมงที่เหมาะที่สุดในวันทำงานหมายถึงการเขียนรหัสลงหัวของงานจุดใหม่ อีกสามถึงสี่ชั่วโมงต่อวันคือการประชุมการอภิปรายการออกแบบบางครั้ง "แหลม" (การวิจัยที่มุ่งเน้น / การพิสูจน์แนวคิดการพัฒนาแนวคิด) และงานบกพร่อง; สิ่งที่มีส่วนช่วยให้ผลิตภัณฑ์ดีขึ้นและเป็นส่วนที่จำเป็นของกระบวนการ แต่ก็ไม่สามารถจัดการทั้งทีมได้ทั้งหมด ครั้งเดียวที่เราปล่อยข้อบกพร่องอย่างเดียวคือเมื่อไม่มีเรื่องงานใน backlog ในฐานะของ IPM; จากนั้นเราก็กำหนดเวลาการควบคุมคุณภาพที่เราได้รับคำสั่งให้ "ฆ่าข้อบกพร่องให้มากที่สุดเท่าที่จะทำได้" เนื่องจากการไม่มีข้อกำหนดพร้อมที่จะไปเป็นข้อบกพร่องของ PO เสมอ (และ PO ทำงานให้กับลูกค้า) เราสามารถออกประกาศเปลี่ยนแปลงสัญญาและทำงานกับสิ่งที่เรามี แน่นอนว่าเมื่อเรื่องจริงจบลงและเราเข้าสู่การพัฒนา "การรับประกัน" ข้อบกพร่องล้วนมีอยู่

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


3
ฉันคิดว่าจุดเปรียวคือการที่เราคาดว่าจะเกิดขึ้น
Matthew Flynn

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

"หยุด" เป็นสัญลักษณ์; โดยทั่วไปเราบอกว่างานสร้างล่าสุดที่ CI ผ่านมาเมื่อเวลา 5:00 PM ของวันพฤหัสบดีคืองานสร้างและเราตัดสาขา SVN สำหรับการแก้ไขและดำเนินการต่อ หากคุณไม่ทำตามนั้นหรือการกระทำของคุณไม่ผ่านการทดสอบ CI ทั้งหมดแสดงว่าไม่ได้เปิดตัว
KeithS

1

คุณหมายถึงอะไรโดยการปล่อย? ถ้าคุณหมายถึง PSP - อาจเป็นสินค้าที่สามารถเปลี่ยนได้คุณมีสองตัวเลือก:

  • การแย่งกันโดยหนังสือ (หรือการต่อสู้ระดับ 2) คุณมี PSP ที่ส่วนท้ายของการวิ่งและนั่นคือสิ่งที่คุณแสดงในการประชุมย้อนหลัง
  • ฉันยังได้พบกับภาคเรียนระดับการแย่งชิงกันระดับ 3 ซึ่งทีมงานเชี่ยวชาญเครื่องมือของพวกเขาเช่นการควบคุมแหล่งที่มาและการรวมอย่างต่อเนื่องและย้ายไปที่การส่งมอบอย่างต่อเนื่อง ทีมดังกล่าวสามารถมี PSP หลังจากสร้างทุกคืน (หรือสร้างในกรณีที่ดีที่สุด) การมี PSP หลังจากการสร้างทุกครั้งนั้นไม่ได้หมายความว่าคุณจะแสดงให้ลูกค้าเห็นหลังจากการสร้างทุกครั้ง แต่ก็ยังคงเป็นการเปิดตัวภายในเท่านั้น

ข้อแตกต่างที่สำคัญระหว่างระดับ 2 และระดับ 3 คือในระดับ 2 คุณต้องใช้ความพยายามในการสร้าง PSP ขั้นสุดท้ายเมื่อสิ้นสุดการวิ่ง แต่ในระดับ 3 คุณต้องใช้เงินและความพยายามเป็นครั้งแรกกับเครื่องมือและการกำหนดค่าของคุณ โดยอัตโนมัติตลอดเวลา = ไม่มีความพยายามด้วยตนเองที่เกี่ยวข้อง การบรรลุระดับ 3 อย่างเต็มที่นั้นหายาก


ชื่อทางการ "ระดับการต่อสู้" เหล่านี้คืออะไร? ฉัน googled มันและไม่พบอะไรเลย
เดวิด

@ David: ฉันไม่คิดว่ามันจะเป็นอะไรก็ตาม มันเป็นเพียงวิธีการอื่นในการวัด "วุฒิภาวะการแย่งชิงกัน" - ฉันได้พบการนำเสนอนี้พูดถึงระดับเหล่านั้นแล้ว แต่ฉันพบในหลักสูตร CSM
Ladislav Mrnka

0

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

ไม่ได้หมายความว่าจะไม่มีการนำเสนอในการประชุม Sprint Review / Planning แนวคิดคือทุกสิ่งที่ทีมงานสร้างเสร็จได้แสดงให้เห็นถึง PO (และลูกค้า SME รายอื่น) เพื่อให้พวกเขาสามารถรวมเข้ากับความเข้าใจที่เพิ่มขึ้นของระบบในขณะที่มันวิวัฒนาการ


0

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

  1. เมื่อมีคนตัดสินใจที่จะปล่อยสาขาพัฒนาที่แท้จริงเขาจะรวมการเปลี่ยนแปลงทั้งหมดในสาขาหลักที่ติดแท็กด้วยหมายเลขรีลีสใหม่และผลักดันเข้าสู่ระบบการจัดเตรียมของเรา
  2. กว่า QA ของเราและทีมอื่น ๆ ทุกคนจะได้รับอีเมลพร้อมกับการเปลี่ยนแปลงที่แท้จริงและพวกเขาทดสอบระบบการแสดงละคร
  3. หากพวกเขาพบข้อบกพร่องที่เราแก้ไขพวกเขาในต้นแบบผลักมันไปที่การแสดงละครแล้วรวมต้นแบบกลับเข้าไปในสาขาการพัฒนา
  4. เมื่อระบบการแสดงละครผ่านการควบคุมคุณภาพแล้วต้นแบบก็จะทำงาน

แค่นั้นแหละ. เราใช้คอมไพล์และ maven เป็นระบบ CI และเรามีการทดสอบที่ครอบคลุม ซึ่งเป็นหนึ่งในเหตุผลที่เราสามารถทำสิ่งนี้ได้


0

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

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

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

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

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