Mencari Beberapa Elite – Menemukan dan Mempekerjakan Pengembang Perangkat Lunak Terbaik di Industri

Diterbitkan: 2022-03-11

Tantangan

Mempekerjakan pengembang perangkat lunak seringkali dapat menjadi tugas yang menakutkan dengan seluruh dunia sebagai kumpulan bakat Anda.

Mempekerjakan bakat pengembangan perangkat lunak – bakat nyata – adalah keterampilan multi-segi yang terletak di persimpangan jaringan sosial, ketajaman teknis, manajemen proses, dan intuisi. Siapa pun yang pernah memiliki tanggung jawab perekrutan memahami dengan sangat baik tingkat dan kedalaman tantangan perekrutan.

Mempekerjakan bakat adalah keterampilan multi-segi yang terletak di persimpangan jaringan sosial, ketajaman teknis, manajemen proses, dan intuisi.

Yang paling menantang adalah kenyataan bahwa kualitas ciri dari kandidat rekayasa perangkat lunak yang luar biasa sangat sulit untuk dievaluasi. Bagaimana Anda mengeksplorasi kemampuan kandidat untuk berinovasi dan berpikir kreatif? Bagaimana Anda menentukan apakah dia pemain tim? Bagaimana Anda mendiagnosis kemampuannya untuk menerima umpan balik yang membangun? Bagaimana Anda menyelidiki serat moral seseorang?

Meskipun mengevaluasi kriteria "lunak" ini bukanlah tugas yang mudah, melakukannya sangat penting dalam upaya seseorang untuk merekrut yang terbaik. Namun terlalu sering, upaya untuk mengevaluasi atribut penting, namun sulit dipahami ini terdiri dari pertanyaan atau tantangan yang cukup transparan agar jawaban "benar" menjadi jelas bagi sebagian besar kandidat. Jadi, tidak ada substansi yang dicapai dengan meminta mereka.

Jebakan umum yang dihasilkan adalah terlalu fokus pada hal-hal kecil teknis, daripada mengevaluasi kemampuan kandidat untuk memecahkan masalah, berpikir kreatif, dan bekerja secara kompatibel dengan anggota tim lainnya.

Perangkap umum adalah terlalu fokus pada hal-hal kecil teknis.

Diakui, wawancara yang efektif dan perekrutan pengembang perangkat lunak tingkat lanjut adalah seni dan juga sains. Meskipun demikian, pendekatan dan metodologi memang ada untuk mengevaluasi dimensi yang lebih halus dari keterampilan dan kemampuan insinyur perangkat lunak.

Ketika digunakan secara kolektif, teknik perekrutan ini menghasilkan proses penyaringan yang sangat efektif dengan rekam jejak keberhasilan yang terbukti untuk merekrut bakat pemrograman bergaji atau lepas. Proses itulah yang menjadi tujuan postingan ini.

Memulai: Mengisi Pipeline dengan yang Terbaik

Proses menemukan dan mempekerjakan segelintir elit dimulai jauh sebelum wawancara itu sendiri. Faktanya, pendekatan sistematis untuk mengidentifikasi kandidat yang berpotensi memenuhi syarat dengan benar dapat merampingkan dan meningkatkan efisiensi seluruh proses perekrutan Anda secara signifikan.

Mengisi saluran perekrutan untuk bakat pengembang perangkat lunak sangat penting untuk merekrut yang terbaik.

Tanpa ragu, satu-satunya sumber terbaik dari kandidat yang memenuhi syarat adalah jaringan pribadi, karena orang yang berkualitas cenderung bergaul dengan orang yang berkualitas. Referensi pribadi mendominasi sebagai sumber paling produktif untuk karyawan baru yang sukses (sumber).

Sumber berharga lainnya dari bakat teknis terbaik termasuk:

Keindahan sumber daya ini adalah bahwa mereka menyediakan kandidat yang telah Anda periksa, dalam satu atau lain cara, bahkan sebelum mewawancarai mereka.
  • Blog dan posting teknis online. Blog pengembang dapat menjadi sumber kandidat yang kuat. Postingan teknis sering kali memberikan wawasan berharga tentang ketajaman teknis pengembang, pendekatan pemecahan masalah, dan keterampilan menulis, yang semuanya merupakan kriteria penting untuk mengidentifikasi kandidat unggulan.
  • Kontributor kode sumber terbuka. Membaca dengan teliti proyek sumber terbuka di situs seperti GitHub dan SourceForge dapat menghasilkan kandidat yang sangat berkualitas. Manfaat tambahan dari pendekatan ini adalah memungkinkan Anda untuk melihat dan mengevaluasi contoh kode kandidat bahkan sebelum memutuskan untuk melakukan kontak.
  • Konferensi. Pembicara konferensi dan peserta bersama pada konferensi teknis yang relevan sering kali memberikan sumber daya yang berharga bagi kandidat yang memenuhi syarat. Jika Anda tidak dapat hadir, tinjau program online dan pertimbangkan untuk menghubungi penyaji. Anda mungkin kebetulan menghubungi mereka "pada waktu yang tepat", atau mereka mungkin dapat merujuk Anda ke orang lain yang berkualifikasi tinggi.

Keindahan sumber daya ini adalah bahwa mereka menyediakan kandidat teknik yang telah Anda periksa, dalam satu atau lain cara, bahkan sebelum mewawancarai mereka. Entah seseorang di perusahaan Anda, atau seseorang yang Anda kenal, mengenal mereka dan sangat merekomendasikannya. Atau Anda telah meninjau kode sumber terbuka mereka dan terkesan dengannya. Atau posting blog mereka menyarankan tingkat keahlian dan pemahaman teknis yang matang (dan idealnya bahkan selera humor :-)). Kuncinya di sini adalah, pada saat Anda melakukan kontak, kandidat sudah jauh lebih dari sekadar "resume lain".

Selain itu, pertimbangkan untuk menggunakan templat deskripsi pekerjaan (seperti ini untuk SEO, pengembangan web front-end, dan pengembangan web back-end) yang menetapkan ekspektasi tinggi untuk jenis kandidat yang Anda inginkan.

Mengevaluasi Ketajaman Teknis Pengembang Perangkat Lunak

Penentuan kemahiran teknis yang efektif jauh melampaui nuansa bahasa atau teknologi pemrograman tertentu. Meskipun detail teknis ini tentu saja tidak boleh diabaikan, mereka biasanya bukan elemen terpenting dari proses evaluasi.

Penentuan kemahiran teknis yang efektif jauh melampaui nuansa bahasa pemrograman atau teknologi tertentu...
Ini adalah kekuatan dan pemahaman teknis fundamental kandidat, pemikiran kreatif, dan pemecahan masalah yang sangat penting untuk dievaluasi.

Pengembang terbaik tidak membuang waktu untuk berkomitmen pada memori yang dapat dengan mudah ditemukan dalam spesifikasi bahasa atau dokumen API. Selain itu, mempelajari bahasa, teknologi, atau pola desain baru adalah latihan yang relatif sepele bagi pengembang yang kuat (dan sebenarnya merupakan keterampilan penting mengingat tingkat percepatan di mana teknologi baru diperkenalkan dan mendapatkan pangsa pasar). Oleh karena itu, kekuatan dan pemahaman teknis fundamental kandidat, pemikiran kreatif, dan pemecahan masalah yang penting untuk dievaluasi.

Metode yang telah terbukti untuk mencapai hal ini adalah dengan mengajukan tantangan pemrograman yang tidak dibatasi oleh bahasa . Berikan kandidat sebuah masalah dan minta dia untuk mengkodekan solusi dalam bahasa yang mereka pilih. Satu-satunya persyaratan adalah bahwa solusinya harus menyeluruh dan benar, termasuk mengatasi setiap kondisi tepi atau potensi kesalahan. Ingat, tujuannya di sini adalah untuk mengevaluasi (a) kemampuan kandidat untuk memecahkan masalah, (b) pengetahuan tentang ilmu komputer, dan (c) gaya pengkodean. Anda tidak pada titik ini mengevaluasi bakat dalam bahasa pemrograman tertentu. (Keuntungan tambahan dari pendekatan ini, kebetulan, adalah menghindari pewawancara untuk menjadi ahli dalam bahasa yang dikodekan oleh kandidat.)

