Bagaimana Merekrut Software Engineer Secara Efektif

Hisma Mulya S
Pujangga Teknologi
Published in
10 min readOct 2, 2019
Photo by Free To Use Sounds on Unsplash

Saat ini di Indonesia berada di era keemasan teknologi informasi (IT) di Indonesia, semua instansi atau perusahaan berbondong-bondong merekrut tenaga teknikal di bidang tersebut. Industri 4.0 katanya.

Karena ketersediaan software engineer terbatas, maka berbondong-bondong-lah perusahaan dan badan usaha milik negara menawarkan gaji besar, stock options, dan iming-iming lainnya, seperti suasana kantor keren, ada foosball, meja ping-pong, hingga makan siang gratis, untuk menarik minat para software engineer.

Merekrut talenta top adalah dambaan setiap perusahaan maupun startup, saya sendiri . Lalu bagaimana caranya perusahaan dapat merekrut software engineer yang berkualitas? Bagaimana cara mengetahui software engineer yang berkualitas itu? Bagaimana menginterview software engineer yang sehingga dalam waktu yang singkat dapat kita ketahui kemampuannya?

Mari kita bahas satu per-satu bagaimana merekrut software engineer yang berkualitas. Diantaranya sebagai berikut:

Tunjukkan Visi dari Perusahaan Anda

Visi dari SpaceX

Seperti yang kita lihat visi dari SpaceX, mereka memiliki visi menunjang kehidupan manusia supaya bisa beradaptasi hidup di planet lainnya.

Visi yang jelas seperti ini akan menimbulkan daya tarik tersendiri bagi engineer-engineer yang memiliki passion. Salah satu ciri dari software engineer yang hebat adalah memiliki passion yang kuat terhadap software development dan tentunya apabila hasil kerjanya memiliki impact terhadap kehidupan manusia. Tanpa visi yang jelas, mereka akan menganggap Anda akan membual saja tidak akan menarik minat mereka.

Nah, jika visi Anda dapat menggerakkan para engineer yang memiliki passion yang sama, mereka akan membentuk tim yang hebat dan membantu Anda mencapai visi perusahaan Anda.

Bangun Kultur

Culture eats strategy for a breakfast — Peter Drucker

Photo by Priscilla Du Preez on Unsplash

Setelah visi perusahaan itu jelas selanjutnya adalah membangun kultur perusahaan Anda.

Sebelum kita merekrut talenta top di organisasi Anda, yang pertama perlu Anda lakukan adalah mendefinisikan dan membangun kultur perusahaan Anda. Tanpa adanya kultur yang kondusif bagi software engineer mereka tidak akan bisa bekerja secara optimal. Adanya pernak-pernik seperti kantor yang keren, konsol gim, atau meja ping-pong di kantor Anda tidak akan menjamin mereka betah. Lalu apa aja kultur organisasi yang baik untuk mereka?

Kultur terbaik bagi software engineer adalah kultur yang menjunjung tinggi:

Fleksibilitas Dalam Bekerja

Software engineer suka bekerja di waktu mereka produktif dan di tempat mereka ingin bekerja. Tempat ini tidak mesti di kantor. Buatlah kultur fleksibel berorientasi hasil, sehingga mereka bisa bekerja efektif di manapun berada. Manfaatkan tools modern seperti Slack, Google Meet atau Zoom, Notion, Gitlab, Quip, dan lainnya untuk manajemen pekerjaan dan penulisan dokumentasi.

Inovasi

Software engineer yang hebat suka berinovasi membuat cara-cara baru, mengimplementasi hal-hal baru, dan teknologi baru yang memudahkan atau menambah value pada pengguna. Perusahaan mesti mengakomodasi ini, jangan cuman slogan saja, ada hackathon ada innovation week, tapi hanya untuk kepentingan marketing saja, hasilnya mesti benar-benar menjadi produk dan masuk dalam roadmap perusahaan.

Jika ada ide-ide impromptu baru mesti diakomodasi juga dengan memberikan engineer kesempatan untuk menunjukkan solusi mereka, jika masuk akal dan mempermudah atau menambah value maka jangan ragu mengimplementasikan.

Kata kunci di sini adalah mengakomodasi, memberikan kesempatan, jangan baru lempar ide udah ditolak karena ga sesuai standar ISO lah, ga secure lah, coba dulu dalam lingkungan terbatas kan bisa? Baru setelahnya dievaluasi.

Inklusifitas

Kebalikan dari ini adalah siloing yang sering terkenal di lingkungan enterprise. Istilah zaman now nya adalah “jangan bikin terkotak-kotak”.

