Kepemimpinan Teknis
— manajerial, developer, pemula — 2 min read
Apakah Anda bingung dengan title manajer Anda yang bermacam-macam? Ada yang menyebutnya "Tech Lead", "Engineering Manager", "Team Lead", "Engineering Lead", dsb. Bahkan ada yang menambahkan judul "Senior" di depannya, itu menunjukkan dia lebih tua atau pengalaman ya? Iya harusnya lazimnya begitu. Tapi sebenarnya apa sih, ada bedanya gak beda-beda title tersebut?
Mengesampingkan title, aku meninjau utamanya di peran organisasinya (khusus engineering) dahulu. Organisasi ini memang tidak bisa kita samakan juga, tergantung ukuran organisasinya. Jumlah orang dibawah 50, 50-100 dan lebih dari 100 pasti akan berbeda juga desain organisasinya. Tetapi aku biasa membagi kelompoknya berdasarkan angka 6-8 orang. Maksudnya?
Manajer disitu dia memegang tim berisi 8 orang, lalu dia akan memiliki satu "director" yang menjadi "manajernya manajer". Biasanya desain ini cocok untuk tim dibawah 50 orang. Masih cenderung flat dan tidak banyak hirarkis. Saat tim makin besar pastinya akan ada skip manager lagi (tim atau gugus terkecil) yang memegang spesifik timnya. Misal tim Marketing Tech ada 1 manajer, lalu karena produknya sudah banyak maka akan ada tim khusus CRM Tech, Promo Tech dsb yang memiliki "manajer" sendiri.
Nah sekarang kita lihat dulu sih apa trait utama manajer yang spesifik di kepemimpinan teknis. Biasanya manajer pasti mengatur orang? Belum tentu, ada yang mengatur keberlangsungan project atau bahkan teknikalnya saja. Aku selalu memisahkan mana yang perlu me-manage orang, dari growth, task dan kebutuhan tim/inisiatif, dengan yang perlu me-manage hal teknikal dan project. Kenapa? Karena tidak mungkin semuanya menjadi akuntabilitas satu orang, teknikal dan project bisa berbeda-beda dinamikanya dengan dinamika tim. Tetapi sudah umum manajer teknis tentu harus bisa me-manage teknikal dan project, tapi tak semua bisa me-manage tim atau orang.
Karena hal tersebut untuk organisasi yang sekitar 50an orang aku membagi dengan dua peran kepemimpinan: Tech Lead dan Lead Engineer.
Tech Lead: https://www.notion.so/ans4175/Tech-Lead-95ad65d453d14dcfa10d49c2c57fd11a
Lead Engineer: https://www.notion.so/ans4175/Lead-Engineer-f81826e8f4914417b697da841e3fc32a
Tech Lead, seperti namanya kata "Tech" muncul lebih awal, jadi dia yang bertanggung jawab ke bagian Teknikal. Dalam desain organisasiku ini tidak berlaku hirarkis, setiap orang bisa menjadi Tech Lead tergantung kapabilitas dan kompleksitas produk yang dibuat. Mereka bertanggung jawab terkait pemilihan arsitektur dan kualitas teknis yang dibuat timnya. Bisa saja untuk suatu produk memiliki 2-3 Tech Lead karena ada kompleksitas di level Backend Services, Frontend dan Mobile App-nya. Biasanya orang yang mendapat pengalaman Tech Lead ini akan tumbuh menjadi System Architect ke depannya apabila tidak menjadi manajer.
Lead Engineer, seperti namanya kata "Lead" muncul lebih awal, jadi dia memang pemimpin tim yang mengembangkan orang (engineer) di dalamnya. Fokusnya di manajemen tim dan memastikan delivery produk/project-nya sesuai ekspektasi, tapi dia dibantu Tech Lead untuk hal ini tentunya. Lead Engineer juga terlibat shaping arah teknis dari tim yang dipimpin, karena dia bisa menangkap konteks lebih banyak dan berbagai stakeholder. Sedangkan yang fokus pada arsitekturalnya nanti bisa dibantu Tech Lead. Kenapa aku tidak memakai istilah "Team Lead"? Karena tim yang dipimpin memang spesifik Engineer, nature-nya pasti berbeda. Kenapa tidak "Engineering Manager"? Karena aku merasa peran utama bukan manajer/bos, tapi harus "memimpin" sehingga istilah "LEAD" lebih tepat dan menjadi beban positif juga.
Lead Engineer bisa juga merangkap peran Tech Lead untuk beberapa domain spesifik yang butuh kemampuan dia. Lead Engineer biasanya agak jarang sebagai contributor utama kecuali hal kritikal ataupun riset tingkat lanjut yang bisa digunakan tim dan Tech Lead lainnya. Tapi bagiku Lead Engineer tetap harus terlibat hal teknis agar tak kehilangan relevansinya dengan teknologi yang dikembangkan.
Lalu menjawab pertanyaan di gambar atas, siapa yang ikut rapat? siapa yang ikut ambil keputusan? Kembalikan lagi saja terhadap akuntabilitasnya. Apabila rapat teknis terkait pengembangan spesifik, bisa Tech Lead dan Lead Engineer. Apabila butuh keputusan terkait alokasi tim, masalah progress project dan tim, tentunya Lead Engineer yang lebih tepat.
Butuh bacaan lebih lanjut? Coba cek artikel Pak Will Larson ini dan ini. Nanti bisa baca bukunya juga kalau perlu.