Kiat untuk Menarik, Mengelola, dan Mempertahankan Pengembang Perangkat Lunak
Diterbitkan: 2022-03-11Manajemen adalah semua tentang orang. Apakah manajer atau karyawan, keduanya berpikir tentang bagaimana mencapai tujuan pribadi dan profesional mereka. Kombinasi dari tujuan-tujuan ini dan sifat-sifat pribadi orang-orang yang terlibat membentuk hubungan yang, pada waktunya, dapat menjadi positif, produktif, dan memuaskan, atau kadang-kadang sekadar membuat stres, menuntut, dan rawan konflik.
Tentu saja, dalam kasus terakhir ini, kualitas produk menurun, pergantian personel meningkat, dan pencapaian tujuan menjadi semakin sulit. Oleh karena itu, menemukan cara untuk membangun hubungan yang bermanfaat dan memotivasi antara manajer dan karyawan adalah kunci dalam hal efisiensi, produktivitas, dan realisasi diri untuk keduanya.
Hal ini terutama berlaku dalam mengelola pengembang perangkat lunak, karena kompleksitas teknis dan sifat kreatif pekerjaan mereka, yang dipadatkan menjadi garis waktu yang seringkali sempit untuk menghasilkan hasil. Seperti dalam setiap hubungan bos-karyawan, ada banyak faktor yang terlibat, seperti:
- kepribadian
- Sasaran
- Harapan
- Kebijakan
- Budaya organisasi
- Detail teknis proyek
Dalam artikel ini, kami akan fokus pada aspek manajemen utama, bukan pada aspek teknis, yang menurut kami harus dipertimbangkan oleh siapa saja yang ingin sukses dalam mengelola untuk mempertahankan pengembang perangkat lunak.
Namun di sini, "sukses" berarti tidak hanya mencapai hasil dan mematuhi kebijakan, jadwal, dan anggaran perusahaan, tetapi juga memiliki tim pengembangan perangkat lunak yang termotivasi dan produktif yang memberikan yang terbaik dan bertahan lama di perusahaan.
Ini membawa kita ke tema dasar kita: Apa yang membuat pengembang perangkat lunak tergerak? Dengan pemikiran ini, kami akan menyajikan beberapa cara untuk mempertahankan karyawan yang telah kami identifikasi dalam tim pengembangan perangkat lunak yang sukses.
Menarik Orang yang Tepat
Dalam pengembangan perangkat lunak, talenta yang Anda pekerjakan akan membuat perbedaan antara kesuksesan dan kegagalan, dan membuat perubahan berkelanjutan dalam tim selalu menghabiskan banyak waktu dan uang. Oleh karena itu, proses seleksi yang baik sangat penting untuk keberhasilan proyek Anda.
Postingan Pekerjaan
Perekrut teknologi tahu bahwa dalam hal mempekerjakan pengembang perangkat lunak, semuanya dimulai dengan posting pekerjaan yang seimbang secara hati-hati. Postingan tersebut harus memotivasi agar pengembang yang tepat dapat menanggapinya—terlalu banyak atau persyaratan yang terlalu khusus dapat mengecilkan hati, tetapi jika Anda terlalu kabur, perusahaan Anda dapat mengharapkan banjir resume yang tidak berguna.
Menyatakan gaji dan paket tunjangan yang terperinci juga merupakan pedang bermata dua karena pesaing Anda dapat menggunakan informasi itu untuk meningkatkan rencana kompensasi mereka, dan pengembang dapat mencoba menggunakannya sebagai dasar untuk tawar-menawar selama perekrutan mereka. Tentu saja, karena harus selalu ada ruang untuk negosiasi selama proses rekrutmen, kami menyarankan agar lowongan pekerjaan tidak terlalu spesifik dalam hal kompensasi, menggunakan rentang daripada nilai tetap.
Sebaliknya, posting pekerjaan harus sejelas mungkin dalam tugas dan persyaratan pekerjaan, baik yang wajib maupun yang harus dimiliki. Memulai dengan kecocokan yang solid adalah konteks terbaik untuk sisa strategi retensi karyawan kami.
Wawancara
Pada titik proses ini, merupakan ide yang baik untuk mendapatkan beberapa saran dalam menilai kandidat dan untuk melihat jebakan apa yang dapat dihindari selama proses wawancara. Kami juga akan menambahkan panduan sumber daya di atas bahwa meminta kandidat sebelumnya untuk beberapa referensi dari pekerjaan mereka sebelumnya seringkali merupakan pelengkap yang baik untuk cara lain untuk memvalidasi keterampilan mereka.
Penawaran Pekerjaan
Perekrutan diakhiri dengan tawaran pekerjaan kepada kandidat, ketika perusahaan menyajikan dokumen formal yang merangkum karakteristik posisi (nama, pangkat, area, dll.), Paket kompensasi (gaji dan tunjangan seperti kesehatan, pensiun atau pendidikan, dll.) , tanggal mulai, jadwal waktu, tempat bekerja, dan persyaratan untuk membuat kontrak kerja, jika kandidat menerima tawaran tersebut.
Meskipun pada tahap ini semuanya kurang lebih telah tercapai, kandidat mungkin ingin menegosiasikan beberapa persyaratan, dan terserah kepada perusahaan untuk menerima atau menawarnya. Itu tergantung pada praktik perusahaan.
Namun, tentu saja, perusahaan tidak ingin kehilangan kandidat yang baik karena masalah prinsip, sehingga pengorbanan yang wajar tidak akan merugikan siapa pun. Dalam hal ini, disarankan untuk meminta sesuatu kepada kandidat sebagai imbalan dari setiap konsesi yang dibuat, seperti, misalnya, tanggal mulai yang lebih awal, waktu minimum permanen di perusahaan, atau persyaratan khusus apa pun yang mungkin dimiliki perusahaan.
Mengelola Tim Pengembangan Perangkat Lunak untuk Sukses
Begitu pengembang perangkat lunak mulai bekerja di perusahaan, manajer mereka mulai menyadari siapa mereka, bagaimana mereka bekerja, dan yang terpenting, hasil yang mereka hasilkan. Mempertahankan insinyur perangkat lunak kemudian menjadi prioritas yang jelas.
Di sinilah wawasan tentang kepribadian insinyur perangkat lunak masuk: Mereka—terutama yang berkinerja tinggi—sering kali menunjukkan beberapa ciri umum. Kami akan menunjukkan pola-pola ini saat kami melanjutkan, tetapi perlu diingat bahwa mereka mungkin tidak berlaku sama untuk setiap individu. Manajemen proyek pengembangan perangkat lunak adalah tentang pola dan juga tentang pengecualian.
Pelatihan
Karena pengembangan perangkat lunak adalah pekerjaan teknis, itu memerlukan pengetahuan yang sangat tepat tentang struktur, tujuan, prosedur, kebijakan perusahaan (termasuk kredo dan praktik bisnis), dan standar (teknis dan non-teknis). Oleh karena itu, semakin baik pengembang memahami perusahaan, semakin baik produk yang akan mereka buat dan semakin sedikit waktu yang mereka perlukan untuk membuatnya.
Pelatihan dasar ini dapat dilakukan melalui dokumen, kursus intranet online, atau presentasi. Tapi itu suatu keharusan, karena akan memberikan kejelasan kepada karyawan baru.
Jika teknologi baru akan diperkenalkan, pastikan untuk memberikan pelatihan yang diperlukan. Pengembang perangkat lunak suka ditantang tetapi mereka mungkin tidak suka dilempar ke dalam teknologi baru tanpa mempelajarinya terlebih dahulu dengan benar.
Internet penuh dengan materi pembelajaran yang berharga, dan sering kali menjadi sumber daya pertama yang digunakan pengembang perangkat lunak saat mereka perlu mempelajari atau mempelajari kembali detail teknis. Jika Anda ingin mempertahankan pengembang perangkat lunak, penting untuk mempromosikan budaya belajar mandiri dan, jika perlu, memberikan waktu kerja untuk itu. Dengan cara ini, tim akan mendapatkan informasi terbaru tentang teknologi dan metode tercanggih, sesuatu yang sering sangat dihargai oleh pengembang perangkat lunak.
Sumber daya
Beberapa orang berpikir bahwa pengembang perangkat lunak mencari teknologi tertinggi untuk melakukan pekerjaan mereka, dengan spesifikasi terbaik yang tersedia di industri. Kami malah berpikir bahwa itu tergantung pada pekerjaan yang ada. Misalnya, jika sebuah perusahaan mengembangkan game orang pertama, maka pengembang perlu menyediakan kekuatan komputasi yang mutakhir. Tetapi jika tugasnya adalah mengembangkan layanan web back-end untuk sistem transaksional, komputer yang kurang kuat mungkin sudah cukup.
Yang benar-benar penting adalah memberi pengembang semua alat yang diperlukan untuk melakukan pekerjaan mereka dan terbuka terhadap saran mereka tentang alat baru. Logikanya, setiap alat baru yang disarankan pengembang harus disetujui (bahkan mungkin diuji sebelumnya) dan dilisensikan dari perusahaan. Ini sepadan dengan biayanya: Memiliki sumber daya yang memadai adalah faktor kunci dalam motivasi dan hasil pengembang. (Anda tidak dapat mengharapkan untuk mempertahankan insinyur perangkat lunak jika Anda mengaturnya agar gagal!)
Organisasi
Pengembang perangkat lunak suka bekerja di tempat yang mendorong dan menghargai upaya kreatif mereka karena pekerjaan mereka adalah membuat sesuatu dari nol meskipun dipandu oleh desain, standar, dan kebijakan TI. Oleh karena itu, pengembang perlu cukup yakin bahwa mereka termasuk dalam unit di mana semua birokrasi dan batasan minimal, selama mereka mematuhi kebijakan perusahaan dan sejalan dengan kredonya.
Ini tidak berarti bahwa pengembang perangkat lunak harus memiliki hak istimewa dibandingkan dengan bagian perusahaan lainnya, melainkan bahwa manajer mereka membantu mereka mengatasi atau menyelesaikan birokrasi bila diperlukan. Aspek yang sangat penting dalam mempertahankan pengembang perangkat lunak adalah bahwa atasan mereka terbuka terhadap kebutuhan pribadi mereka dan membantu mereka saat dibutuhkan.

