Saya menafsirkan situasi ini sebagai memiliki dua masalah dasar, mungkin tiga.
- Pemutakhiran SDK yang tidak diinginkan membuatnya menjadi sumber, di mana hal itu dapat berdampak negatif pada produk.
- Dari pertanyaan: kontributor yang melakukan peningkatan yang tidak diinginkan tidak tahu tentang keputusan sebelumnya yang spesifik untuk tidak meningkatkan.
Yang pertama, menurut saya, adalah yang paling serius. Jika pemutakhiran SDK yang tidak diinginkan dapat membuatnya menjadi kode, demikian juga masalah lainnya.
Seseorang menyarankan menambahkan case test unit yang akan gagal jika mendeteksi upgrade. Sementara itu akan mencegah upgrade terjadi, saya percaya ini adalah jalur berbahaya, yang mengarah ke aliran lava dari waktu ke waktu. Tampaknya tak terhindarkan bahwa di beberapa titik di masa depan SDK akan ditingkatkan, untuk menghadirkan fitur baru atau perbaikan bug, atau karena versi lama tidak lagi didukung. Bayangkan head-scratching, bahkan mungkin argumen, yang akan terjadi ketika unit test seperti itu gagal.
Saya pikir solusi paling umum adalah menyesuaikan proses pengembangan. Untuk git, gunakan proses tarik permintaan . Untuk Subversion dan alat yang lebih lama, gunakan cabang dan diff. Tetapi memiliki beberapa proses yang memungkinkan pengembang senior untuk menangkap masalah semacam ini sebelum mereka membuatnya menjadi basis kode dan mempengaruhi pengembang lain.
Jika proses permintaan tarikan telah digunakan dalam situasi Anda, dan jika setiap permintaan tarikan sempit dan spesifik, tidak banyak waktu akan terbuang sia-sia. Permintaan tarikan untuk memutakhirkan SDK akan diajukan, dan ditolak dengan komentar bahwa pemutakhiran tidak diinginkan. Tidak ada orang lain yang akan terkena dampak, dan sekarang tidak perlu mengembalikan upgrade SDK.
Tetapi untuk langsung menjawab pertanyaan awal, saya setuju dengan yang lain yang mengharapkan semua pengembang untuk sepenuhnya membaca seluruh sejarah revisi kode, catatan rilis, dll untuk pemberitahuan seperti ini adalah buang-buang waktu yang berharga. Ada apa dengan email tim pendek?
Kemungkinan masalah ketiga: Mengapa pembaruan tidak diinginkan sejak awal? Jelas setidaknya satu pengembang mengira peningkatan akan menjadi hal yang baik. Ada banyak alasan bagus untuk menunda upgrade, tetapi juga banyak alasan buruk. Berhati-hatilah untuk menghindari aliran lahar (kode kompatibilitas ke belakang yang tidak perlu) dan kultus kargo ("kami tidak dapat memutakhirkannya, tetapi saya tidak tahu mengapa") anti-pola!