Saat ini banyak orang yang heboh di Twitter tentang apakah AS perlu mengimpor talenta terbaik dari negara lain, dan apakah itu berarti talenta teknik dalam negeri Amerika lemah. Bulan lalu, orang-orang meledakkan a belajar yang dimaksudkan untuk menunjukkan bahwa ~9,5% insinyur perangkat lunak tidak melakukan pekerjaan apa pun, dan secara efektif menipu perusahaan. Dan selama sepuluh tahun terakhir, orang-orang telah membicarakan dan menulis tentang dongeng “insinyur 10x”.
Apa sebenarnya arti menjadi insinyur perangkat lunak yang kuat?
Insinyur yang kuat
Menurut pengalaman saya, ukuran sebenarnya dari bakat bukanlah kecepatan atau volume keluarannya, tapi kemampuan untuk melakukan tugas yang tidak dapat dilakukan oleh insinyur lain. Dengan kata lain, insinyur yang kuat dapat melakukan hal-hal yang tidak dapat dilakukan oleh insinyur yang lebih lemah, bahkan dengan banyaknya waktu yang ada. Oleh karena itu, insinyur terkuat lebih kuat dari yang diperkirakan orang: tidak 10x lebih kuat dari insinyur median, atau bahkan 100x, tetapi tak terhingga dalam beberapa masalah. Insinyur terlemah ternyata lebih lemah dari yang diperkirakan orang: bukan 0,1x, tapi 0x. Mereka tidak dapat melakukan hampir semua tugas yang perlu dilakukan dalam organisasi perangkat lunak besar.
Misalnya, ada pemisahan yang tegas antara insinyur yang dapat menyelesaikan proyek yang rumit dan insinyur yang tidak dapat menyelesaikannya. Bukan berarti para insinyur yang lebih lemah melakukannya dengan lebih lambat – mereka sepertinya tidak bisa melakukannya sama sekali. Entah ada insinyur kuat di dekatnya yang memimpin proyek tersebut, atau proyek tersebut gagal. Beberapa lagi contoh kemampuannya seperti ini:
- Memecahkan bug yang sangat sulit (misalnya kondisi balapan di beberapa layanan)
- Memberikan perbaikan yang berarti pada bagian paling sulit dari basis kode lama
- Berhasil melakukan perubahan yang memerlukan pengerjaan ulang arsitektur besar-besaran
Bagi para insinyur terkuat kelas atas, kemampuannya menjadi seperti “meningkatkan SOTA untuk model bahasa besar” dan “membuat mobil self-driving berfungsi”.
Tidak semua insinyur yang kuat dapat melakukan semua tugas ini. Seseorang mungkin hebat dalam memecahkan bug yang sulit tetapi tidak dapat mengirimkan proyek, atau hebat dalam basis kode lama tetapi tidak dapat bergerak cepat. Namun, jika seseorang hebat dalam salah satu hal ini, kemungkinan besar mereka akan hebat dalam sebagian besar hal lainnya. Saya tidak tahu alasannya: mungkin itu hanya kecerdasan mentah, atau bahwa menjadi ahli dalam satu hal membantu Anda mempelajari hal lain, atau bahwa kemampuan-kemampuan ini lebih mirip daripada yang terlihat, atau bahwa tipe insinyur ini berusaha sangat keras dalam segala hal. Namun menurut pengalaman saya, hal itu memang benar.
Saya ingin memperjelas bahwa meskipun kemampuan melakukan tugas individu bersifat hitam-putih, kategori kuat/reguler/lemah ada dalam suatu spektrum. Ada kemungkinan untuk memiliki “insinyur biasa” yang ahli dalam memperbaiki bug yang sulit, atau “insinyur lemah” yang benar-benar pandai menjaga lingkungan pengembangnya tetap berjalan. Anda mungkin berada di batas kabur antara dua kategori.
Insinyur biasa
Tepat di bawah insinyur yang kuat, Anda memiliki insinyur reguler yang merupakan mayoritas di sebagian besar perusahaan. Berikut beberapa contoh kemampuan yang Anda harapkan dimiliki para insinyur ini:
- Memecahkan 95% bug (misalnya bug normal dan tidak terkutuk)
- Mengambil dan mengirimkan sebagian besar tiket JIRA
- Melepaskan diri dari masalah dev env sebagian besar waktu
Seorang kolega di masa lalu pernah menyebut insinyur jenis ini sebagai “pekerja keras”: mereka tidak terlalu cepat, namun mereka akan membuat kemajuan yang stabil dalam tugas teknik dengan tingkat kesulitan normal. Sekarang saya berpikir “plodder” adalah nama yang tidak perlu merendahkan untuk hal ini, karena semakin banyak pengalaman yang saya dapatkan, semakin saya mencintai rekan-rekan ini. Mereka membantu. Mereka melakukan pekerjaan itu. Mereka hanya tidak berambisi untuk unggul di siklus promo berikutnya, atau untuk membuat rekan-rekan mereka terpesona dengan hasil yang sangat mengesankan. Mungkin ada hal lain yang terjadi dalam hidup mereka!
Saya tidak banyak bicara tentang kelompok ini, kecuali memperingatkan agar tidak membingungkannya dengan kelompok terakhir: insinyur lemah.
Insinyur yang lemah
Kategori lainnya adalah insinyur yang benar-benar lemah. Orang-orang ini tidak mempunyai kemampuan sama sekali. Lebih buruk lagi, tingkat kesulitan dasar dari tugas perangkat lunak normal hingga mudah berada di atas tingkat yang mereka rasa nyaman. Saya kira beberapa dari orang-orang ini memiliki pekerjaan yang berlebihan atau melakukan penipuan dengan cara yang serupa, namun menurut saya sebagian besar penyebabnya adalah kurangnya kemampuan. Saya ingin memperjelas bahwa saya tidak melebih-lebihkan di sini: insinyur yang lemah tidak dapat menyelesaikan hampir semua tugas teknik. Saya telah bekerja dalam tim tanpa tim apa pun, tetapi jika Anda sudah cukup lama berkecimpung dalam industri ini, Anda akan bertemu dengan mereka.
Ironisnya, meskipun orang-orang seperti ini ada di hampir semua tingkat senioritas, Anda lebih mungkin bertemu dengan insinyur yang lemah di posisi senior. Saya pikir ini mungkin karena dua alasan. Pertama, batasan untuk mempekerjakan junior secara eksplisit didasarkan pada kemampuan, sehingga lebih sulit untuk melewatinya. Dalam wawancara, para senior dapat berbicara tentang pekerjaan yang mereka geluti, yang sulit dibedakan dengan pekerjaan mereka telah melakukan. Kedua, siswa junior yang lemah sering kali diberi lebih banyak kesempatan untuk belajar, karena secara sosial wajar jika mereka tidak mengetahui banyak hal. Seorang senior yang lemah harus menyembunyikan kekurangan pengetahuannya dan belajar secara rahasia, yang mana itu jauh lebih sulit.
Saya tidak banyak bicara tentang junior yang lemah. Anda harus membantu mereka, mengarahkan mereka pada permasalahan yang menantang, dan melihat apakah mereka dapat mengambil tindakan dan belajar. Namun, senior yang lemah jauh lebih menarik.
Bagaimana insinyur senior yang lemah bisa bertahan?
Bagaimana insinyur yang lemah dapat bertahan di level senior+? Mereka banyak melakukan pasangan satu arah. Jika Anda pernah berpasangan dengan para insinyur ini, itu adalah pengalaman yang sangat tidak menyenangkan, karena Anda harus melakukan semua pekerjaan, baik mengemudi atau bernavigasi. Seringkali pemasangannya dilakukan secara diam-diam – mereka diam-diam akan menghubungi teknisi lain di tim melalui DM untuk meminta bantuan pada setiap tugas yang mereka miliki. Terkadang akan ada satu korban yang tidak beruntung yang memanfaatkan waktunya seperti ini: misalnya, seorang junior yang efektif dalam tim yang senang membantu dan terlalu tidak berpengalaman untuk mengetahui lebih baik. Insinyur lemah yang lebih cerdas akan menggabungkan pasangan mereka di seluruh tim, sehingga setiap anggota mungkin hanya perlu ikut serta setiap minggu atau lebih. Hanya ketika semua orang membandingkan catatan barulah menjadi jelas bahwa insinyur yang lemah melakukan 100% tugas mereka.
Insinyur yang lemah seringkali sangat aktif dalam diskusi terkait pekerjaan. Hal ini sebagian disebabkan karena mereka mempunyai banyak waktu – kecuali mereka dapat menemukan seseorang untuk “dipasangkan”, mereka tidak benar-benar bekerja. Ini juga merupakan mekanisme pertahanan yang efektif. Jika muncul pertanyaan mengenai hasil individu mereka, mereka dapat menunjukkan komunikasi publik yang mereka lakukan sebagai bukti bahwa mereka meningkatkan level tim dan bukannya melakukan kerja nyata. Salah satu cara untuk memberi tahu insinyur yang lemah dalam rangkaian diskusi tentang suatu masalah adalah dengan melihat siapa yang memberikan fakta spesifik tentang cara kerja sistem saat ini, dan siapa yang memberikan rekomendasi umum yang dapat diterapkan pada sistem apa pun. Jika semua pesan mereka bisa berupa tweet publik, mereka mungkin tidak memberikan banyak nilai tambah.
Beberapa tip dalam bekerja dengan insinyur senior yang lemah
Hal pertama dan terpenting adalah mengingatnya itu hanya pekerjaan. Seseorang yang buruk dalam pekerjaannya tidak menjadikan mereka orang jahat. Jangan menjadi bajingan! Orang bisa menjadi lemah karena kemalasan dan kurangnya bakat, tetapi juga karena berbagai alasan pribadi yang bukan urusan Anda. Bertindaklah dengan kemurahan hati yang Anda harap akan diberikan kepada Anda jika Anda mengalami tragedi pribadi yang berarti Anda tidak dapat fokus pada pekerjaan. Bahkan kurangnya talenta bisa jadi tergantung pada konteksnya: misalnya, mungkin mereka adalah ahli sistem tertanam yang mencoba bidang lain dan tidak terlalu berhasil, atau karyawan perusahaan besar yang kesulitan beradaptasi dengan norma-norma startup.
Tetap saja, Anda harus berusaha melindungi waktu Anda. Jangan diam-diam menyerahkan jam kerja Anda untuk membantu mereka tetap bertahan. Salah satu taktiknya adalah menghindari bantuan yang asimetris waktu. Jangan lakukan pekerjaan untuk mereka yang memakan waktu lebih lama daripada waktu yang mereka perlukan untuk menanyakannya. Misalnya saja, jika Anda ditanya “hei, saya mempunyai masalah ini, bagaimana Anda menyikapinya”, jangan luangkan waktu untuk mencari solusi sebenarnya dan menyerahkannya kepada mereka. Mematikan a cepat tanggapan yang mengarahkan mereka ke langkah berikutnya (misalnya “oh ya, sepertinya ada sesuatu di kode penagihan, Anda akan melihat bagaimana layanan X menanganinya”). Ini berarti mereka tidak dapat menghabiskan waktu beberapa menit dari hari mereka untuk menghabiskan waktu berjam-jam Anda.
Sehubungan dengan itu, Anda harus berusaha melindungi waktu anggota junior tim Anda. Jangan biarkan mereka dieksploitasi oleh senior yang lemah yang akan meminta mereka untuk menyelesaikan masalah mereka dan kemudian menyerahkannya kepada manajemen saat mereka membantu juniornya naik level. Cara terbaik untuk melakukannya adalah (secara profesional) memastikan manajer Anda mengetahui situasinya. Mengelola orang di beberapa perusahaan bisa menjadi proses yang sangat sulit (dan mungkin ada hal-hal yang terjadi yang tidak Anda sadari), jadi jangan berharap bahwa orang ini akan dipecat/dikecewakan/disuruh memperbaiki diri. Namun Anda tetap memiliki tanggung jawab untuk memastikan manajer Anda menyadarinya.
Kesimpulan
Bakat insinyur bukanlah kecepatan atau hasil ekstra, melainkan kemampuan untuk melakukan tugas yang tidak dapat dilakukan oleh insinyur lain. Itu sebabnya para insinyur yang paling lemah menghasilkan output yang sangat sedikit, dan mengapa para CEO teknologi terobsesi untuk merekrut insinyur-insinyur terkuat.
Kebanyakan insinyur dapat melakukan serangkaian tugas pekerjaan normal, namun ada yang dapat melakukan tugas yang sangat sulit dan ada pula yang hampir tidak dapat melakukan apa pun. Anda mungkin harus mencoba memperluas rangkaian tugas yang Anda rasa nyaman untuk dilakukan. Jika Anda bekerja dengan insinyur yang lemah, bersikaplah baik tetapi lindungi waktu Anda.