Libatkan mereka dalam pengambilan keputusan dan minta pendapat atau umpan balik dari mereka. Engineer suka kalau dilibatkan dalam pengambilan keputusan dan kalau ditanya “menurut kamu gimana? make sense ngga?”

Aman Secara Psikologis

Kecuali jika organisasi Anda adalah organisasi kriminal atau startup di dunia underground, singkirkan orang-orang beracun di organisasi Anda, seberapapun hebat kemampuan teknisnya. Orang seperti apa yang toxic itu?

Orang orang seperti itu memiliki ciri seperti berikut:

  • Tidak ingin kalah, selalu ingin menang sendiri walau secara objektif dia salah
  • Suka merundung atau bullying
  • Melakukan pelecehan terhadap karyawan lain
  • Mengklaim hasil pekerjaan orang lain sebagai miliknya
  • Hanya bisa berbicara, namun hasil pekerjaannya tidak sesuai ekspektasi
  • Tidak berempati sama sekali.

Proses interview perlu menyaring orang-orang seperti ini agar jangan sampai masuk merusak kultur perusahaan Anda. Orang orang beracun seperti ini akan membuat suasana kerja tidak nyaman dan sangat menghambat produktifitas.

Tanpa ada kultur yang baik, Anda bisa saja merekrut engineer berkelas, namun hasil output dari software Anda tidak akan maksimal.

“Great product is done by bunch of people working together in the same page, not just by a single programmer working 24 hours a day.”

Gabe Newell, Valve Co-Founder

Hire Talent, not 10 years in Java

Photo by Startup Stock Photos from Pexels

Dulu di tempat saya bekerja di Ice House, ada software engineer Java yang telah bekerja selama 10 tahun lebih melamar, hasilnya tidak diterima.

Lalu ada junior saya di Fasilkom UI, fresh graduate diterima. Saya bertanya dalam hati, kenapa? Kok bisa?

Saya juga ingat dulu saya di-interview pertama kali hanya diberikan 2 pertanyaan, hanya satu saya jawab benar, dan itupun jawabannya belumlah yang paling benar.

Lalu kilas balik ternyata pertanyaan yang ditanyakan bukan untuk menguji seberapa teknis pengetahuan Anda dan seberapa banyak Anda mengetahui jargon-jargon IT, tapi menguji apakah kandidat memiliki bakat atau potensi yang dibutuhkan menjadi seorang software engineer yang hebat?

Kemampuan atau talent ini yang menjadi kunci, soalnya teknologi software berkembang sangat cepat, dulu teknologi Java EE terkenal di kalangan Enterprise untuk membuat aplikasi, sekarang sudah ada Play framework, Spring Boot, aplikasi monolith yang besar bergeser ke microservice dan bahkan sudah ada layanan serverless seperti AWS Lambda, Google Cloud Functions, juga layanan satu pintu seperti Zeit Now.

Belum lagi bahasa pemrograman new wave seperti Go dan Rust. Teknologi akan silih berganti, jika kita melakukan perekrutan berdasarkan teknologi saja, maka jika teknologi tersebut sudah usang dimakan jaman, maka perusahaan kita akan sulit berkembang juga.

Maka dari itu kita perlu merekrut software engineer yang memiliki kemampuan atau bakat problem solving dan abstraksi yang baik.

Interview: Mencari Software Engineer yang Tepat

Photo by rawpixel.com from Pexels

Tujuan dari proses interview adalah mengetahui software engineer yang tepat untuk organisasi Anda secara efektif. Secara umum orang yang Anda cari adalah yang memenuhi kriteria sebagai berikut:

  • Cerdas (Smart)
  • Bisa menyelesaikan pekerjaannya (Get Things Done)
  • Cocok secara kultur (Culture Fit)

Ketiganya musti terpenuhi, tidak bisa salah satu saja. Alasannya:

Orang yang tidak cerdas, namun bisa menyelesaikan pekerjaan akan melakukan kesalahan-kesalahan bodoh, sehingga membuat orang lain perlu memperbaiki kesalahan-kesalahan yang dilakukan, ini akan membuat kesal anggota tim lainnya dan membuat suasana tidak nyaman di lingkungan tim.

Orang yang cerdas namun tidak menyelesaikan pekerjaannya biasanya orang yang memiliki gelar akademik yang tinggi, namun lebih suka berdiskusi tentang hal-hal teoritis atau akademik lainnya, daripada merilis software tepat waktu.

Orang-orang yang tidak cocok secara kultur atau cenderung beracun (toxic), akan menimbulkan suasana tidak nyaman di kantor, membuat tidak betah rekan satu tim, hingga satu per satu anggota tim Anda mengundurkan diri. Anda akan kehilangan rekan yang sebenarnya dibutuhkan berkontribusi bagi perusahaan.

