- Kapan Staff Engineer dibutuhkan, dan apa perbedaannya dengan Engineering Manager?
- Banyak engineer dan manajer masih bingung dengan dua peran ini
- EM yang ingin menghindari people management dan fokus pada teknologi, atau Senior Engineer yang ingin memegang technical leadership, sering mempertimbangkan hal ini
- Penting untuk memahami dengan jelas tanggung jawab dan cakupan masing-masing peran
Pertanyaan yang pernah saya terima
- EM: "Saya ingin fokus pada teknologi alih-alih people management. Apakah Staff Engineer cocok untuk saya?"
- Senior EM: "Pekerjaan manajerial terlalu banyak. Haruskah saya merekrut Staff Engineer untuk menangani pekerjaan teknis?"
- Staff Engineer: "Secara praktik saya menjalankan peran manajer tim, dan saya menyukainya. Haruskah saya beralih menjadi EM?"
- Senior Engineer: "Apa tanggung jawab Staff Engineer? Kelihatannya seperti developer yang sudah pensiun."
- New Staff Engineer: "Apa itu 'dotted reporting line'? Saya sudah punya line manager, apakah saya juga harus memperhatikan manajer lain?"
Kapan Staff Engineer dibutuhkan?
- Engineer membangun dan memelihara teknologi, tetapi teknologi tidak berdiri sendiri
- Ia adalah solusi untuk suatu masalah, dan masalah itu didefinisikan sebagai produk
- Produk memberikan layanan kepada pengguna akhir atau pelanggan internal
- Produk adalah sarana untuk menyelesaikan masalah pengguna, misalnya:
- aplikasi untuk mengukur jarak lari dan membagikannya dengan pengguna lain
- situs web pemesanan hotel
- platform infrastruktur yang digunakan tim lain
- sistem pelaporan kehadiran kerja
- Engineer yang mengembangkan produk semacam ini umumnya berada dalam tim yang dipimpin oleh Engineering Manager (EM)
- EM memiliki accountability atas anggota tim (engineer) dan artifact teknis yang mereka hasilkan
- Namun, dalam kondisi berikut, sulit untuk menjalankan seluruh tanggung jawab itu dengan baik:
- saat ukuran tim sangat besar
- saat teknologinya terlalu kompleks
- atau ketika keduanya terjadi bersamaan
- Dalam kasus seperti ini, waktu dan energi (bandwidth) EM menjadi terbatas, sehingga sulit menjalankan tanggung jawab penuh atas orang dan teknologi sekaligus
- Jika EM kesulitan menjalankan tanggung jawabnya, ada dua strategi delegasi yang bisa dipertimbangkan:
- Mendelegasikan pekerjaan administratif:
- mengoptimalkan proses dan alat HR, atau
- merekrut asisten untuk mengurangi beban people management
- menempatkan satu asisten khusus untuk satu tim mungkin terasa berlebihan, tetapi ada juga kasus beberapa tim berbagi satu asisten
- alat AI juga dapat menggantikan sebagian pekerjaan mekanis seperti penjadwalan, menjawab pertanyaan manajerial, atau mengumpulkan feedback
- sistem HR yang baik dapat secara drastis mengurangi beban manajemen
- Mendelegasikan pekerjaan teknis:
- merekrut Staff Engineer untuk berbagi beban teknis
- Namun, asisten atau AI tidak bisa menggantikan pekerjaan yang berpusat pada manusia berikut, yang merupakan tanggung jawab inti EM:
- membangun tim yang baik
- mentoring
- performance review
- hiring, dan sebagainya
- Di sisi lain, menyerahkan seluruh pekerjaan teknis kepada Staff Engineer dianggap sebagai anti-pattern
- Staff Engineer tidak boleh menjadi penerjemah teknis bagi EM
- EM tetap harus mempertahankan tingkat tanggung jawab teknis tertentu
- Karena itu, Engineering Manager wajib menjaga kepekaan teknisnya, dan
Situasi ketika Staff Engineer berguna
- Dalam kondisi berikut, Staff Engineer dapat memberikan nilai nyata bagi organisasi:
- ketika ada beban teknis yang sulit ditangani EM
- misalnya: banyak teknologi legacy dan membutuhkan maintenance berkelanjutan
- ada solusi kompleks lintas tim atau membutuhkan pengetahuan teknis yang mendalam
- (meski bukan pola yang disarankan) kadang ada juga EM yang memang tidak teknis
- ketika sebagian pekerjaan teknis dapat diberi accountability yang jelas
- ketika cakupan teknologi melampaui batas yang bisa dikelola satu EM
- Staff Engineer harus bertanggung jawab atas teknologi, bukan atas manusia
- peran ini tidak mencakup pengelolaan anggota tim atau performance review
- Situasi berbeda-beda tergantung organisasi, produk, dan orangnya, sehingga tidak mungkin diterapkan secara universal ke semua kasus
- Catatan: responsibility dan accountability adalah konsep yang mirip tetapi berbeda,
- Staff Engineer seharusnya memiliki karakteristik berikut:
- memiliki pemahaman teknis yang mendalam dan literasi teknis yang tinggi
- memiliki accountability teknis yang jelas
- karena tidak punya tanggung jawab people management, ia punya lebih banyak waktu untuk investasi teknis
- Sebaliknya, EM juga tidak boleh sepenuhnya lepas dari tanggung jawab teknis
- EM tetap perlu terlibat dan memahami teknologi sampai tingkat tertentu
- Nilai sejati Staff Engineer muncul dari technical leadership lintas tim
- Jika Staff Engineer ditempatkan hanya dalam satu tim, masalah berikut bisa muncul:
- tanggung jawab teknis menjadi tumpang tindih
- peran menjadi membingungkan, dan akhirnya satu peran dipecah ke beberapa titel secara tidak efisien
Pengecualian: kapan bisa beroperasi di level tim
- Secara umum Staff Engineer fokus pada technical leadership lintas tim, tetapi dalam situasi berikut, aktivitas di level tim juga bisa dilakukan sementara:
- ketika EM baru perlu cepat memahami legacy tech stack
- ketika Staff Engineer baru melakukan onboarding dari ruang lingkup kecil terlebih dahulu
- ketika technical debt terlalu banyak dan metrik kesehatan sistem memburuk
- ketika maintenance menjadi sulit karena kompleksitas teknis
- Dalam kasus seperti ini, Staff Engineer level tim harus menjadi susunan sementara
-
Nilai sejati Staff Engineer
- berperan sebagai perekat (glue) antar tim
- bekerja langsung di lapangan bersama engineer lain, lalu menyampaikan suara mereka ke manajemen
- biasanya engineer berbicara lebih jujur kepada sesama engineer daripada kepada orang yang memegang wewenang atas gaji, cuti, atau penilaian
- menjalankan leadership teknis yang mendalam
- tidak seperti EM, ia memiliki lebih sedikit rapat, 1:1, dan pekerjaan manajerial, sehingga bisa fokus mengembangkan kemampuan engineering dan kedalaman teknis
-
Risiko terbesar: Ivory Tower Architect
- menjadi teoretikus abstrak yang jauh dari masalah nyata atau kode
- masalah ini dibahas lebih detail dalam Ivory Tower Architect
Peran Staff Engineer untuk sistem lintas banyak tim
- Staff Engineer paling cocok untuk technical leadership yang mencakup seluruh sistem, bukan hanya satu tim
- Dalam esai Will Larson, dijelaskan empat archetype Staff Engineer:
- Tech Lead: pemimpin teknis dalam tim
- Architect: perancang arsitektur sistem
- Solver: pemecah masalah teknis yang kompleks
- Right Hand: tangan kanan yang membantu pemimpin organisasi teknis
- Menyebut Tech Lead di dalam tim pada diagram itu sebagai Staff Engineer terasa kurang tepat
- nilai Staff Engineer yang sesungguhnya datang dari koordinasi lintas tim dan integrasi teknis
- lihat Introduction to Staff Engineering
- Staff Engineer bukan sekadar jabatan, tetapi sikap yang berlandaskan technical leadership
- peran ini menangani koordinasi teknis dan pemecahan masalah di berbagai tim dan produk
- ia memberi pengaruh tanpa otoritas formal atas orang atau produk, dan membantu memimpin strategi serta arah teknis organisasi
- berbeda dengan engineering manager, ia menciptakan nilai lewat keahlian teknis yang mendalam dan kolaborasi lintas organisasi, bukan lewat manajemen
- ia juga tetap hands-on dalam pekerjaan nyata dan berperan sebagai mentor yang membantu pertumbuhan engineer lain
- Dalam organisasi nyata, sistem teknis jarang terbatas pada satu tim saja; sering kali tersebar ke banyak tim atau saling terhubung erat antar tim
- dalam kondisi seperti ini, dibutuhkan Staff Engineer khusus yang bertanggung jawab atas keseluruhan sistem
- dibutuhkan sudut pandang dan rasa tanggung jawab atas sistem secara menyeluruh, terlepas dari tim mana yang menangani bagian tertentu
Staff Engineer harus melewati manusia dan produk, bukan hanya teknologi
- Poin utamanya: teknologi tidak berbicara atau mendengarkan pihak lain
- teknologi tidak bisa berdiri sendiri; ia mendapatkan makna melalui manusia (engineer) dan produk (masalah)
- Agar Staff Engineer benar-benar memberi nilai, ia harus melalui hal-hal berikut:
- berkolaborasi dengan engineer
- berdiskusi dengan tim produk
- Karena itu, Staff Engineer memiliki dotted reporting lines
- hubungan ini tidak formal, tetapi menjadi penghubung penting untuk kolaborasi dan komitmen lintas organisasi
- Sebagian orang yang jeli kadang bertanya mengapa pada diagram panah dari Staff justru mengarah ke posisi yang lebih bawah
- Alasan 1: leadership yang baik dibangun di atas kolaborasi, bukan otoritas
- Staff Engineer menyampaikan permintaan untuk peningkatan teknis kepada EM atau PM di level tim melalui pendekatan kolaboratif
- ini bukan instruksi sepihak, melainkan cara kerja sama yang mempertimbangkan engineer dan product roadmap
- Alasan 2: Staff Engineer adalah IC (Individual Contributor) sehingga tidak memiliki bawahan langsung formal
- jika ada saluran percakapan rutin dengan EM/PM, maka saluran itu idealnya bukan sekadar untuk pelaporan, melainkan untuk dialog dua arah tentang:
- status quo teknologi
- visi teknis untuk memecahkan masalah produk
- strategi teknis organisasi untuk mewujudkannya
- Untuk merapikan struktur pelaporan yang saling terkait ini serta membantu penyelarasan teknis/produk antar tim,
- dokumen strategi tingkat perusahaan sangat berguna
- dasarnya bisa dilihat di Strategy basics
-
Diagnosis
- meneliti ruang masalah, lalu mengidentifikasi isu inti yang perlu diselesaikan dan alasannya
- menjelaskan mengapa strategi dibutuhkan
- mengidentifikasi gejala dan akar penyebab, serta menganalisis mengapa hal itu penting saat ini
- dalam strategi yang buruk, bagian ini sering dihilangkan atau hanya mendeskripsikan kondisi saat ini
- diagnosis yang baik membutuhkan penyelidikan objektif dan sikap seperti detektif
-
Guiding Policy
- ini adalah pendekatan tingkat tinggi untuk menyelesaikan masalah yang telah diidentifikasi
- fokus pada solusi dan menyelaraskan seluruh organisasi
- memberi arah tanpa harus memikirkan ulang setiap detail taktis
- strategi yang buruk sering tidak menghubungkan kebijakan ini (HOW) dengan diagnosis (WHY)
-
Coherent Actions
- ini adalah rencana tindakan konkret untuk menyelesaikan masalah yang didiagnosis sesuai kebijakan
- menjelaskan dengan jelas siapa (WHO), apa (WHAT), dan kapan (WHEN)
- kuncinya adalah koherensi, sehingga berbagai tim bergerak harmonis ke arah yang sama
Cara lain memperkecil cakupan teknis ke satu tim: model Kebab vs Cake
- Struktur organisasi juga bisa dirancang agar teknologi tidak tersebar ke banyak tim, melainkan diselesaikan di dalam satu tim
- Pendekatan yang representatif untuk itu adalah model Kebab vs Cake
- tim dibentuk berdasarkan consumer journey, sebagai pendekatan struktural untuk mempersempit cakupan tanggung jawab teknis
- lihat Kebab vs Cake organization untuk penjelasan lebih lanjut
-
Arsitektur Kebab
- tim disusun berdasarkan fungsi yang disediakan
- user journey melintasi artifact dari banyak tim
- Kelebihan: otonomi dan loose coupling
- Kekurangan: ada risiko handover
-
Arsitektur Cake
- tim disusun berdasarkan user journey
- beban kognitif dikelola lewat lapisan abstraksi
- Kelebihan: ownership end-to-end dan berkurangnya handover
- Kekurangan: ada risiko meningkatnya beban kognitif
- Staff Engineer bukan sekadar peran teknis, melainkan owner yang bertanggung jawab atas keseluruhan sistem dan harus memiliki tiga hal berikut:
- Knowledge:
- pemahaman mendalam tentang tech stack dan masalah produk
- harus mampu menjelaskannya dan, bila perlu, mengimplementasikannya sendiri
- Mandate:
- berada pada posisi yang memungkinkan untuk memberi pendapat tentang bagaimana teknologi seharusnya berkembang dan dipelihara
- Responsibility:
- bertanggung jawab atas kesehatan sistem (insiden, technical debt, dokumentasi, keterputusan teknis, dan sebagainya)
- Staff Engineer bukan peran teknis murni, dan soft skill sangat penting untuk memimpin organisasi secara teknis
- dibutuhkan komunikasi yang berpengaruh, kemampuan kolaborasi, leadership, dan sebagainya
- Namun, jika terlalu berfokus pada soft skill, masalah berikut bisa muncul:
- hanya menyajikan gagasan ideal yang jauh dari kenyataan, tanpa ikut terlibat dalam coding atau pemecahan masalah nyata
- berisiko berubah menjadi Ivory Tower Architect
Penutup
- Tidak semua organisasi membutuhkan Staff Engineer. Dalam kondisi berikut, peran ini bisa jadi tidak diperlukan:
- ketika EM memiliki kemampuan teknis yang cukup kuat dan bisa memimpin teknologi tim secara langsung
- ketika tech stack sehat dan mudah dipelihara
- ketika teknologi tuntas dalam satu tim dan hampir tidak ada dependensi antar tim (model organisasi Cake adalah salah satu contohnya)
- ketika organisasi sudah matang sehingga seluruh sistem dapat berjalan dengan baik tanpa owner tertentu
- Sebaliknya, jika organisasi memiliki Staff Engineer, maka hal-hal berikut harus diperjelas:
- tetapkan technical ownership dengan jelas, dan
- berikan accountability yang jelas kepada Staff Engineer atas tanggung jawab tersebut
- Ringkasan inti:
- Ivory Tower Architect harus dihindari (tidak berpijak pada realitas)
- memecah satu peran menjadi banyak titel itu tidak efisien
- EM yang tidak teknis juga tidak efisien
- Terakhir, tulisan ini bukan hukum mutlak, melainkan esai untuk referensi
- organisasi, teknologi, produk, operasi, dan orang berbeda-beda, sehingga penilaian yang fleksibel sesuai konteks sangat penting
- hindari meniru secara membabi buta (cargo culting) → lihat tulisan terkait
4 komentar
Rasanya seperti tangan kanan CTO.
Staff engineer: orang yang akan didatangi untuk diganggu ketika sudah dicoba berkali-kali tapi tetap tidak berhasil.
Wkwkwk, relate banget
Tidak terlalu berkaitan dengan isi tulisannya, tetapi karena saya sedang memikirkan tentang accountability dan responsibility, tautan berikut sangat membantu.
https://blog.alexewerlof.com/p/accountable-vs-responsible