Tôi bị sốc - và thực sự kinh hoàng - với số lượng câu trả lời ở đây nói rằng "không cập nhật trừ khi bạn phải". Tôi đã làm điều đó, và trong khi nó dễ dàng hơn trong thời gian ngắn, nó sẽ cháy như địa ngục trong thời gian dài. Thường xuyên hơn, các bản cập nhật nhỏ hơn rất nhiều, dễ quản lý hơn nhiều so với các bản cập nhật lớn thường xuyên và bạn sẽ nhận được lợi ích của các tính năng mới, sửa lỗi, v.v. sớm hơn.
Tôi không mua ý tưởng này rằng các thay đổi thư viện bằng cách nào đó khó kiểm tra hơn thay đổi mã. Điều này cũng tương tự - bạn đang thực hiện thay đổi đối với cơ sở mã và bạn cần xác thực nó trước khi bạn cam kết và sâu hơn trước khi phát hành. Nhưng bạn phải có quy trình để thực hiện việc này, vì bạn đang thực hiện thay đổi mã!
Nếu bạn đang làm việc trong các lần lặp, dài từ hai đến bốn tuần, tôi sẽ khuyên bạn nên cập nhật thư viện một lần cho mỗi lần lặp, để được thực hiện càng sớm càng tốt sau khi bắt đầu, khi mọi thứ thoải mái hơn một chút so với trước khi lặp thời hạn, và dự án có nhiều khả năng để hấp thụ thay đổi. Để ai đó (hoặc một cặp nếu bạn lập trình cặp) ngồi xuống, xem xét các thư viện đã được cập nhật và thử đưa từng người vào và chạy xây dựng lại và kiểm tra. Ngân sách nửa ngày đến một ngày cho mỗi lần lặp, có lẽ. Nếu mọi thứ hoạt động, hãy kiểm tra các thay đổi (tôi giả sử bạn giữ các thư viện kiểm soát nguồn, như chúng tôi vẫn làm; tôi không chắc chắn cách bạn truyền bá thay đổi theo cách được kiểm soát nếu không). Điều này rõ ràng sẽ dễ dàng hơn rất nhiều nếu bạn có các bài kiểm tra tự động so với việc kiểm tra hoàn toàn thủ công.
Bây giờ, câu hỏi là bạn sẽ làm gì nếu một bản cập nhật phá vỡ mọi thứ - bạn có dành thời gian để sửa nó hay bỏ nó đi không? Tôi muốn đề nghị nghiêng về phía sau; Nếu nó có thể được sửa trong một giờ, hãy thực hiện nó, nhưng nếu một bản cập nhật sẽ mất nhiều công sức quan trọng để tích hợp, thì hãy nâng nó thành nhiệm vụ phát triển của riêng nó, để được ước tính, ưu tiên và lên lịch như mọi thứ khác. Cơ hội là trừ khi nó mang lại một số sửa chữa hoặc cải tiến rất quan trọng, mức độ ưu tiên sẽ thấp và bạn sẽ không bao giờ đạt được điều đó. Nhưng bạn không bao giờ biết, vào thời điểm ngày cập nhật lặp đi lặp lại tiếp theo, vấn đề có thể đã tự khắc phục; ngay cả khi không, ít nhất là bây giờ bạn biết rằng có một rào cản trên đường cập nhật và nó sẽ không làm bạn ngạc nhiên.
Nếu bạn không thực hiện các bước lặp đó, tôi sẽ thiết lập một số loại lịch độc lập để cập nhật - không dài hơn hàng tháng. Có một số nhịp điệu dự án khác mà bạn có thể ràng buộc nó, như đánh giá tình trạng hàng tháng, hoặc một cuộc họp hội đồng kiến trúc? Ngày trả lương? Pizza đêm? Trăng tròn? Dù thế nào đi nữa, bạn cần tìm ra thứ gì đó ngắn hơn nhiều so với chu kỳ phát hành truyền thống, bởi vì cố gắng cập nhật mọi thứ trong một lần cứ sau 6-18 tháng sẽ trở nên đau đớn và mất tinh thần.
Không cần phải nói, nếu bạn làm các nhánh ổn định trước khi phát hành, bạn sẽ không áp dụng chính sách này cho họ. Ở đó, bạn chỉ cập nhật các thư viện để nhận các bản sửa lỗi quan trọng.