Dengan asumsi bahwa fitur flag toggle adalah ide yang baik, dan harus diimplementasikan ke dalam kode yang ditulis pengembang. Misalnya Etsy bersumpah oleh mereka sebagai bagian utama dari budaya mereka .
Apa cara yang baik untuk membujuk (dan menegakkan) pengembang untuk mulai menggunakan fitur flag toggle?
Informasi lebih lanjut tentang fitur flag toggles dijelaskan dalam T: Bagaimana cara menggunakan fitur flag toggle , T: Apa yang dimaksud fitur toggle flag dan sangat luas dalam artikel Pete Hodgson pada subjek di blog Martin Fowler .
culture
feature-flags
Evgeny
sumber
sumber
Jawaban:
Matikan fitur adalah praktik umum dalam pengembangan kecepatan tinggi karena mereka menonaktifkan pengembangan dari rilis. Tim pengembang dapat "merilis dengan lembut" fitur baru ke produksi, dalam keadaan dinonaktifkan. Ini memungkinkan fitur untuk dirilis kapan saja. Jika fitur ini tergantung pada pekerjaan atau persiapan lain, ia tidak harus menunggu rilis besar untuk diproduksi.
Sejauh pengembang "meyakinkan" untuk menggunakannya, itu adalah latihan dalam membuat kasus untuk kebebasan yang ditawarkannya. Pengalaman saya adalah bahwa ini bukan penjualan yang sulit bagi pengembang. Manajemennya yang cenderung enggan mencoba hal-hal baru. Coba ini:
sumber
Di dunia yang ideal saya pikir Anda meluncurkan bangunan baru dan kejutan! TIDAK ADA perubahan. Ini karena semua fitur baru Anda berada di belakang sakelar yang padam dengan sakelar dimatikan.
Pasca-penempatan Anda memverifikasi bahwa layanan peluncuran Anda masih berfungsi, telepon tidak berdering lagi (kecuali telepon berdering adalah tujuan Anda, yaitu), dll. Begitu Anda kembali ke operasi stabil yang dikenal, Anda mulai mengaktifkan dan memverifikasi fitur Anda yang baru digunakan.
Sekarang untuk jawaban Anda: Bagaimana Anda ingin bekerja di tim yang sedang dipanggil praktis tidak perlu khawatir dan pengguna kami menyukai kami karena situs dan layanan kami sangat stabil?
Itulah tim yang ingin saya garap.
Anda dapat berhenti membaca di sini jika Anda mau.
Menempatkan segala sesuatu di balik sakelar fitur sepertinya dapat menyebabkan kode spageti di mana-mana. Jika Anda menggunakan IoC dan dapat memilih antara vNow / vNext / vPrevious maka turun untuk mempertahankan konfigurasi Anda. Ya lebih banyak info masuk, ya lebih banyak kelas (componentV1, componentV2, componentV3, dll.) Tetapi Anda benar-benar memiliki sistem yang lebih stabil? Bagaimana? vNext adalah miring? Beralih kembali ke vNow dengan menara kontrol Anda. Sudah seminggu dan vNow memiliki bug halus? Hal yang sama - kembali ke vPrevious dengan mudah.
Tidak ada masalah, tidak ada kekhawatiran, tidak ada waktu tidur, tidak ada stres.
Ini bukan mimpi pipa. Saya dulu bekerja di sana. Seandainya saya bisa menjual ini ke tim saya saat ini.
sumber
Lingkungan pengembangan berkecepatan tinggi yang berhasil biasanya bergantung pada sistem otomatis yang cukup ketat yang melibatkan verifikasi kualitas dengan deteksi dan penolakan terhadap perubahan yang salah yang menyebabkan regresi.
Matikan fitur menawarkan kemampuan untuk melakukan bahkan perubahan yang sedang berjalan, yang belum teruji tanpa ditolak karena menyebabkan regresi di cabang integrasi. Yang mana merupakan insentif yang sangat baik untuk memperkenalkan fitur matikan sangat awal dalam kehidupan fitur.
Salah satu kelemahan menyimpang dari CI benar dan pengembangan fitur bergerak pada cabang fitur adalah kurangnya insentif tersebut. Menambahkan fitur beralih nanti, ketika menggabungkan cabang fitur ke cabang integrasi biasanya lebih sulit, seperti integrasi akhir.
sumber
Pengembang (dan biasanya manajer pengembangan) biasanya mencari dua hasil yang terkait dengan kerangka kerja: kemudahan manajemen, dan kecepatan penyebaran. Anda ingin mengirimkan kode lebih cepat, dan lebih mudah.
Berikan bukti bahwa pendekatan tersebut berhasil; coba buat POC kecil menggunakan flag fitur versus cara lama. Studi kasus kurang penting bagi orang taktis (pengembang \ insinyur) daripada orang strategis (manajemen menengah \ desainer produk).
sumber
Alasan untuk memiliki fitur toggle bukanlah sesuatu yang harus diputuskan oleh pengembang. Ini adalah sesuatu yang harus diperhatikan oleh pemilik produk. Pengembang memungkinkan perubahan ini dengan cara yang paling berkelanjutan dan aman. Saya mengkritik pertanyaan ini.
sumber