Kemarin gw timer meeting standup tim dev agency gw — 22 menit buat 7 orang. Dan ada yang masih nanya "btw progress fitur checkout klien X udah sampe mana?" 5 menit setelah meeting kelar.
Beneran loh. 22 menit, 7 orang. Itu 2.5 jam waktu produktif ke-burn cuma buat saling ngomongin hal yang bisa dibaca 10 detik doang.
Kenapa 90% daily standup itu cuma formalitas gak ada gunanya
Semua orang di industri ini tau lah, daily standup awalnya dirancang buat tim kecil co-located di tahun 2000an, yang semua orang duduk bareng di meja yang sama, gak ada remote worker, gak ada campuran tim dev + design + account yang punya prioritas beda.
Sekarang? Kebanyakan standup udah berubah fungsi jadi 3 hal doang:
- Sesi laporan ke atasan, dimana orang berusaha keliatan produktif walaupun kemarin cuma nyelesain task kecil
- Sesi defensif, dimana orang ngulang kalimat "ada blocker API tapi besok pasti kelar" 3 hari berturut-turut biar gak diinterogasi kenapa delay
- Tempat ngomongin hal yang cuma relevan buat 2 orang, tapi didengerin semua anggota tim yang gak ada hubungannya sama sekali
Bulan lalu kita hitung dari 12 standup dalam satu minggu, cuma 1 yang ada aksi follow up jelas yang langsung dikerjakan hari itu. Sisanya cuma update catatan, gak ada yang tindak lanjutin, gak ada keputusan yang diambil.
Yang ngeselin, banyak tim masih bertahan pake standup sinkron cuma karena "itu bagian dari ritual agile yang bener". Sotoy banget. Agile itu tentang nilai, bukan tentang ngikutin checklist aturan yang dibuat 20 tahun lalu buat konteks tim yang sama sekali beda.
Yang gw coba: Ganti standup sinkron jadi async update template tetap
Gw bukan ngusul hapus standup sama sekali. Yang gw hapus adalah kewajiban semua orang kumpul di jam 9 pagi setiap hari cuma buat bicara gantian.
Sekarang aturan tim kita cuma satu: Setiap orang isi update sebelum jam 9 pagi, pake template cuma 3 kolom doang, gak lebih:
- Apa yang udah selesai dari hari sebelumnya?
- Apa yang lagi dikerjain hari ini?
- Ada blocker yang perlu bantuin siapa, sebelum jam 12 siang?
Gak perlu nulis panjang, cukup bullet point 1 baris per kolom. Kalau ada blocker, langsung tag orang yang bersangkutan, lampirkan link task atau screenshot error, bahas cuma berdua atau bertiga yang terkait, gak perlu bawa semua tim.
Di SatuTim kita simpan semua update ini di fitur Discussions, jadi semua orang bisa lihat kapan aja, gak harus datang meeting, semua riwayat update tersimpan otomatis buat review sprint nanti.
Setelah 1 bulan jalan, kita tarik metrik semua tim, dan hasilnya bikin gw kaget:
- Total waktu rapat tim per minggu turun 82%, dari rata-rata 112 menit per minggu jadi cuma 20 menit doang
- Waktu deep work yang dilaporkan tim naik rata-rata 3 jam per orang per minggu, karena gak ada lagi gangguan meeting di tengah flow coding
- Persentase task yang miss deadline per sprint turun dari 21% jadi 7%, karena blocker gak perlu nunggu meeting besok buat diumumin, langsung diselesaikan hari itu juga
Ada satu klien agensi kita yang timnya 12 orang, setiap hari standup 30 menit, itu total 6 jam per hari waktu tim kebuang cuma buat laporan. Setelah pindah ke async, mereka punya waktu buat ngerjain 2 project tambahan per bulan tanpa perlu nambah karyawan sama sekali.
Kapan standup sinkron masih worth it?
Ini kontroversial tapi, gw gak bilang semua standup sinkron jelek. Ada tepat 3 kasus doang dimana gw masih nyetujui tim buat ngadain standup sinkron harian:
Pertama, minggu pertama sprint, pas kita baru mulai ngerjain project baru yang scope masih banyak abu-abu. Kita kumpul 15 menit semua orang, bahas asumsi masing-masing, biar ada alignment awal yang sama. Setelah minggu pertama, ganti ke async lagi.
Kedua, kalau ada krisis misal production error yang bikin situs klien down, kita kumpul cepat 5 menit buat bagi tugas. Itu bukan standup, itu sesi tanggap darurat, dan cuma diadain pas ada masalah beneran.
Ketiga, tim yang baru terbentuk, yang anggota nya masih belum saling kenal kerja sama, belum tau gaya komunikasi masing-masing. Butuh 2-3 minggu standup sinkron biar ada ritual dan kebiasaan komunikasi. Setelah itu, pindah ke async.
Itu doang. Selain tiga kasus itu, gak ada alasan masuk akal buat ngumpul semua orang tiap hari cuma buat laporan progress.
Banyak orang protes "tapi kita butuh bonding tim dong!". Bonding tim bukan dari dengerin orang ngomongin progress API tiap pagi. Bonding tim dari sesi santuy ngobrol di akhir weekly alignment, atau makan bareng, atau main game online bareng setelah jam kerja. Bukan dari meeting formal yang isinya orang berusaha tidak terlihat tidak produktif.
Kesalahan yang sering bikin async standup gagal total
Gw udah coba ini di 11 tim berbeda, dan ada 3 kesalahan yang selalu muncul bikin orang ngomong "async gak jalan buat tim kita":
Pertama, bikin template terlalu panjang. Kalau lo nambah kolom "rencana 3 hari kedepan", "resiko jangka panjang", "feedback untuk tim", orang bakal males isi, dan isi asal-asalan cuma buat memenuhi kewajiban. Template cuma 3 kolom itu doang, gak lebih. Jangan tambah apapun.
Kedua, masih tetep bikin meeting standup setiap hari cuma buat baca update yang udah ditulis. Kemarin ada klien agensi yang ngeluh async nya gak jalan, ternyata mereka masih tetep meeting 15 menit tiap hari buat baca semua update bareng. Itu sama aja kayak nyuruh orang nulis laporan lalu kumpul buat baca laporan itu bareng. Sia-sia banget.
Ketiga, gak ada aturan jelas soal respon. Kalau ada orang tag kamu ada blocker, kamu harus respon sebelum jam 12 siang, atau kasih tau kapan kamu bisa bantu. Tanpa aturan ini, blocker bakal nggantung 3 hari gak ada yang urus, dan delivery malah jadi kacau.
Ganti sisa waktu itu buat weekly alignment yang beneran berguna
Waktu yang tadinya dipake buat standup harian, kita ganti jadi satu meeting alignment per minggu, 30 menit, di akhir hari Jumat.
Isinya bukan laporan progress per orang. Semua orang udah lihat progress masing-masing dari update async, gak perlu diulang lagi di meeting. Isinya cuma 3 hal:
- Apa pola blocker yang muncul seminggu ini, yang bisa kita perbaiki prosesnya secara bersama
- Apakah ada scope creep dari klien yang perlu kita bahas batasannya
- Apa hal yang bikin tim kesemangatan atau kesulitan minggu ini, yang bisa kita bicarakan bareng
Meeting ini selalu kelar sebelum 30 menit, gak pernah lewat. Gak ada lagi orang yang ngelantur ngomongin hal yang gak relevan buat seluruh tim.
Coba minggu ini, ambil satu hari standup kamu, ganti jadi update async pake template 3 kolom itu. Hitung berapa menit waktu tim kamu yang dapet balik. Kalau setelah sebulan delivery kamu gak naik, silahkan balik lagi ke standup lama. Tapi sampai hari ini, dari 11 tim yang gw ajarin coba ini, cuma 1 yang balik lagi, itu tim yang baru berdiri 2 minggu.
Kalau standup tim lo lebih dari 15 menit tiap hari, sebenernya itu meeting buat update progress, atau buat ngecek siapa yang masuk kerja telat?