เมื่อเราเริ่มต้นทีมเราได้รับการสืบทอดกลยุทธ์ตามรุ่นจากผู้ขายที่พัฒนาระบบเดิมที่เรากำลังจะรับผิดชอบ มันใช้งานได้จนถึงเวลาที่ลูกค้าของเราร้องขอว่าไม่ควรรวมคุณสมบัติที่พัฒนาแล้วหลายอย่างในรุ่น (fyi ~ 250k บรรทัดของโค้ด, ~ 2500 ไฟล์, Scrum with XP SDLC)
จากนั้นเราก็เริ่มดูสาขาตามฟีเจอร์ สิ่งนี้ยังใช้งานได้ระยะหนึ่งเช่น 2 เดือนจนถึงจุดที่เราตระหนักว่ากระบวนการทดสอบการถดถอยของเราจะใช้เวลามากกว่า 2 สัปดาห์ซึ่งเมื่อรวมกับความไม่แน่นอนของสิ่งที่จะปล่อยออกมาทำให้เกิดความไม่สะดวกอย่างมาก
"ตะปูในโลงศพ" ขั้นสุดท้ายของกลยุทธ์ SC บริสุทธิ์เกิดขึ้นเมื่อเราตัดสินใจว่าเราควรมี 1. ลำต้นที่มั่นคงและ 2. การผลิตควรมี ST, UAT และการถดถอยที่ทดสอบ BINARIES (ไม่ใช่แค่แหล่งที่มา - คิดว่า CC)
สิ่งนี้ทำให้เราคิดค้นกลยุทธ์ที่เป็นลูกผสมระหว่างคุณลักษณะและกลยุทธ์ SC ตามรุ่น
ดังนั้นเราจึงมีลำต้น การวิ่งทุกครั้งเราแยกสาขาการวิ่งออกไป (สำหรับคนที่ไม่คล่องตัว - การวิ่งเป็นเพียงความพยายามในการพัฒนาแบบแบ่งเวลาโดยมีผลลัพธ์ที่แปรผันตามความซับซ้อน) จากสาขาการวิ่งเราจะสร้างสาขาคุณลักษณะและการพัฒนาแบบขนานจะเริ่มต้นในนั้น เมื่อคุณสมบัติเสร็จสมบูรณ์และทดสอบระบบแล้วและเราได้รับความตั้งใจในการปรับใช้คุณสมบัติเหล่านั้นจะรวมเข้ากับสาขา sprint - บางส่วนอาจลอยข้าม sprint หลาย ๆ ตัวโดยปกติจะเป็นฟีเจอร์ที่ซับซ้อนกว่า เมื่อการวิ่งใกล้สิ้นสุดลงและคุณสมบัติต่างๆเสร็จสมบูรณ์แล้ว ... เราจะ "เปลี่ยนชื่อ" สาขาของการวิ่งเป็น "การถดถอย" (ซึ่งทำให้ CruiseControl สามารถเลือกได้โดยไม่ต้องกำหนดค่าใหม่) จากนั้นการทดสอบการถดถอย / การรวมจะเริ่มต้นในซีซีที่สร้างขึ้น หู. เมื่อเสร็จแล้วก็เริ่มดำเนินการผลิต
ในระยะสั้นสาขาตามคุณลักษณะใช้ในการพัฒนาทดสอบระบบและฟังก์ชันการทำงานของ UAT sprint branch (จริงๆคือ release branch) ถูกใช้เพื่อเลือกผสานคุณสมบัติตามต้องการและการทดสอบการรวม
ตอนนี้เป็นคำถามสำหรับชุมชน - เห็นได้ชัดว่าเรามีปัญหาในการผสานรวมอย่างต่อเนื่องเนื่องจากการพัฒนาเกิดขึ้นในหลายสาขาและค่าใช้จ่ายในการกำหนดค่าใหม่ของ CruiseControl มีใครแนะนำและแนะนำได้บ้าง?