ฉันเป็นส่วนหนึ่งของกลุ่มพัฒนา 5 ทีมรวมนักพัฒนาประมาณ 40 คน เรากำลังติดตามวิธีการแย่งชิงกันโดยใช้เวลา 3 สัปดาห์ เรามีการตั้งค่าการรวมระบบอย่างต่อเนื่อง (เจนกินส์) โดยมีขั้นตอนการสร้างใช้เวลาหลายชั่วโมง (เนื่องจากการทดสอบอัตโนมัติที่กว้างขวาง) โดยทั่วไปกระบวนการพัฒนาทำงานได้ดี
อย่างไรก็ตามเราสังเกตว่าหลังจากสองสามวันไปสู่การวิ่งใหม่งานสร้างของเรามักจะไม่เสถียรและยังคงสั่นคลอนจนสิ้นสุดการวิ่ง "หยุดทำ" ผลข้างเคียงของสิ่งนี้คือการสร้างขั้นตอนไกลไปป์ไลน์โดยเฉพาะอย่างยิ่ง UI- / การทดสอบทางเว็บจะไม่ถูกดำเนินการเป็นเวลาหลายวัน ดังนั้นข้อผิดพลาดที่แนะนำใหม่มักตรวจพบได้ช้ามากในการวิ่ง
- การยืนยันแต่ละครั้งจะถูกตรวจสอบกับชุดการทดสอบพื้นฐาน เมื่อตรวจสอบแล้วการเปลี่ยนแปลงจะถูกส่งไปยังต้นแบบหลังจากตรวจสอบโค้ด (Gerrit)
- การทดสอบหน่วยพื้นฐานทำงานทุก 30 นาทีระยะเวลาน้อยกว่า 10 นาที
- การทดสอบการรวมจะทำงานทุก 2 ชั่วโมงและระยะเวลา 1 ชั่วโมง
- UI- / Webtests ทำงานบนการทดสอบการรวมที่ประสบความสำเร็จใช้เวลาหลายชั่วโมง
ขึ้นอยู่กับว่าใครเป็นผู้รับผิดชอบในการสร้างความมั่นคงในระหว่างการวิ่ง (ความรับผิดชอบนั้นจะถูกส่งต่อการวิ่ง) อาจจะมีระดับกลางโฆษณาเฉพาะกิจ "คอมมิชชันหยุด" เพื่อให้ได้งานสร้างกลับมาที่มั่นคง
ดังนั้นเราต้องการ:
- ทีมนักพัฒนาของเราในการพัฒนาและกระทำการเปลี่ยนแปลงในระหว่างการวิ่งไม่ จำกัด
- กระบวนการสร้างของเราที่จะละทิ้งหากขั้นตอนการสร้างล้มเหลวเนื่องจากผลการสร้างต่อมามีความหมายน้อย
- กระบวนการสร้างของเราเพื่อให้ข้อเสนอแนะในการพัฒนาคุณภาพแก่นักพัฒนาในเวลาที่เหมาะสม
รับ (2) คะแนน (1) และ (3) ดูเหมือนจะขัดแย้งกัน ใครบ้างมีวิธีปฏิบัติที่ดีในการจัดการกับเรื่องนี้?
( ขณะนี้เรากำลังคลายจุด (2) และอนุญาตให้สร้างต่อเนื่องแม้ในขั้นตอนการสร้างที่ล้มเหลวฉันยังไม่มีข้อเสนอแนะใด ๆ ที่มีผลต่อคุณภาพของเรา )
ขอบคุณ Simon
several hours
นั่นเป็นปัญหาที่แท้จริง หมายความว่าโซลูชันที่รวมกันนั้นใหญ่เกินไปและกว้างเกินไป คุณควรพิจารณาจัดองค์ประกอบของโซลูชันจากนั้นให้มีโค้ดขนาดเล็กเป็นแพ็คเกจ ดังนั้นการเปลี่ยนแปลงใด ๆ จะเข้าสู่องค์ประกอบเท่านั้นและจะถูกตรวจจับได้เร็วขึ้นมาก การสร้างแบบเต็มจะเพียงแค่ใส่ส่วนประกอบที่รวมเข้าด้วยกันแล้วและจะเร็วขึ้นด้วย จากนั้นคุณจะเรียกใช้การทดสอบบางอย่างเท่านั้นเพื่อให้แน่ใจว่าส่วนประกอบที่ถูกต้องได้รับการแก้ไขแล้ว