ฉันตกใจและตกใจจริง ๆ ตามจำนวนคำตอบที่นี่โดยบอกว่า "ไม่ต้องอัปเดตจนกว่าคุณจะต้อง" ฉันทำอย่างนั้นแล้วและในขณะที่มันง่ายขึ้นในระยะสั้น แต่มันก็ไหม้เหมือนนรกในระยะยาว การอัพเดตที่มีขนาดเล็กและบ่อยครั้งมากขึ้นนั้นง่ายต่อการจัดการมากกว่าครั้งใหญ่และคุณจะได้รับประโยชน์จากคุณสมบัติใหม่การแก้ไขข้อบกพร่องและอื่น ๆ ในไม่ช้า
ฉันไม่ได้ซื้อแนวคิดนี้ว่าการเปลี่ยนแปลงห้องสมุดจะทดสอบได้ยากกว่าการเปลี่ยนรหัส มันเหมือนกัน - คุณกำลังทำการเปลี่ยนแปลงกับ codebase และคุณจำเป็นต้องตรวจสอบก่อนที่จะคอมมิทและลึกมากขึ้นก่อนที่คุณจะปล่อย แต่คุณต้องมีกระบวนการในการทำเช่นนี้เนื่องจากคุณทำการเปลี่ยนแปลงรหัส!
หากคุณกำลังทำงานซ้ำอยู่สองถึงสี่สัปดาห์ฉันขอแนะนำให้ทำการอัปเดตไลบรารีหนึ่งครั้งต่อภารกิจการทำซ้ำให้ทำโดยเร็วที่สุดหลังจากเริ่มต้นเมื่อสิ่งต่าง ๆ ผ่อนคลายกว่าก่อนทำซ้ำเล็กน้อย กำหนดเส้นตายและโครงการมีความสามารถในการรองรับการเปลี่ยนแปลงมากขึ้น หาใครสักคน (หรือเป็นคู่ถ้าคุณจับคู่การเขียนโปรแกรม) เพื่อนั่งดูว่าไลบรารีใดที่ได้รับการปรับปรุงแล้วลองนำแต่ละคนเข้ามาและทำการสร้างใหม่และทดสอบ งบประมาณครึ่งวันถึงหนึ่งวันสำหรับการทำซ้ำแต่ละครั้งอาจจะ หากสิ่งต่าง ๆ ใช้งานได้ให้ตรวจสอบการเปลี่ยนแปลง (ฉันถือว่าคุณเก็บไลบรารี่ไว้ในการควบคุมแหล่งข้อมูลเช่นที่เราทำฉันไม่แน่ใจว่าคุณจะเผยแพร่การเปลี่ยนแปลงอย่างไรในแบบที่ควบคุมถ้าไม่) สิ่งนี้จะง่ายกว่ามากหากคุณมีการทดสอบอัตโนมัติมากกว่าการทดสอบด้วยตนเองทั้งหมด
ตอนนี้คำถามคือสิ่งที่คุณทำถ้ามีการปรับปรุงสิ่งต่าง ๆ - คุณใช้เวลาในการแก้ไขหรือปล่อยมันออกมา? ฉันขอแนะนำให้เอนไปข้างหลัง หากสามารถแก้ไขได้ในหนึ่งชั่วโมงให้ทำ แต่ถ้าการอัปเดตจะใช้งานที่สำคัญเพื่อรวมเข้าด้วยกันให้ยกมันเป็นงานพัฒนาของตัวเองเพื่อประเมินจัดลำดับความสำคัญและกำหนดเวลาเหมือนกับงานอื่น ๆ โอกาสที่จะเกิดขึ้นหากไม่ได้รับการแก้ไขหรือปรับปรุงที่สำคัญมากลำดับความสำคัญจะต่ำและคุณจะไม่มีทางแก้ไข แต่คุณไม่มีทางรู้ว่าเมื่อถึงวันที่มีการอัพเดทซ้ำในวันถัดไปปัญหาอาจจะแก้ไขได้เอง อย่างน้อยตอนนี้คุณก็รู้ว่ามีสิ่งกีดขวางบนเส้นทางการอัพเดทและมันจะไม่ทำให้คุณประหลาดใจ
หากคุณไม่ได้ทำซ้ำความยาวนั้นฉันจะตั้งค่ากำหนดการแบบสแตนด์อโลนสำหรับการอัปเดตบางประเภท - ไม่เกินรายเดือน มีจังหวะโครงการอื่นที่คุณสามารถผูกมันไว้กับเช่นการตรวจสอบสถานะรายเดือนหรือการประชุมคณะกรรมการสถาปัตยกรรม? วันจ่าย? พิซซ่าไนท์ พระจันทร์เต็มดวง? ไม่ว่าคุณจะต้องการอะไรที่สั้นกว่ารอบการปล่อยแบบดั้งเดิมมากเพราะการพยายามอัพเดททุกอย่างในคราวเดียวทุก ๆ 6-18 เดือนจะเจ็บปวดและทำให้เสียศีลธรรม
ไม่จำเป็นต้องพูดว่าหากคุณทำสาขาที่มีความมั่นคงก่อนที่จะเผยแพร่คุณจะไม่ใช้นโยบายนี้กับพวกเขา ที่นั่นคุณจะอัปเดตไลบรารีเพื่อรับการแก้ไขที่สำคัญเท่านั้น