Penataan unit pengembangan internal juga memainkan peran kunci di sini. Seringkali, grup pengujian ada, dan merupakan tugas manajer rekayasa perangkat lunak untuk menjaga kelancaran kerja tim antara pengembang dan penguji. Hal ini dapat dicapai hanya dengan memiliki metodologi dan proses yang jelas. Pengembang cenderung bekerja dengan penguji dengan sangat baik jika ada aturan yang harus diikuti oleh kedua belah pihak, menjaga agar konflik tetap rendah atau tidak ada.
Komunikasi (Rapat Berkala)
Jika Anda ingin mempertahankan pengembang perangkat lunak, penting untuk menjaga mereka tetap dalam lingkaran. Semua anggota dalam sebuah tim harus diperbarui secara berkala tentang tujuan, situasi perusahaan yang mempengaruhi mereka, strategi, perubahan dalam organisasi dan, yang tak kalah pentingnya, pencapaian tim.
Bahkan memiliki sejumlah anggota tim untuk berbagi beberapa sorotan akan baik untuk membina kohesi dan kerja tim tim. Biasanya, rapat tim ini—paling lama dua jam—harus dijadwalkan secara teratur (mungkin mingguan) serta pada acara-acara khusus seperti tahap akhir proyek, situasi kritis, dll.
Selain komunikasi dengan tim, manajer harus menetapkan cara untuk tetap up-to-date pada situasi setiap anggota, baik yang berhubungan dengan pekerjaan, teknis, atau pribadi.
- Terkait pekerjaan berarti semua aspek yang mungkin dari hubungan karyawan dengan perusahaan.
- Situasi teknis muncul ketika pengembang terjebak dengan masalah dan, untuk alasan apa pun, mereka tidak mencari bantuan.
- Jika pengembang membagikannya, situasi pribadi yang mereka alami dapat memengaruhi pekerjaan dan hubungan mereka dengan rekan kerja.
Biasanya, pertemuan mingguan 30 menit dengan setiap anggota tim akan memungkinkan seorang manajer untuk mengidentifikasi situasi ini dan memberikan bantuan, sehingga mencegah potensi krisis personel dan meningkatkan moral anggota tim di dalam perusahaan.
Untuk memperjelas, kita tidak berbicara tentang pembentukan unit pengembangan yang berorientasi pada pertemuan, sehingga disiplin pertemuan yang ketat (ketepatan waktu, rasa hormat, partisipasi, durasi) diperlukan. Selain itu, disiplin ini menunjukkan kepada pengembang bahwa mereka bekerja untuk organisasi yang sangat profesional, sesuatu yang biasanya mereka hargai.
Menetapkan Tujuan dan Menindaklanjuti
Tidak ada gunanya menetapkan tujuan umum tahunan atau pedoman penilaian serupa.
Ini adalah faktor yang jelas ketika berhadapan dengan pengembang perangkat lunak: Apa pun peran mereka (pengumpulan persyaratan, arsitektur, desain, pemrograman, pengujian, dll.), Tujuan harus diberikan kepada mereka dengan kejelasan semaksimal mungkin, jadi tidak ada gunanya dalam menetapkan tujuan umum tahunan atau pedoman penilaian serupa. Karena pengembang seharusnya bekerja dalam proyek, yaitu, dengan ruang lingkup dan garis waktu yang pasti, cara terbaik untuk menetapkan tujuan adalah di awal proyek dan mencakup bagaimana kemajuan akan dievaluasi dan, jika berlaku, bagaimana mereka akan diakui.
Untungnya, saat ini, ada metodologi yang bertujuan untuk menghasilkan hasil secepat mungkin, seperti Agile dan Scrum, yang menyederhanakan tindak lanjut dan kontrol proyek. Kadang-kadang ini bahkan dapat memainkan peran penting dalam mempertahankan bakat perangkat lunak: Banyak pengembang menyukai metodologi ini karena mereka dapat memberikan hasil dengan cepat, memberi mereka rasa pencapaian secara teratur.
Selain itu, pengembang sering kali menyukai metodologi yang lebih ringan. Mereka tahu bahwa yang high-end seperti Rational — di mana produk akhir dikirimkan setelah proyek panjang rekayasa persyaratan, desain, pengembangan, pengujian, dan implementasi — berisiko dan bisa menyakitkan untuk diikuti.
Manajemen konflik
Ini berlaku untuk tim pengembangan perangkat lunak sama seperti jenis lainnya: Manajer rekayasa perangkat lunak harus menangani konflik dengan cepat dan efektif, atau konflik dapat lepas kendali dan menghancurkan moral, kerja tim, dan efektivitas seluruh unit.
Dengan asumsi bahwa pengembang yang berkonflik adalah profesional dan bermaksud baik, pertemuan manajer dengan orang-orang yang terlibat untuk memulai dialog yang jelas dengan resolusi segera setelahnya harus cukup untuk memungkinkan tim melanjutkan. Juga, terkadang perlu memberi mereka peringatan yang jelas bahwa konflik di tingkat pribadi, jika memang demikian, tidak akan diterima.
Bagaimanapun, pada akhir rekonsiliasi ini, sangat penting bahwa kedua belah pihak merasa bahwa penyelesaiannya adil, bahkan jika salah satu dari mereka tidak menyukainya. Konflik terkadang menjadi bagian dari kehidupan, tetapi mempertahankan bakat perangkat lunak berarti memperlakukan semua orang dengan bermartabat setiap kali situasi seperti itu muncul.
Motivasi
Meskipun kami telah menyentuh banyak faktor yang mempengaruhi motivasi pengembang, ada satu aspek kunci lainnya. Yang ini tidak emosional, atau teknis. Kita berbicara tentang tingkat kompensasi untuk pekerjaan mereka.
Meskipun cenderung idealis, pengembang perangkat lunak sering menyukai hal-hal baik dari dunia material. Itu selalu lebih baik bagi perusahaan untuk memastikan bahwa gaji dan rencana kompensasi selaras dengan pasar tenaga kerja—studi industri mudah ditemukan—dan bahkan mungkin sedikit lebih tinggi untuk posisi mereka.
Selain itu, sebagian besar pengembang perangkat lunak tidak acuh terhadap tunjangan dan hadiah, termasuk kursus dan acara teknologi di mana mereka dapat mempelajari teknik yang berguna untuk memperkaya pekerjaan mereka.
Dalam hal mempertahankan pengembang perangkat lunak, penting untuk mendukung pertumbuhan mereka di dalam perusahaan, terlepas dari arah spesifiknya. Ketika insinyur perangkat lunak tidak menunjukkan banyak keinginan untuk pindah ke posisi kepemimpinan atau manajemen, mereka malah menghargai kemajuan di arena teknis. Ini termasuk sertifikasi yang lebih senior dan program akademik formal seperti gelar master atau bahkan PhD. Pengetahuan adalah pendorong yang sangat kuat bagi mereka.
Namun, ketika mereka bercita-cita untuk tumbuh ke posisi kepemimpinan, disarankan untuk melakukan analisis menyeluruh tentang kepribadian dan sejarah kandidat di perusahaan. Hal ini dapat dilakukan dengan bantuan departemen Sumber Daya Manusia atau unit perusahaan lainnya, karena manajemen yang baik memerlukan serangkaian keterampilan yang sama sekali berbeda di luar kemampuan teknis.
Cara Mempertahankan Bakat Perangkat Lunak: Catatan Akhir
Anda mungkin memiliki niat terbaik dan mengikuti semua tip di atas, tetapi tetap tidak berhasil mempertahankan pengembang perangkat lunak 100 persen sepanjang waktu—terkadang faktor luar hanya memiliki pengaruh lebih besar. Namun menurut kami pergantian personel bisa sehat dan penuh peluang, asalkan:
- Ini tidak sering. Jika ya, ini akan menjadi gejala dari sesuatu yang salah di tingkat organisasi.
- Itu hanya terjadi dengan sumber daya yang paling berharga. Dalam hal ini, itu bisa berarti bahwa mereka menggunakan perusahaan Anda sebagai trampolin, yaitu, mereka bersama Anda hanya untuk mendapatkan pengalaman sebelum pindah ke perusahaan lain.
Strategi retensi karyawan harus diabadikan dalam kebijakan perusahaan, bukan hanya reaksi ketika orang yang berharga ingin mengundurkan diri. Retensi reaksioner sangat mahal, dan cacat: Orang tersebut mungkin setuju untuk tinggal, tetapi berpikir dalam hati, “Saya telah bekerja di sini selama X tahun hanya untuk ditawari gaji dua kali lipat ketika pergi—mereka baru saja mengakui bahwa mereka tidak membayar saya cukup!"
Apa yang akan menjadi langkah orang ini selanjutnya? Mereka mungkin mencari pekerjaan lain, tetapi sekarang dengan gaji dua kali lipat sebagai minimum mereka. Pada titik ini, mencoba mempertahankan insinyur perangkat lunak dengan segala cara sepertinya tidak sepadan. Kecuali jika orang tersebut benar-benar fundamental (dan tak tergantikan) bagi perusahaan, mungkin lebih baik merundingkan periode pemberitahuan dan segera mencari penggantinya.
Ini adalah Tugas Non-Deterministik
Menarik dan mempertahankan pengembang perangkat lunak adalah tugas yang kompleks dan non-deterministik, seperti halnya setiap peran dalam industri teknologi. Ada banyak perusahaan yang mencari pengembang perangkat lunak yang berharga di luar sana, tetapi untungnya, tujuannya di sini bukan untuk menang melawan perusahaan-perusahaan ini, melainkan untuk menarik orang-orang baik yang dapat kami kelola untuk tetap berada di perusahaan kami.
Proses seleksi dapat memakan banyak waktu dan usaha. Jika mendekati ini dengan tergesa-gesa, kemungkinan Anda akan berakhir dengan orang yang salah—dan siapa yang ingin mempertahankan insinyur perangkat lunak yang beracun bagi tim mereka? Luangkan waktu untuk melakukannya dengan benar.