Kami adalah organisasi yang terdiri dari sekitar 200 pengembang yang bekerja terus menerus pada satu produk tunggal (menggunakan kontrol revisi Git) yang rencananya akan dirilis pada tanggal tertentu.
Karena banyaknya pengembang, kami mencoba membuat tim "lintas fungsional" dengan sekitar 10 pengembang di setiap tim, menghasilkan sekitar 20 tim pengembang di organisasi.
Karena kami ingin mempertahankan "standar tinggi" yang berkelanjutan (artinya ketika pengembang melakukan tarikan, produk setidaknya harus dapat dikompilasi, dll) dari produk di repositori utama, kami ingin menggunakan beberapa jenis gerbang berkualitas.
Saya agak tidak yakin bagaimana mengutarakan pertanyaan, tetapi saya bertanya-tanya apakah saya bisa mendapatkan saran tentang metodologi pengembangan untuk sekelompok besar pengembang yang mengerjakan satu produk.
Menurut pendapat kami, salah satu ujung spektrum adalah untuk memungkinkan setiap pengembang untuk berkomitmen langsung ke repositori utama, namun kami khawatir bahwa karena jumlah pengembang yang tinggi / berkomitmen bahwa "repositori utama" akan terus berada dalam tahap rusak, karena untuk kita tidak dapat memiliki "gerbang kualitas" yang menuntut untuk setiap komit.
Ujung lain dari spektrum mungkin seperti (kami pikir Linus Torvalds / Linux melakukannya) pohon atau struktur piramida, di mana "repositori utama" hanya memiliki tiga sumber tarikan, ketiganya hanya memiliki beberapa sumber tarikan tepercaya, dll. Namun, kami merasa bahwa dengan struktur seperti itu perubahan memiliki rantai panjang untuk didaki agar masuk ke "gudang utama". Plus bahwa jika terjadi konflik gabungan, masalahnya akan muncul pada pengembang lain daripada "pengembang asli".
Dengan semua informasi latar belakang dan pendapat yang dinyatakan, bagaimana kita bisa belajar dan membaca metodologi pengembangan yang direkomendasikan untuk begitu banyak pengembang? Bagaimana organisasi besar (Microsoft, Facebook, Ubuntu, dll?) Menata pengembangan mereka?