Ini semua tentang konteks: seberapa sering Anda melepaskan dan apa yang ada dalam rilis.
Inilah sedikit studi kasus yang saya miliki dengan pekerjaan lama saya, menggunakan metode B (kami menyebutnya cabang dengan sengaja ).
Untuk menempatkan cerita dalam konteks,
- Rilis terdiri dari fitur-fitur baru dalam perangkat lunak kami: mode permainan baru, fungsi baru, opsi konfigurasi baru.
- Siklus rilisnya cukup lama: klien kami adalah universitas yang akan bertahan dengan satu set fitur biasanya satu tahun.
Pengembangan utama dibuat ke dalam bagasi sampai kami mencapai fitur lengkap untuk rilis tertentu. Pada saat itu, kami akan membuat cabang, katakanlah projectname-january2012 dan lakukan pengujian kualitas dan perbaikan bug kami di cabang itu. Setelah kami siap untuk rilis publik, kami akan menandai kode di cabang itu, dan rilis.
Namun, pengembangan pada rilis tidak berakhir pada tag itu. Tidak dapat dihindari, kami memiliki klien yang menemukan bug atau masalah kecil dengan rilis tersebut. Jadi dalam hal itu, yang perlu kita lakukan adalah kembali ke cabang itu, menambal kode dan membuat versi baru dari cabang january2012 yang akan dirilis, dan menggabungkan perbaikan kembali ke bagasi.
Dalam kasus kami, pendekatan ini menguntungkan karena beberapa pengguna lebih suka tinggal dengan rilis yang lebih tua dengan serangkaian fitur yang terbatas, atau hanya karena biaya penggelaran di infrastruktur mereka versi yang sama sekali baru daripada perbaikan terbaru yang menyebabkan beberapa masalah.
Jadi pertanyaan yang harus Anda tanyakan pada diri sendiri adalah:
- Seberapa sering saya melepaskan?
- Apakah rilis saya akan kompatibel 100% ke belakang?
- Apakah klien saya setuju dengan peningkatan total untuk memperbaiki bug?
Jika Anda sering merilis, maka mungkin tidak layak untuk memiliki cabang untuk masing-masing. Namun, jika siklus rilis Anda cukup panjang seperti kasus penggunaan lama saya, dan bahwa penerapan, kompatibilitas mundur, dan klien yang bergantung pada rilis lama mungkin berisiko, opsi B tentu akan menghemat banyak rasa sakit, akan membuat segalanya lebih mudah untuk didukung klien Anda dengan biaya minimal berurusan dengan kekacauan cabang.