Kami baru-baru ini memiliki masalah di mana fitur untuk aplikasi web kami (pendaftaran otomatis) ditunda oleh manajemen karena mereka merasa permulaannya terlalu "dingin" tetapi mereka menginginkan semua fitur lain yang telah kami kerjakan untuk ditayangkan.
Masalahnya adalah bahwa fungsionalitas ini telah digabungkan menjadi pengembangan ketika selesai bersama dengan semua fitur lain yang kami harapkan akan diluncurkan secara langsung pada rilis berikutnya sehingga kami tidak bisa hanya menggabungkan dev -> test -> master seperti yang biasa kami lakukan.
Bagaimana kita bisa menghindari masalah ini?
project-management
git
gitflow
Steve
sumber
sumber
Jawaban:
Salah satu pendekatan adalah fitur menandai itu. Itu bisa hidup di basis kode tetapi dinonaktifkan oleh konfigurasi.
Pilihan lain untuk membuat komit revert yang mengembalikan gabungan fitur sehingga tidak dalam pengembangan lagi. Cabang baru dapat dibuat yang membalikkan pengembalian, dan dibiarkan menunggu untuk bergabung nanti. Jika Anda menggunakan permintaan tarik Github, Anda dapat melakukannya dengan mudah dengan tombol "kembalikan gabungan" pada permintaan tarik yang digabungkan.
sumber
Feature Toggling
, sebagaimana Doc Brown menyebutnya. Ini juga memungkinkan kami untuk menguji fitur (atau ketiadaan) di lingkungan non-produksi. Kadang-kadang fitur-fitur ini menambah fitur yang ada, dalam hal ini kita harus memiliki unit test untuk set fitur lama dan baru. Setiap tes unit hanya akan mengatur bendera untuk apa pun yang perlu dilakukan tes saat ini.Dari perspektif proses, cari tahu:
Kemungkinan besar ada penurunan dalam komunikasi di sepanjang jalan. Ini penting untuk dimiliki karena ketika tidak berhasil, proses pengembangan Anda akan didasarkan pada pemahaman yang salah dan salah tentang persyaratan bisnis.
sumber
Lupakan sejenak masalah dengan manajemen Anda, dan bayangkan Anda sudah memiliki "fitur pendaftaran otomatis" yang sudah ada dalam rilis produksi terbaru Anda, sangat terintegrasi ke dalam basis kode Anda. Sekarang Anda mendapatkan persyaratan baru untuk menambahkan "off-switch" untuk "pendaftaran otomatis". Bagaimana Anda menangani ini dalam alur kerja Git Anda?
Saya kira Anda akan mendeklarasikan "penonaktifan pendaftaran otomatis dengan konfigurasi" hanya sebagai fitur tambahan (itu hanya bentuk Fitur Toggle ), jadi ini harus diintegrasikan dengan lancar ke dalam alur kerja Anda. Anda dapat memperkirakan upaya, jika suka, Anda dapat menggunakan cabang fitur untuk itu (atau tidak, jika Anda tidak menggunakan cabang fitur untuk masalah seperti itu). Dan Anda pasti dapat menggunakan aliran "uji gabungan - uji -> master" biasa yang Anda gambarkan.
Dan itu sebenarnya cara Anda dapat menangani ini dalam situasi Anda saat ini. Dari sudut pandang alur kerja git, tidak masalah jika permintaan perubahan berasal dari manajemen untuk rilis 1.0, atau jika permintaan perubahan adalah keinginan pelanggan baru untuk rilis 2.0.
sumber
Ini adalah masalah persis yang saya miliki dengan aliran gitflow dan GitHub, dan tampaknya dengan aplikasi web ini sering terjadi - atau lebih seperti norma. Tampaknya Anda akan menyelesaikan masalah ini secara surut (disebutkan di atas) atau secara proaktif (contoh di bawah).
Saya telah membuat 'bundel cabang' di samping cabang gitflow standar. Bundel terdiri dari semua fitur yang siap untuk uat / qa. Daftar fitur uat / qa dibuat. Ini digabung ke dalam bundel sementara, dan bundel itu akan digunakan untuk uat / qa. Setiap perbaikan bug terjadi pada cabang fitur asli, dan itu akan dipasang kembali ke dalam bundel dan digunakan. Ini memisahkan rilis yang akan datang serta memungkinkan pengujian fitur-fitur tersebut bersama sebelum mereka menemukan jalan mereka ke cabang pengembangan. Cabang-cabang yang disetujui mendapatkan permintaan tarik untuk dikembangkan - mengikuti proses gitflow. Fitur siap uji dapat ditambahkan atau dihapus dari cabang bundel sementara dan digunakan kembali.
Kontra mencakup mengelola daftar bundel dan menambahkan jenis cabang lainnya; Namun, selain perbaikan retro, yang saya pikir sudah terlambat, ini tampaknya menjadi solusi yang lebih layak.
Dengan addon GUI, mungkin optimal untuk menandai cabang fitur per penyebaran bundel - dengan otomatisasi dalam pikiran.
sumber