Banyak sumber daya online yang dapat digunakan untuk memilih tantangan pemrograman seperti itu untuk dimasukkan ke dalam proses wawancara Anda. Mereka yang berfokus pada algoritma (bukan pengetahuan tentang bahasa pemrograman tertentu) memfasilitasi evaluasi dasar ilmu komputer kandidat dan kemampuan pemecahan masalah. Beberapa contoh penting termasuk hackerrank.com, projecteuler.net, dan beatmycode.com. Namun, ingatlah bahwa Anda tidak perlu menggunakan situs ini untuk mengelola tes; alih-alih, Anda cukup menggunakannya sebagai sumber daya untuk memilih tantangan dan kemudian meminta kandidat mengkodekan solusi selama wawancara langsung (di papan tulis, dll.).

Yang mengatakan, pengujian online dapat menjadi komponen tambahan yang berharga dari proses wawancara Anda. Namun, saat menggunakan layanan pengujian online, penting untuk menghindari risiko terlalu fokus pada skor yang dihasilkan situs kandidat daripada spesifikasi solusi mereka. Untuk satu hal, Anda mungkin tidak setuju dengan metrik evaluasi yang digunakan oleh layanan pengujian. Selain itu, mungkin ada aspek solusi yang Anda anggap sangat cerdas atau elegan, yang mungkin tidak disadari oleh proses evaluasi otomatis.

Saat menggunakan layanan pengujian online, penting untuk menghindari risiko terlalu fokus pada skor yang dihasilkan situs kandidat daripada spesifikasi solusi mereka.

Ada juga potensi "positif palsu" atau "negatif palsu" dengan peringkat yang diberikan oleh layanan pengujian online. Di satu sisi, positif palsu dapat mengakibatkan pemborosan waktu dan sumber daya untuk mewawancarai kandidat yang tidak memenuhi syarat, sementara negatif palsu dapat mendiskualifikasi kandidat yang sangat layak dipertimbangkan. Dalam jangka panjang, yang terakhir memiliki konsekuensi yang lebih serius dan oleh karena itu sesuatu yang harus dipantau dengan cermat.

Secara umum, tes yang dilakukan secara langsung secara inheren lebih dapat diandalkan daripada yang dilakukan secara online, karena tes tersebut mengurangi potensi penipuan. Selain itu, pengujian langsung memberikan kesempatan untuk mengamati bagaimana kandidat insinyur perangkat lunak beroperasi di bawah tekanan. Meskipun demikian, penggunaan layanan pengujian online dapat menjadi komponen yang efektif dari jenis proses penyaringan yang lebih komprehensif yang dianjurkan di sini, yang menggabungkan teknik lain untuk membantu menyingkirkan kandidat yang curang atau yang kurang memenuhi syarat.

Tes pengembangan online juga dapat berfungsi sebagai filter awal yang berharga untuk menghilangkan persentase kandidat yang sangat tinggi yang keterampilan teknisnya jauh di bawah standar. Menariknya, banyak kandidat seperti itu mengabaikan proses bahkan tanpa mencoba mengikuti tes, karena kurang percaya diri. Konon, kepercayaan diri tidak selalu menjadi barometer sikap terbaik, sebagaimana dibuktikan oleh efek Dunning-Kruger.

Teknik lain yang sangat berharga untuk mengevaluasi ketajaman teknis adalah dengan meminta kandidat untuk memberikan daftar proyek open source yang telah mereka tulis, atau setidaknya berkontribusi, di situs seperti GitHub dan SourceForge (jika mereka hanya kontributor, minta mereka untuk menunjukkan kepada Anda bagian mana dari kode yang mereka tulis secara pribadi). Anda kemudian dapat datang ke wawancara setelah meninjau kode mereka, bersiap untuk bertanya kepada mereka tentang keputusan desain tertentu, gaya pengkodean, pola yang digunakan, dan sebagainya. Diskusi semacam itu bisa jauh lebih berharga daripada sekadar menanyai kandidat tentang hal-hal kecil teknis suatu bahasa.

Berbicara tentang bahasa…

Anggota dari segelintir elit tidak hanya paham teknologi, mereka adalah profesional pengembangan perangkat lunak yang sempurna yang berkomunikasi dengan jelas, efektif, dan ringkas, baik secara lisan maupun tertulis.

