tl; dr - Kedengarannya sudah waktunya untuk naik ke liga besar. Menempatkan lipstik pada babi tidak membuatnya lebih cantik, kecuali Anda menyukai hal-hal seperti itu ...
Masalah orang
Masalah pertama adalah sinkronisasi komit. JIKA Anda memiliki banyak orang yang bekerja pada kode yang sama pada saat yang sama Anda hanya perlu satu aturan untuk mencegah masalah:
Rule 1: Always pull before you merge/rebase
Ketika datang ke DVCS, sulit untuk membuat perubahan ke cabang jauh (yaitu repositori utama) dan sangat mudah untuk membuat perubahan ke lokal. Setiap orang bertanggung jawab untuk membuat penambahan kode mereka sendiri sesuai dengan keseluruhan yang lebih besar tanpa masalah. Kecuali 2 orang yang berkomitmen pada saat yang bersamaan, Anda seharusnya tidak mengalaminya. Akses komit ke master asal / jarak jauh harus dibatasi hanya untuk beberapa pengembang dan mereka harus menarik perubahan dari pengembang lain melalui cabang pelacakan jarak jauh.
Masalah kode
Bagaimana Anda tahu bahwa perubahan yang Anda lakukan tidak merusak kode?
Jawaban sederhana ... Tulis tes untuk membuktikan tidak. Jika Anda mengabaikan aliran pemikiran TDD (Test Driven Design), inti dari tes ini adalah untuk menambahkan tingkat verifikasi yang memungkinkan Anda untuk mengubah kode tanpa merusaknya.
Rule 2: Don't make assumptions, write proofs (ie tests).
Selain itu, tes penuh harus dijalankan sebelum Anda mendorong ke master asal / jauh.
Pertahankan komitmen Anda sekecil dan seringkas mungkin. Dengan begitu, jika Anda perlu mundur perubahan yang merusak sesuatu di kemudian hari, Anda akan menghemat dari keharusan mengimplementasikan kembali bagian-bagian yang tidak melanggar kode.
Anda mungkin perlu melakukan restrukturisasi organisasi terlebih dahulu
Jika solusi di atas tidak mudah diterapkan, mungkin ada beberapa masalah dengan struktur pengembangan yang perlu ditangani terlebih dahulu.
Pemilik proyek harus menjadi penjaga gerbang. Jika ada masalah penyelarasan komit, mungkin ada terlalu banyak orang dengan akses komit. Bahkan pada proyek besar seperti kernel Linux, hanya segelintir pengembang yang melakukan akses ke repositori master asli / jauh. Sebenarnya ada beberapa level repositori untuk mengelola komit. Alih-alih model komit lapisan tunggal di mana semua orang mendorong perubahan mereka ke asal, model hierarkis memiliki penjaga gerbang yang menarik perubahan dan memverifikasi kualitas mereka sebelum dimasukkan ke dalam proyek. Model komit hierarkis dapat berskala jauh lebih besar dan lebih efektif daripada model lapisan tunggal tanpa mengorbankan kualitas.
Untuk para pengembang yang tidak mendapatkan akses komit, mereka harus belajar membuat cabang pelacakan jarak jauh mereka sendiri (git dan gitorious bagus untuk ini) sehingga para pengembang yang melakukan telah melakukan akses dapat dengan mudah menarik / mengintegrasikan cabang ke asal. Jika perubahannya kecil, tambalan akan bekerja juga.
Kemampuan untuk melakukan perubahan sebelum melakukan penggabungan / rebase mengasumsikan bahwa Anda tidak berkembang di cabang master lokal Anda. Cara mudah untuk menangani ini adalah dengan melakukan tarikan awal sebelum Anda mulai kode, lalu lakukan semua pekerjaan Anda di cabang itu. Cara yang sulit adalah menaburkannya tepat sebelum menggabungkan dan memutar kembali master.
Tentukan gaya pengkodean untuk keseluruhan proyek dan buat devs mengikutinya. Para dev yang berkontribusi harus menulis kode yang sesuai dengan standar / norma proyek untuk meminimalkan pembersihan. Gaya pengkodean bisa menjadi penghalang ego besar dalam proyek terbuka. Jika tidak ada standar yang ditetapkan, semua orang akan membuat kode dengan gaya pilihan mereka sendiri dan basis kode akan menjadi sangat jelek sangat cepat.
Mitos "The Mythical Man Month"
Percaya atau tidak, proyek open source yang lebih besar / lebih sukses tidak berjalan seperti demokrasi. Mereka dijalankan sebagai hierarki. Menyatakan bahwa proyek tidak dapat tumbuh secara efektif di luar 8-10 pengembang adalah naif. Jika itu benar maka mega proyek seperti Linux Kernel tidak akan ada. Masalah yang lebih dalam adalah bahwa memberikan akses kepada semua orang hanya membuat komunikasi yang efektif terlalu sulit untuk ditangani.
Masalah bulan pria mitos sebenarnya bisa diatasi. Anda hanya perlu menjalankan proyek Anda seperti militer. Ada banyak tingkatan dalam hierarki karena sudah menjadi rahasia umum bahwa individu hanya benar-benar efektif dalam mengelola komunikasi dengan segelintir orang. Selama tidak ada satu orang pun yang bertanggung jawab untuk mengelola pekerjaan lebih dari 5-7 orang, sistem tersebut dapat menskala tanpa batas.
Mungkin membatasi pengembang terbaik / berpengalaman untuk melakukan lebih banyak integrasi dan desain / perencanaan tingkat yang lebih tinggi, tetapi itu bukan hal yang buruk. Bagian dari peningkatan adalah membuat langkah untuk memutuskan bahwa proyek tersebut membutuhkan rencana jangka panjang. Orang-orang di tingkat tertinggi yang memiliki investasi terbesar (waktu juga merupakan sumber daya) dalam proyek di masa depan harus dituntut untuk membuat keputusan besar.
Sangat menyenangkan untuk mendengar tentang proyek open source melalui rasa sakit yang tumbuh. Selamat dan semoga berhasil.