31 poin oleh xguru 2025-04-08 | 4 komentar | Bagikan ke WhatsApp
  • 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

 
kuthia 2025-04-09

Rasanya seperti tangan kanan CTO.

 
bus710 2025-04-09

Staff engineer: orang yang akan didatangi untuk diganggu ketika sudah dicoba berkali-kali tapi tetap tidak berhasil.

 
bobross0 2025-04-10

Wkwkwk, relate banget

 
ethanhur 2025-04-08

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