Keterampilan komunikasi verbal mudah dievaluasi selama wawancara, baik secara langsung atau melalui telepon. Sementara keterampilan verbal diakui kurang penting dalam peran teknis "ruang belakang" tertentu yang tidak melibatkan kontak pengguna, mereka tetap penting untuk memaksimalkan interaksi tim yang efektif dan pertukaran ide.

Anggota segelintir elit adalah profesional yang sempurna yang berkomunikasi dengan jelas, efektif, dan ringkas, baik secara lisan maupun tertulis.

Keterampilan komunikasi tertulis paling baik dievaluasi dengan meminta kandidat untuk memberikan contoh tulisan. Sampel penulisan teknis sangat disukai, karena tidak hanya menunjukkan keterampilan menulis, tetapi juga kejelasan teknis. Meminta sampel ini sebelum wawancara dapat sangat berguna. Untuk satu hal, ini memberikan kesempatan untuk meninjau dan menganalisis tulisan mereka sebelumnya sehingga Anda dapat datang ke wawancara siap untuk mendiskusikan dan mengkritik tulisan mereka dengan mereka. Selain itu, beberapa kandidat teknis akan "ditunda" oleh permintaan untuk menulis sampel yang dengan sendirinya dapat berfungsi sebagai filter yang berharga.

Dilema Moral

Ada lelucon lama tentang seorang ayah yang ingin mengajari putranya tentang etika. Sang ayah memberi tahu putranya bahwa dia dan rekannya memiliki bisnis dry cleaning. Suatu hari, kata sang ayah, seorang pelanggan datang ke toko kami untuk mengambil cuciannya. Saat pelanggan berbalik untuk pergi, saya menyadari bahwa dia membayar lebih sebesar 10 dolar. Oke, jadi inilah etikanya… apakah saya memberi tahu pasangan saya atau tidak?!

Sebaliknya, dilema etika yang nyata – dilema moral – seringkali dapat menjadi keruh dan kompleks dan mereka pasti muncul dalam bisnis. Pengembang perangkat lunak terkuat dapat mendatangkan malapetaka yang tak terhitung jumlahnya pada sebuah proyek jika dia tidak memiliki kompas moral yang dikalibrasi dengan benar. Oleh karena itu, dimensi kandidat ini penting untuk dievaluasi.

Pengembang perangkat lunak terkuat dapat mendatangkan malapetaka yang tak terhitung jumlahnya pada sebuah proyek jika dia tidak memiliki kompas moral yang dikalibrasi dengan benar.

Teknik yang sangat efektif untuk mencapai hal ini adalah dengan memberikan kandidat dilema moral hipotetis dan menanyakan apa yang akan mereka lakukan dalam situasi tersebut. Agar ini efektif, adalah penting bahwa dilema tersebut tidak memiliki jawaban yang jelas. Idealnya, setiap jawaban yang mungkin harus tidak sempurna dan agak bermasalah. Jawaban yang diberikan kandidat untuk pertanyaan semacam itu dapat memberikan wawasan yang sangat luas tentang cara berpikir mereka, standar etika mereka, dan prioritas mereka.

Berikut ini contohnya:

Perusahaan tempat Anda bekerja telah dipekerjakan untuk mengerjakan proyek oleh perusahaan lain. Proyek ini membutuhkan penggunaan subkontraktor tertentu. Anda sebelumnya bekerja untuk subkontraktor itu dan karena itu Anda tahu secara langsung bahwa mereka sering membayar jam kerja mereka dan menagih terlalu tinggi kepada pelanggan mereka untuk waktu mereka. Namun, jika mereka melakukan ini pada proyek ini, itu tidak akan merugikan perusahaan Anda, karena biaya tersebut akan diteruskan ke pelanggan perusahaan Anda. Anda telah menyebutkan hal ini kepada atasan Anda dan dia telah menyarankan Anda untuk tidak mengatakan apa pun kepada pelanggan, terutama karena bagian proyek subkontraktor hanya mewakili sebagian kecil dari keseluruhan anggaran. Anda memiliki teman yang sangat dekat yang bekerja untuk pelanggan. Suatu hari saat makan siang, teman Anda bertanya apa yang Anda ketahui tentang subkontraktor ini, karena dia tahu Anda dulu bekerja di sana. Bagaimana tanggapan Anda dan apa yang Anda katakan padanya?