Sifat-sifat tersebut penting untuk diketahui pada saat proses interview.

Untuk mengenali kandidat apakah termasuk cerdas atau tidak biasanya saya melihat apakah kandidat tersebut memiliki passion terhadap sesuatu, biasanya kalau dia memiliki passion, kandidat akan seolah-olah lupa kalau berada dalam interview dan menjadi sangat bersemangat menceritakan apa yang diketahui secara detil. Kandidat yang dapat menceritakan sesuatu dengan detil biasanya adalah orang-orang yang cerdas dan berusaha untuk memahami sesuatu tidak dengan setengah-setengah.

Ciri lain dari kandidat yang cerdas adalah Anda tidak perlu menjelaskan sesuatu berulang ulang, percakapan Anda berlangsung dengan lancar. Tanyakan pertanyaan yang bersifat open ended seperti misalnya tentang bahasa pemrograman yang disukai atau tentang bagaimana kandidat menghadapi problem yang sulit, jika kita mendapatkan suatu pencerahan dari penjelasan kandidat, maka dia adalah orang yang cerdas.

Selain itu, kandidat yang cerdas akan dapat menjelaskan istilah-istilah teknis dengan bahasa yang sederhana.

If you can't explain it simply, you don't understand it well enough.

Albert Einstein

Jika mereka tidak mampu menjelaskan konsep-konsep teknis secara sederhana, maka mereka tidak terlalu memahami intisari dari konsep tersebut. Jika mereka tidak memahaminya, bagaimana cara mereka bisa memrogram dengan benar? Bagaimana caranya mereka bisa menjelaskan apa yang dikerjakan kepada rekan satu tim? Bagaimana cara mereka mencari root cause dari bug yang ditemukan?

Untuk mengetahui pemahaman mereka, saya biasanya menggunakan pertanyaan open-ended sebagai berikut:

  • Apa itu Object Oriented Programming?
  • Apa bedanya Object dengan Class?
  • Kenapa mesti ada private dan public pada method?
  • Apa itu indexing pada database? Mengapa perlu indexing?

dan sebagainya.

Kandidat sedapat mungkin menjelaskan dengan menggunakan pemahaman mereka masing-masing, jika mereka mulai menggunakan jargon-jargon, beritahukan mereka agar supaya memberi contoh atau menggunakan bahasa yang lebih sederhana.

Berikutnya adalah tentang penyelesaian pekerjaan.

Seseorang yang get things done dapat dilihat dari bagaimana dia meyelesaikan pekerjaannya, dan apa hasil kerja yang dia lakukan di pekerjaan sebelumnya, apabila dia fresh graduate bagaimana hasil skripsi atau kerja praktiknya? Bagaimana sikap dia di dalam tim? Apakah dia care terhadap task yang diberikan atau asal jadi saja? Apakah dia membantu anggota tim lainnya saat dibutuhkan? Pada umumnya, kandidat yang benar-benar menyelesaikan pekerjaannya dapat menceritakan secara detil dan bisa memberikan feedback, baiknya bagaimana jika pekerjaan yang telah selesai tersebut dilakukan lagi dari awal.

Prosesi Rekrutmen

Proses rekrutmen yang baik adalah yang dilakukan secara efektif, tidak memakan waktu yang lama. Di kantor saya, proses rekrutmen kurang lebih 2 minggu saja. Kalau tidak cepat ya nanti kita disalip oleh perusahaan lain yang lebih cepat.

Screening

Pada proses ini seorang kandidat akan diberikan tes pemrograman yang dapat dikerjakan sendiri, diberikan batas maksimal 1 minggu (7 hari).

Soal soal yang diberikan adalah soal-soal kasus dunia nyata yang dihadapi sendiri oleh teman-teman di kantor saya. Tujuan dari proses screening ini adalah membedakan antara kandidat yang bisa memrogram dan yang tidak bisa memrogram dan bagaimana kandidat melakukan problem solving.

Interview Teknikal

Interview teknikal ini akan membahas kode yang telah dikerjakan pada screening, buat code tersebut lebih defensif, jika belum ada unit test, tambahkan unit test, kemudian menanyakan pertanyaan open ended yang menggali kemampuan teknikal kandidat tersebut.

Yang penting pula, ada pertanyaan yang mesti dilakukan untuk menguji bakat / talenta pemrograman kandidat. Pertanyaan yang wajib ditanyakan adalah:

Pointer atau Rekursif

Karena di zaman now, di mana anak anak generasi Z kampusnya sudah banyak yang meninggalkan C sebagai bahasa dasar dalam pemrograman, maka saya lebih banyak bertanya tentang rekursif.

Mengapa pointer dan rekursif?

