Chúng tôi là một tổ chức bao gồm khoảng 200 nhà phát triển đang làm việc liên tục trên một sản phẩm duy nhất (sử dụng Git kiểm soát sửa đổi) dự kiến sẽ được phát hành vào một ngày nhất định.
Do số lượng lớn các nhà phát triển, chúng tôi đang cố gắng tạo các nhóm "đa chức năng" với khoảng 10 nhà phát triển trong mỗi nhóm, dẫn đến khoảng 20 nhóm phát triển trong tổ chức.
Vì chúng tôi muốn duy trì "tiêu chuẩn cao" liên tục (có nghĩa là khi nhà phát triển thực hiện thao tác kéo, ít nhất sản phẩm phải có thể biên dịch được, v.v.) của sản phẩm trong kho lưu trữ chính, chúng tôi muốn sử dụng một số loại cổng chất lượng.
Tôi hơi không chắc chắn làm thế nào để diễn đạt câu hỏi, nhưng tôi tự hỏi liệu tôi có thể nhận được một số lời khuyên về phương pháp phát triển cho một nhóm lớn các nhà phát triển làm việc trên một sản phẩm không.
Theo chúng tôi, một đầu của phổ là cho phép mỗi nhà phát triển cam kết trực tiếp với kho lưu trữ chính, tuy nhiên chúng tôi lo ngại rằng do số lượng lớn các nhà phát triển / cam kết rằng "kho lưu trữ chính" có thể liên tục bị phá vỡ, do để chúng tôi không thể có một "cổng chất lượng" đòi hỏi cho mỗi cam kết.
Đầu kia của quang phổ có thể giống như (chúng tôi nghĩ Linus Torvalds / Linux làm điều đó) một cấu trúc cây hoặc kim tự tháp, trong đó "kho lưu trữ chính" chỉ có ba nguồn kéo, ba nguồn này chỉ có một số nguồn kéo đáng tin cậy, v.v. Tuy nhiên, chúng tôi cảm thấy rằng với một cấu trúc như vậy, những thay đổi đó có một chuỗi dài để leo lên để đi vào "kho lưu trữ chính". Thêm vào đó, nếu xảy ra xung đột hợp nhất, vấn đề sẽ thuộc về nhà phát triển khác ngoài "nhà phát triển ban đầu".
Với tất cả thông tin cơ bản và ý kiến đã nêu, làm thế nào chúng ta có thể tìm hiểu và đọc các phương pháp phát triển được đề xuất cho rất nhiều nhà phát triển? Làm thế nào để các tổ chức lớn (Microsoft, Facebook, Ubuntu, v.v.) cấu trúc sự phát triển của họ?