Keindahan di sini adalah bahwa tidak ada jawaban yang jelas "benar" dan situasinya mencerminkan kompleksitas moral kehidupan nyata dan dunia bisnis. Jika ditanyakan dengan benar, jawaban atas pertanyaan "dilema moral" semacam itu dapat menjadi salah satu bagian paling jitu dan berharga dari proses wawancara untuk mempekerjakan pengembang perangkat lunak.

Mengenal Anda (Siapa Anda sebenarnya ?)

Salah satu kelemahan yang melekat dari proses wawancara adalah bahwa tidak ada cara untuk mengetahui bagaimana rasanya bekerja dengan seseorang sampai Anda benar-benar bekerja dengan mereka. Mendapatkan nuansa realistis untuk kepribadian dan temperamen kandidat tetap penting untuk perekrutan yang sukses.

Elit teknis tidak hanya unggul secara teknis, mereka juga sangat profesional. Oleh karena itu, pencarian mereka tidak terbatas pada evaluasi teknis yang ketat.

Elit teknis tidak hanya unggul secara teknis, mereka juga sangat profesional.

Dengan mengingat hal itu, berikut adalah beberapa teknik wawancara yang dapat bermanfaat untuk mengevaluasi kepribadian dan profesionalisme kandidat…

Pertama, pertimbangkan untuk secara sengaja memulai proses wawancara dengan pra-penyaringan oleh anggota staf non-teknis (seperti asisten administrasi). Anda kemudian dapat bertanya kepada anggota staf ini bagaimana kandidat memperlakukan mereka setelah mereka menyadari bahwa mereka tidak teknis. Apakah mereka merendahkan, tidak sabar, dan merendahkan, atau apakah mereka menyenangkan, sabar, dan penuh hormat? Apa yang disampaikan oleh anggota staf kepada Anda memang bisa dikatakan sangat jitu. Anda ingin tahu apakah kandidat memperlakukan orang lain dengan hormat, terlepas dari siapa mereka.

Sepanjang wawancara, carilah kesempatan untuk memberikan umpan balik yang membangun kepada kandidat. Amati dengan cermat reaksi yang ditimbulkannya. Apakah umpan balik dihargai atau apakah kandidat tampak sama sekali defensif?

Terlibat dalam "chit chat" non-teknis selama 5 atau 10 menit pertama wawancara sebagai sarana untuk memperoleh wawasan tentang kepribadian kandidat. Kandidat mungkin berpikir ini hanyalah awal dari wawancara yang sebenarnya dan karena itu akan lebih cenderung "mengecewakan". Dengan demikian, Anda mungkin dapat melihat jumlah yang mengejutkan tentang kepribadian mereka selama waktu ini. Dan tentu saja, jika mereka menunjukkan selera humor, itu selalu pertanda baik. :-)

Selain teknik umum untuk merekrut insinyur, berikut adalah beberapa contoh pertanyaan untuk membantu menilai kepribadian, kepercayaan diri, kejujuran, dan profesionalisme kandidat :

  • Saat Anda melihat kembali karir Anda, situasi sulit apa yang Anda hadapi yang menonjol dalam pikiran Anda? Jelaskan tantangan dan bagaimana Anda menghadapinya secara rinci. Apa yang Anda rasa Anda tangani dengan sangat baik? Apa yang mungkin Anda lakukan secara berbeda jika Anda memiliki kesempatan untuk melakukannya lagi?
  • Apa kesalahan terbesar yang Anda pikir pernah Anda lakukan dalam karir Anda?
  • Apa yang paling Anda nikmati tentang pengembangan perangkat lunak? Apa yang paling tidak Anda nikmati?
  • Jika Anda bisa melukis posisi ideal untuk diri sendiri, apakah itu? Seperti apa peran dan tanggung jawab Anda, ukuran dan jenis perusahaan, lingkungan kerja, dan sebagainya?
  • Apa kekuatan terbesar Anda? Apa yang akan kami peroleh dengan mempekerjakan Anda?
  • Tidak ada diantara kita yang sempurna. Apa saja aspek kepribadian Anda yang sedang Anda perbaiki?
  • Jika saya menelepon bos Anda saat ini dan bertanya tentang Anda, apa yang akan dia katakan kepada saya?
  • Apa yang harus kami perhatikan dalam mempekerjakan Anda?

