Bagaimana membujuk pengembang untuk mulai menggunakan fitur toggle flag?

20

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 .

Evgeny
sumber
Versi sempit untuk pertanyaan devops.stackexchange.com/questions/4/… .
Evgeny
1
Oeps, saya baru sekarang melihat Anda komentar baru (dan memperbarui). Setelah saya baru saja memposting pertanyaan baru tentang mereka. Mungkin Anda ingin memposting jawaban untuk pertanyaan baru saya (di mana Anda memiliki lebih banyak ruang untuk benar-benar menjelaskan hal-hal ini)? Jika Anda melakukannya, pastikan itu bukan jawaban hanya tautan (saya percaya Anda tahu apa artinya itu di situs SE, kan?).
Pierre.Vriens

Jawaban:

18

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:

  • Temukan kerangka kerja fitur toggle. Manajemen / bisnis mungkin lebih setuju untuk mencoba sesuatu yang didukung oleh sistem umum
  • Mulai dari yang kecil. Perkenalkan sistem sakelar berdasarkan percobaan untuk fitur yang akan menunjukkan utilitasnya.
  • Tunjukkan kemampuan sakelar untuk melakukan pengujian A / B. Aktifkan sakelar untuk subset peternakan web Anda, lalu kumpulkan metrik perilaku. Perbedaan kecil dalam tata letak halaman telah terbukti memiliki efek besar pada pendapatan untuk aplikasi ritel (mis. Ebay, Amazon)
Dave Swersky
sumber
2
+1 untuk bit kerangka kerja. Saya telah melihat terlalu banyak orang menggulung matikan fitur mereka sendiri dan selalu jahat, kode jahat.
Jduv
Tentang bit framework, ada OSS menarik dari Intuit bernama Wasabi github.com/intuit/wasabi
Evgeny
Rekomendasi buku tentang membujuk pengembang lain - Mengemudi Perubahan Teknis oleh Terrence Ryan
Liath
8

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.

Tanpa Pengembalian Uang Tanpa Pengembalian
sumber
4

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.

Dan Cornilescu
sumber
2

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).

Stuart Ainsworth
sumber
0

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.

Sudharsan S
sumber
Saya sudah berada di organisasi di mana pengembang adalah pemilik produk. Saya telah melihat tindakan manajemen produk seperti pemilik produk beberapa kali. Dan saya telah menjadi tempat di mana tidak ada yang memiliki apa pun. Jadi pernyataan Anda cocok dengan sekitar sepertiga dari pengalaman saya. Mendorong para pengembang untuk menulis hal-hal dengan cara yang akan bekerja lebih baik dalam produksi sepertinya merupakan hal yang umumnya baik bagi saya. Bisakah Anda mengutip otoritas yang mendukung pandangan Anda?
anak ayam