Saya seorang pengembang perangkat lunak di tim tangkas yang cukup besar (kami memiliki delapan pengembang aktif membuat perubahan ke repositori kode tunggal). Setiap dua minggu, kami mendorong versi baru perangkat lunak kami ke produksi. Inilah alur kerja kami saat ini:
- Saat memulai tugas baru, pengembang membuat "cabang fitur" dari cabang pengembangan utama (kami menggunakan git ) dan mengerjakan cabang baru ini
- Setelah pengembang menyelesaikan tugasnya, mereka menggabungkan cabang fitur mereka kembali ke cabang pengembangan
- Pengembang menggabungkan cabang pengembangan ke cabang QA.
- Membangun dipicu dari cabang QA. Output dari bangunan ini digunakan ke lingkungan QA kami untuk memungkinkan penguji memulai pengujian mereka.
Sangat umum bagi penguji kami untuk menemukan masalah dengan fitur-fitur baru yang telah digabungkan ke cabang QA. Ini berarti bahwa pada suatu waktu tertentu, lingkungan QA kemungkinan berisi beberapa fitur baru - beberapa telah teruji dan bebas bug, dan beberapa rusak. Hal ini membuat pelepasan menjadi sulit karena jarang bahwa QA build dalam keadaan siap produksi.
Untuk mengurangi ini, kami telah mencoba untuk memulai "pembekuan QA" yang berarti pengembang tidak menggabungkan cabang pengembangan kami ke cabang QA beberapa hari sebelum rilis. Perbaikan bug ke lingkungan QA dilakukan langsung di cabang QA dan digabung ke cabang pengembangan. Secara teoritis, ini menjaga fitur baru yang rusak dari QA sambil tetap memungkinkan kami untuk memperbaiki masalah yang sudah ada di QA.
Walaupun konsep "pembekuan QA" ini telah sebagian berhasil, sulit untuk dikoordinasikan dan orang-orang sering bingung tentang apakah mereka diizinkan untuk bergabung dengan QA. Sulit juga untuk menetapkan tenggat waktu "pembekuan QA" - semua orang menyukai gagasan ruang bernapas di antara pembekuan dan rilis, tetapi dalam praktiknya, mereka lebih suka memiliki fitur mereka di rilis berikutnya daripada menghormati tenggat waktu.
Apakah ada cara yang lebih baik untuk memastikan bahwa kami memiliki bangunan yang bersih untuk rilis kami setiap minggu?