Joel Spolsky dalam blognya Guerilla Guide to Interviewing menjelaskan bahwa kemampuan untuk memahami rekursif atau pointer, di mana seseorang bisa berpikir bermacam abstraksi secara bersamaan, seperti memahami multiple call stack dalam rekursif atau memahami algoritma berbasis pointer, adalah sebuah aptitude atau bakat. Bakat dalam hal ini adalah seperti halnya bakat dalam bermain sepakbola dan ternyata tidak semua orang memiliki bakat yang baik, atau memiliki keinginan yang kuat memahami ini.

Pengalaman saya menginterview banyak kandidat, kandidat terbaik adalah kandidat yang bisa menjawab pertanyaan-pertanyaan rekursif yang saya berikan. Pertanyaan tersebut mesti masuk akal bisa diselesaikan dalam waktu 15–20 menit. Jawaban baiknya dikerjakan kandidat memakai laptopnya sendiri, tidak perlu mengindahkan syntax, yang ingin kita nilai adalah bagaimana cara kandidat menyelesaikan problemnya. Contoh pertanyaan yang bisa ditanyakan:

  • Fibonacci
  • Linear search pada sebuah array
  • Implementasi Drop

Oh, jika kandidat bukan kuliah di jurusan Ilmu Komputer atau Informatika, atau tidak pernah mendengar kata rekursif atau pointer, bisa ditanyakan pertanyaan mengenai penggunaan struktur data sederhana, array atau map.

Lalu setelah interview di lakukan. Hanya ada 2 keputusan: Hire or No Hire. Kalau kita ragu atau dalam hati kita berkata: Ya dia OK, tapi.. bla bla bla, yang sudah jangan. Putuskan OK jika tidak ada keraguan sama sekali dan dia orang yang membuat Anda yakin dia akan sukses di perusahaan Anda.

Interview Culture Fit

Sesi ini bertujuan untuk mengetahui apakah kandidat cocok dengan kultur perusahaan. Biasanya dilakukan oleh level manajemen, kalau di kantor saya dilakukan oleh VP Engineering.

Pada saat inilah etos kerja dan attitude kandidat di-cek apakah cocok dengan kultur perusahaan.

Pengecekan Latar Belakang

Pengecekan latar belakang biasanya dilakukan oleh staff HR perusahaan.

Tujuannya agar mengetahui sikap kandidat di tempat kerja yang lama dari pihak ketiga. Sesi ini diperlukan supaya kandidat yang mencoba menutupi kelemahannya pada saat sesi Interview Kultur dapat terkuak.

Biasanya pengecekan latar belakang ini membutuhkan 2–3 responden yang diinfokan oleh kandidat.

Offering

Pada tahap ini jika semua tahapan telah selesai dan kandidat dinyatakan memenuhi syarat maka akan masuk tahap offering dari HR.

Merekrut Software Engineer

Berikut beberapa tips dan trik memburu software engineer.

Photo by Josh Rocklage on Unsplash

Merekrut dari orang ke orang

Software engineer yang hebat akan senang bekerja dengan software engineer yang hebat pula.

Fresh graduate yang potensial dan berbakat akan ingin belajar dari senior yang hebat yang sudah makan asam garam dunia kerja.

Rekrut terlebih dahulu orang-orang yang hebat, yang lainnya akan mengikuti.

Merekrut dari Program Magang

Buka program magang, saring talenta terbaik sebelum mereka lulus. Buka koneksi ke beberapa kampus, jangan hanya kampus kampus PTN yang top saja, buka peluang mencari talenta di kampus di beberapa kota lainnya.

Kantor kami secara aktif membuka program magang untuk mahasiswa/i dari kota kota lain selain Jakarta, hasilnya beberapa engineer kami berasal dari beberapa kota Aceh, Malang, Surabaya, dan Bandung.

Merekrut dari Faktor “Wow”

Nah, bagaimana caranya merekrut orang yang jagoan neon, sudah bekerja di perusahaan besar atau unicorn malah, dan memiliki prestasi kerja yang bagus? Undang makan malam atau ngopi. Ajak ngobrol tentang gimana dia kerja di perusahaannya. Gali terus, kemudian cari pain point-nya yang dia keluhkan di perusahaan tersebut.

Nah, beri Faktor “Wow” dari perusahaan Anda, baik itu segi technical challenge, atau business challenge, atau kultur perusahaan Anda, dan jual “Mengapa dia mesti bergabung dengan perusahaan Anda?” dan “Bagaimana perusahaan Anda mengatasi pain point yang dia rasakan?”.

Jika dia tidak tertarik ya move-on saja, namun tetap jaga hubungan baik, siapa tahu tahun depan ketika bursa transfer dibuka, dia berubah pikiran.

References

--

--