Secara kolektif, pertanyaan dan teknik ini telah terbukti menumbuhkan pemahaman yang lebih kuat dan lebih dalam tentang siapa kandidat sebenarnya, yang sangat penting untuk membuat keputusan perekrutan yang sukses.

Apakah Perasaan Saling Menguntungkan?

Jadi, Anda telah menemukan kandidat A+. Berketerampilan tinggi. Pribadi yang positif dan ceria. Kesesuaian budaya yang sangat baik. Itu keren! Tetapi…

Masih ada satu pertanyaan penting yang masih harus dijawab: Sejauh mana kandidat secara khusus tertarik dengan posisi Anda yang tersedia dan bekerja untuk perusahaan Anda? Jawaban untuk ini sangat penting dalam memastikan perekrutan yang sukses. Hubungan sepihak bekerja tidak lebih baik dalam bisnis daripada dalam aspek lain kehidupan kita.

Sekali lagi, mengajukan pertanyaan secara langsung sangat minim nilainya karena dalam konteks proses wawancara, seseorang harus curiga terhadap keterusterangan kandidat dalam menjawab pertanyaan semacam itu. Sebaliknya, ini adalah sesuatu yang harus dicoba untuk dipastikan melalui cara lain yang tidak langsung.

Hubungan sepihak bekerja tidak lebih baik dalam bisnis daripada dalam aspek lain kehidupan kita.

Sebagai permulaan, cara kandidat mendekati Anda sejak awal adalah ukuran minat yang cukup andal. Apakah kandidat menawarkan penjelasan yang meyakinkan dan meyakinkan tentang mengapa dia sangat tertarik dengan perusahaan Anda dan peluang yang tersedia? Jika demikian, ini tidak hanya menunjukkan minat yang nyata, tetapi juga tingkat kedewasaan dan kecanggihan profesional. Kandidat seperti itu jelas telah melakukan setidaknya beberapa tingkat penelitian sebelumnya tentang perusahaan Anda, dan peluang, sebelum menghubungi Anda (daripada sekadar "menembak resume mereka di sekitar kota").

Kandidat yang memasuki proses perekrutan pengembang setelah menyelesaikan pekerjaan rumah mereka di perusahaan, dan produk atau layanannya, memberikan indikator yang berguna tentang minat dan kecerdasan mereka. Kandidat yang telah melakukan penelitian lebih lanjut tentang pewawancara (misalnya, membaca bio-nya, profil LinkedIn, posting blog, dan sebagainya) sangat penting. Kandidat yang lebih canggih akan berusaha mengungkapkan informasi ini selama wawancara. Bagi yang lain, pertanyaan terbuka sederhana seperti “Apa yang Anda ketahui tentang perusahaan kami?” dan “Apa yang secara khusus menarik minat Anda tentang perusahaan kami dan posisi ini?” benar-benar dapat menimbulkan tanggapan yang sangat jitu.

Terakhir, kandidat yang benar-benar tertarik kemungkinan akan mengajukan pertanyaan selama proses wawancara. Meskipun demikian, selalu merupakan ide yang baik untuk menutup wawancara dengan menanyakan apakah kandidat memiliki pertanyaan. Kurangnya pertanyaan sama sekali bisa menjadi tanda bahaya, bahkan dengan seseorang yang seharusnya dianggap sebagai kandidat A+.

Bungkus

Teknik yang dijelaskan di sini dapat berfungsi sebagai proses inti yang berharga untuk menemukan dan mempekerjakan pengembang perangkat lunak yang terbaik di industri. Namun penting untuk diingat bahwa perekrutan yang efektif bukanlah tujuan, melainkan sebuah perjalanan. Seseorang harus terus-menerus mengevaluasi kembali dan mengubah proses mereka, karena proses statis ditakdirkan untuk menjadi proses yang mati.

Perekrutan yang efektif bukanlah tujuan, ini adalah perjalanan.

Perjalanan setiap perusahaan akan berbeda, berdasarkan budaya dan prioritasnya sendiri. Temukan jalur yang tepat untuk organisasi Anda dan jalankan di sana. Anda akan berhasil dan Anda akan mengalami kegagalan, tetapi selama Anda belajar dari yang terakhir, Anda dapat yakin bahwa Anda berada di jalan yang benar.