Digital Transformation
Feature Flags (Bendera Fitur)
Feature Flags adalah teknik mengaktifkan atau menonaktifkan fitur tanpa deploy ulang dengan menyimpan sakelar konfigurasi yang dibaca aplikasi saat runtime.
TL;DR: Feature Flags adalah sakelar konfigurasi yang dibaca aplikasi saat runtime untuk menghidupkan atau mematikan fitur tanpa rilis baru. Teknik ini memisahkan deploy dari release, memungkinkan rollback cepat, rilis bertahap per segmen pengguna, dan eksperimen terkendali tanpa membahayakan stabilitas produksi.
Apa itu Feature Flags?
Feature Flags, kadang disebut feature toggles, adalah pola yang membungkus blok kode dengan pengecekan sakelar sebelum dieksekusi. Ketika fitur baru dibangun, kode-nya tetap di-merge ke main branch tetapi disembunyikan di balik flag yang awalnya off. Tim bisa menyalakan flag untuk subset pengguna, misal 5 persen pelanggan internal dahulu, lalu naik bertahap ke 50 persen, lalu 100 persen, sambil memantau metrik kunci.
Pendekatan ini menjadi tulang punggung trunk-based development dan dark launch. Sumber otoritatif seperti Martin Fowler mendokumentasikan pola ini sejak 2010 dan terus diperbarui.
Empat Kategori Feature Flags
| Kategori | Tujuan | Umur tipikal |
|---|---|---|
| Release toggle | Sembunyikan fitur belum siap | hari sampai minggu |
| Experiment toggle | Jalankan A/B test | minggu |
| Ops toggle | Matikan fitur saat insiden | menit sampai jam |
| Permission toggle | Beda akses per tier pengguna | permanen |
Setiap kategori punya pola pengelolaan berbeda. Release toggle wajib dihapus setelah fitur 100 persen aktif, sementara permission toggle bisa hidup selamanya sebagai bagian arsitektur produk.
Kenapa Penting?
Untuk tim produk Indonesia yang sering merilis fitur ke pasar dengan ekspektasi tinggi, feature flags memberi katup pengaman. Saat fitur checkout baru menyebabkan error rate naik dua kali lipat, ops bisa mematikan flag dalam 30 detik tanpa menunggu hot-fix deploy. Praktik ini juga memungkinkan tim marketing menjalankan A/B testing langsung di produksi tanpa membuat cabang kode terpisah.
Pertanyaan Umum
Apakah feature flags membuat kode lebih sulit dipelihara?
Bisa, kalau flag tidak dirawat. Aturan praktis: setiap release toggle harus punya tanggal kedaluwarsa, dan tim engineering wajib membersihkan flag mati dalam dua sprint setelah fitur stabil. Tanpa kebersihan ini, codebase cepat dipenuhi cabang kondisional yang membingungkan.
Apa beda feature flags dengan canary deployment?
Canary deployment bekerja di level infrastruktur dengan merutekan sebagian trafik ke versi baru, sedangkan feature flags bekerja di level aplikasi dengan logika kondisional. Keduanya bisa dikombinasikan untuk lapisan keamanan ganda.