Membantu Tim Menjadi Lebih Baik Tanpa Menjadi Ketergantungan Mereka
Sebuah tim stream-aligned sedang membangun fitur baru. Kode berfungsi. Pengujian lolos secara lokal. Namun saat mereka melihat pipeline, mereka sadar perlu menambahkan pemindaian keamanan. Tidak ada satu pun anggota tim yang pernah melakukannya sebelumnya. Mereka bisa menghabiskan waktu berminggu-minggu untuk belajar dari awal. Atau mereka bisa meminta tim platform untuk membangunnya untuk semua orang. Itu bisa berhasil, tapi tim platform sudah memiliki antrean permintaan dari sepuluh tim lain. Bagaimanapun, pengiriman melambat.
Situasi ini terus terjadi di organisasi engineering. Tim membutuhkan kemampuan yang belum mereka miliki. Pengetahuannya ada di suatu tempat di perusahaan, tetapi tidak dapat diakses dengan cara yang membantu tim bergerak maju dengan cepat.
Kesenjangan Antara Memiliki Alat dan Tahu Cara Menggunakannya
Tim platform melakukan pekerjaan penting. Mereka membangun infrastruktur bersama, pipeline yang dapat digunakan kembali, dan layanan terstandarisasi. Namun memiliki platform tidak sama dengan tahu cara menggunakannya dengan baik. Sebuah tim mungkin memiliki akses ke monitoring stack tetapi tidak tahu metrik apa yang penting untuk layanan mereka. Mereka mungkin memiliki template pipeline CI tetapi tidak memahami cara menulis pengujian yang benar-benar menangkap regresi. Mereka mungkin memiliki alat pemindaian keamanan yang tersedia tetapi tidak tahu cara menafsirkan hasilnya atau apa yang harus diperbaiki terlebih dahulu.
Kesenjangan antara ketersediaan alat dan kemampuan praktis inilah yang menjadi tempat enabling team berperan.
Apa yang Sebenarnya Dilakukan Enabling Team
Enabling team membantu tim lain membangun keterampilan spesifik. Area fokus mereka bisa mencakup keamanan, pengujian, observability, praktik CI/CD, atau kemampuan lain yang dibutuhkan tim stream-aligned tetapi belum mereka kuasai.
Perbedaan utamanya: enabling team tidak mengerjakan pekerjaan untuk tim lain. Mereka mentransfer pengetahuan dan keterampilan sehingga tim stream-aligned dapat beroperasi secara mandiri setelahnya.
Pertimbangkan kembali contoh pemindaian keamanan. Enabling team akan:
- Bekerja bersama tim stream-aligned selama beberapa sprint
- Menunjukkan cara mengintegrasikan alat pemindaian ke dalam pipeline mereka
- Menjelaskan cara membaca hasil pemindaian dan memprioritaskan temuan
- Membantu mereka menyiapkan alert dan prosedur respons
- Kemudian mundur setelah tim dapat menjalankannya sendiri
Enabling team tidak memelihara konfigurasi pemindaian keamanan. Mereka tidak melakukan triase pada setiap temuan. Mereka tidak menjadi titik eskalasi permanen. Tugas mereka adalah membuat diri mereka tidak diperlukan lagi untuk kemampuan tertentu tersebut.
Bagaimana Enabling Team Berbeda dari Tim Lain
Perbedaan ini penting karena organisasi sering bingung antara enabling team dengan tim platform atau pekerjaan stream-aligned biasa.
Enabling team vs. tim platform: Tim platform menghasilkan alat, layanan, dan infrastruktur yang dapat digunakan kembali. Enabling team menghasilkan pengetahuan, praktik, dan kebiasaan. Tim platform memberi Anda palu. Enabling team menunjukkan cara mengayunkannya tanpa mengenai jempol Anda.
Enabling team vs. tim stream-aligned: Tim stream-aligned diukur dari fitur dan nilai yang mereka kirimkan ke pengguna. Enabling team diukur dari seberapa cepat tim lain menjadi mandiri di area tertentu. Jika tim yang sama terus meminta bantuan untuk masalah yang sama berbulan-bulan kemudian, enabling team telah gagal.
Sifat Sementara Enabling Team
Enabling team bukanlah struktur permanen untuk satu tim stream-aligned tertentu. Mereka mungkin bekerja dengan Tim A selama dua sprint untuk praktik pengujian, lalu pindah ke Tim B untuk masalah berbeda seperti strategi deployment. Mereka mungkin kembali ke Tim A nanti ketika tim tersebut mengadopsi teknologi baru yang membutuhkan keterampilan baru.
Struktur sementara ini sangat penting. Jika enabling team bertahan terlalu lama, mereka menjadi ketergantungan. Tim stream-aligned berhenti belajar dan mulai mengandalkan enabling team untuk menyelesaikan masalah. Itu mengalahkan seluruh tujuan.
Ketika tim stream-aligned dapat menangani kemampuan tersebut sendiri, enabling team harus mundur. Bukan karena mereka tidak dibutuhkan lagi, tetapi karena mereka telah berhasil.
Contoh Praktis dalam Konteks CI/CD
Enabling team sangat berharga di sekitar praktik pengiriman karena CI/CD menyentuh banyak disiplin ilmu. Berikut adalah situasi di mana enabling team mungkin turun tangan:
Strategi pengujian: Sebuah tim menulis unit test tetapi selalu rusak setiap kali detail implementasi berubah. Enabling team membantu mereka beralih ke pengujian berbasis perilaku yang membuktikan hasil yang berarti tanpa terikat pada struktur internal.
Manajemen lingkungan: Lingkungan staging sebuah tim tidak pernah cocok dengan produksi, sehingga bug lolos. Enabling team membantu mereka memahami apa yang membuat lingkungan berbeda dan cara menutup kesenjangan tersebut.
Feature flags: Sebuah tim ingin menggunakan feature toggle tetapi akhirnya berantakan dengan kode mati dan flag yang tidak terkelola. Enabling team menunjukkan cara mengimplementasikan, memberi nama, dan membersihkan toggle secara sistematis.
Metrik pipeline: Sebuah tim memiliki pipeline hijau tetapi masih mengirimkan fitur yang rusak. Enabling team membantu mereka mengidentifikasi metrik mana yang benar-benar berkorelasi dengan kesehatan produksi dan cara menambahkan gate yang bermakna.
Respons insiden dari sinyal pipeline: Sebuah tim melihat kegagalan build tetapi tidak tahu harus menyelidiki apa terlebih dahulu. Enabling team membantu mereka membangun runbook dan dasbor yang menghubungkan output pipeline dengan keputusan operasional.
Apa yang Bukan Enabling Team
Sangat mudah menyalahgunakan konsep enabling team. Beberapa organisasi memperlakukan enabling team sebagai tempat pembuangan pekerjaan yang tidak ingin dilakukan orang lain. Yang lain menggunakannya untuk mengambil alih masalah sulit secara permanen, yang justru menciptakan hambatan baru.
Enabling team bukan:
- Tim yang mengerjakan pekerjaan membosankan yang dihindari tim lain
- Tim yang mengambil alih tugas kompleks karena mereka satu-satunya yang memahaminya
- Saluran dukungan permanen untuk domain tertentu
- Sekelompok engineer senior yang memperbaiki kesalahan tim lain
Saat enabling team mulai mengerjakan pekerjaan yang seharusnya menjadi milik tim stream-aligned, mereka berhenti menjadi enabling dan mulai menjadi pengganti.
Pemeriksaan Mandiri Cepat untuk Enabling Team
Jika Anda menjalankan atau bergabung dengan enabling team, pertanyaan-pertanyaan ini membantu Anda tetap pada jalur:
- Dapatkah tim stream-aligned menangani kemampuan ini tanpa kami setelah kami pergi?
- Apakah kami bekerja bersama tim atau mengambil alih pekerjaan mereka?
- Apakah kami memiliki kriteria keluar yang jelas untuk setiap keterlibatan?
- Apakah kami mengukur keberhasilan dari kemandirian tim, bukan dari output kami sendiri?
- Kapan terakhir kali tim yang kami bantu membutuhkan kami lagi untuk masalah yang sama?
Jika jawabannya menunjukkan bahwa Anda menjadi ketergantungan permanen, saatnya menyesuaikan pendekatan.
Ukuran Keberhasilan yang Sebenarnya
Enabling team yang melakukan pekerjaannya dengan baik menjadi tidak terlihat. Tim stream-aligned yang mereka bantu tidak lagi memikirkan mereka. Mereka hanya mengirimkan fitur dengan pengujian yang lebih baik, pipeline yang lebih aman, dan deployment yang lebih andal. Transfer pengetahuan berhasil dengan sangat menyeluruh sehingga sumber asli pengetahuan itu terlupakan.
Itulah intinya. Enabling team ada untuk membuat diri mereka tidak diperlukan untuk setiap kemampuan spesifik yang mereka ajarkan. Ketika mereka berhasil, organisasi mendapatkan kapasitas tanpa menambah headcount. Tim menjadi lebih otonom. Pengiriman meningkat bukan karena seseorang membangun alat yang lebih baik, tetapi karena lebih banyak orang tahu cara menggunakan alat yang sudah mereka miliki.
Dan ketika tantangan baru muncul yang tidak dapat dikuasai sendiri oleh satu tim pun, di situlah pola berikutnya berperan: tim complicated-subsystem.