Pernyataan masalah:
Diberikan:
- TFS sebagai Kontrol Sumber
- Aplikasi klien desktop berat dengan banyak kode lawas dengan desain arsitektur yang buruk atau hampir tidak ada.
- Klien terus-menerus membutuhkan fitur baru dengan kualitas suara,
pengiriman cepat dan terus-menerus mengeluh pada pengguna yang tidak ramah
Masalah:
Aplikasi tidak diragukan lagi membutuhkan refactoring yang mendalam. Proses ini pasti membuat aplikasi fase stabilisasi yang tidak stabil dan berdedikasi diperlukan.
Kami sudah mencoba:
Refactoring di master dengan penggabungan berkala dari master (MB) ke branch fitur (FB). (Kesalahan saya) Hasil: Banyak cabang tidak stabil.
Apa yang kami sarankan:
Tautan ke artikel (pdf)
Buat cabang tambahan untuk refactoring (RB) secara berkala menyinkronkannya dengan MB melalui penggabungan dari MB ke RB. Setelah RB distabilkan, kami mengganti master dengan RB dan membuat cabang baru untuk refactoring lebih lanjut. Ini rencananya. Tapi di sini saya berharap neraka penggabungan MB ke RB setelah menggabungkan FB ke MB.
Keuntungan utama: Master yang stabil sebagian besar waktu.
Apakah ada alternatif yang lebih baik daripada prosedur?
sumber
Jawaban:
Saya memiliki situasi yang sama di masa lalu. Apa yang saya lakukan:
berbicara dengan pelanggan; Saya tidak tahu apa yang dikatakan manajer Anda, tetapi saya pikir penting untuk berbicara dengan pelanggan dan jujur; dia perlu tahu Anda sedang mengerjakan kualitas produknya. Saya membuat kesepakatan untuk rencana rilis:
pada fase penggabungan 2 solusi (membuat arsitektur + menggunakan kembali fitur dari proyek lama) satu-satunya hal yang dirilis (fitur baru) dibuat pada produk lama; namun, rilis baru hanya berisi perbaikan bug yang penting. Jadi sangat sedikit rilis yang dibuat pada produk lama. Karenanya hal-hal yang diubah dengan mudah digabungkan ke dalam solusi baru.
rilis baru pertama (rilis produk baru) hanya berisi apa yang terkandung produk lama (tidak ada fitur baru); setelah stabilisasi (stabilisasi tidak butuh waktu lama) saya bekerja dengan satu proyek
Saya pikir Anda tidak dapat melarikan diri dari periode rilis sporadis (yang cukup singkat). Penting bagi Anda untuk menyetujui hal ini dengan pelanggan Anda.
sumber