Jika Anda tidak mempekerjakan Jones, maka Anda tidak layak mendapatkan junjungan

Izinkan saya menceritakan sebuah kisah tentang satu perusahaan yang sangat sukses yang membuat kesalahan besar, bodoh:
Kami tidak mempekerjakan programmer dan magang yunior ... Jika Anda tidak memiliki anak anjing, Anda tidak perlu membersihkan genangan air.
- Netflix

Saya benar-benar kagum bagaimana beberapa perusahaan berhasil menyajikan anak-anak anjing dalam cahaya negatif, dan bahkan seseorang meyakinkannya. Anak anjing adalah makhluk terbersih di Bumi, hidup dengan sukacita yang lembut! Sinar cahaya di dunia yang sepi. Tapi mari kita langsung ke intinya.

Banyak perusahaan telah mengikuti strategi "rekrut saja senior" ini. Mereka membenarkannya seperti ini:
  • Kami tidak punya waktu dan sumber daya untuk menyewa programmer junior; kami berkembang terlalu cepat.
  • Perusahaan kami mampu membayar manula, jadi tidak perlu untuk joon.
  • Pada tahap saat ini, kita tidak mampu membayar kesalahan. Taruhannya terlalu tinggi.
  • Proses kami memberikan otonomi yang lebih besar kepada karyawan. Kami tidak siap untuk memegang jones dengan pegangan, karena mereka membutuhkannya.
  • Kami ingin meletakkan dasar untuk produk sebelum kami mulai merekrut karyawan yang tidak berpengalaman.

Pesannya adalah bahwa programer junior menimbulkan risiko, langkah yang diambil perusahaan baik karena rasa hutang publik atau karena kurangnya anggaran. Ternyata perusahaan lain harus mampu membayar amal perusahaan dan hasil kelas dua, tetapi tentu saja bukan kita.

Ngomong-ngomong, di AS ada lebih dari 100.000 perusahaan IT , dan saya tidak mendengar sesuatu untuk setidaknya satu CEO mengatakan, "pikirkan, kesalahan!" atau "perlu untuk menurunkan anggaran tambahan di suatu tempat." Jadi perhatian, organisasi, di mana "entri dilarang hingga Juni"! Tidak peduli bagaimana Anda melihat manfaat Anda, tidak peduli bagaimana Anda membenarkan peretasan hidup Anda, kenyataannya adalah bahwa Anda menciptakan semua ini untuk diri Anda sendiri. Tidak ada keunggulan kompetitif dalam menyingkirkan Juni. Dan Anda baru saja menunjukkan kepada dunia manajemen masalah Anda.

Permusuhan terhadap pengembang junior adalah cara mudah untuk menemukan budaya perusahaan yang beracun.

- April Wensel (@aprilwensel) 1 Agustus 2017

Permusuhan terhadap programmer yang lebih muda adalah tanda yang jelas dari budaya perusahaan yang beracun.


Cara Anda merekrut dan menangani programmer junior adalah indikator tidak langsung penting bagi kesehatan organisasi Anda, lini produk Anda, dan budaya internal Anda. Lansia memperhatikan hal ini. Dan jika ini saja tidak terdengar cukup meyakinkan, maka mempekerjakan sejumlah programmer junior yang seimbang juga memberikan keuntungan finansial.

Pencegahan masalah


Jika Anda menolak programmer junior karena mereka “membuat masalah”, maka Anda juga secara otomatis mengirim pesan penting kepada karyawan Anda tentang budaya perusahaan: kesalahan tidak diperbolehkan. Anda membuat gambar perusahaan yang memecat seseorang kapan pun server mati. Tidak peduli berapa banyak Anda membayar, tidak ada yang mau bekerja di lingkungan yang tidak memberi kepercayaan di masa depan. Dan upaya untuk mengintimidasi programmer sehingga mereka tidak membuat kesalahan, melipatgandakan budaya ketakutan dan ancaman, yang secara serempak memengaruhi kesehatan psikologis dan produktivitas.

Anda mungkin berpendapat bahwa sikap ini mendorong pemrogram untuk berhati-hati dan membuat proses pemeriksaan kesalahan: misalnya, pengujian otomatis, QA, failover, perlindungan akses, dan perubahan kode yang dapat dibalik. Tetapi teori ini menempatkan kereta di depan kuda. Jika kebijakan perusahaan mendorong penciptaan asuransi semacam itu dan perusahaan itu sendiri menyediakan waktu dan sumber daya yang cukup bagi programmer untuk hal ini, maka budaya kesalahan yang tidak dapat diterima tidak perlu dan tidak berguna; sebagian besar masalah akan terperangkap jauh sebelum produksi. Dan setiap programmer, baik junior atau senior, lebih suka lingkungan di mana proses yang dapat diandalkan melindungi terhadap kesalahan bencana.

Dan bagaimana dengan kesalahan yang menerobos semua lindung nilai yang ada? Anggap saja sebagai peluang berharga untuk memperkuat pertahanan Anda. Programmer yang lebih muda, harus diakui, biasanya membuka peluang seperti itu lebih cepat daripada senior. Jadi pertanyaannya adalah: apakah Anda lebih suka men-debug proses Anda cepat atau lambat? "Tidak pernah" itu baik, seperti yang akan dikonfirmasi oleh programmer mana pun. Jika ada yang salah, cepat atau lambat akan hilang. Tidak ada stok pengalaman yang akan mencegah kesalahan manusia.

Tentu saja, Anda akan memerlukan beberapa programmer senior dan ops lead untuk meletakkan dasar dan menciptakan preseden untuk siklus pengembangan failover. Tidak ada yang menawarkan untuk mempekerjakan hanya programmer junior. Tetapi jika kantor Anda benar-benar serius tentang kesalahan - dengan kata lain, kesalahan diketahui lebih awal dan sering - maka programmer yang lebih muda akan berguna. Dan semua tingkatan programmer akan lebih puas dengan pekerjaan mereka, karena toleransi kesalahan membebaskan mereka untuk membuat perangkat lunak yang baik (bukannya terus-menerus memadamkan kebakaran) dan melindungi malam dan akhir pekan mereka.

Menyimpan uang


Menurut Memang, Insinyur Perangkat Lunak Junior rata-rata mendapat $ 55.394 per tahun, sedangkan Insinyur Perangkat Lunak Senior mendapat $ 117.374 per tahun. Usia lanjut lebih dari dua kali lebih mahal dari bulan Juni.

Biaya-biaya ini seringkali dibenarkan. Produktivitas yang lebih tinggi diharapkan dari pemrogram yang lebih tua daripada dari yang lebih muda. Tapi ini bukan akhir dari gambar, dan Anda akan mendapatkan satu sen untuk pembenaran biaya tambahan yang malas dan malas sebagai biaya melakukan bisnis.

Tidak semua kode aplikasi membutuhkan pengalaman bertahun-tahun untuk menulis atau bahkan untuk pekerjaan yang dilakukan dengan baik. Setiap program memiliki "lem perangkat lunak" yang menghubungkan berbagai input dan output dengan cara yang benar-benar biasa. Faktanya, tidak masalah siapa yang menulisnya. Anda dapat membayar $ 28 per jam untuk menulis kode ini - atau Anda dapat membayar $ 59 per jam untuk menulis kode yang sama. Dengan satu atau lain cara, hasilnya tidak akan banyak berbeda. Jika Anda hanya mempekerjakan senior, maka Anda membayar terlalu tinggi untuk sejumlah besar pekerjaan sederhana.

Selain itu, basis kode sangat bervariasi antara aplikasi, dan keakraban dengannya merupakan faktor kunci dalam produktivitas. Dalam kebanyakan kasus, seorang programmer junior yang telah bekerja dalam tim selama enam bulan akan lebih efisien dalam mengatasi tugas-tugas daripada seorang programmer senior yang baru direkrut - hanya karena tingkat keakraban dengan logika proyek.

Lem perangkat lunak yang disebutkan sebelumnya dan kode khusus domain terdiri setidaknya setengah dari seluruh pengembangan. Sisanya adalah kode yang benar-benar membutuhkan perhatian spesialis senior dengan manfaat untuk hasilnya. Tetapi bahkan dengan kode ini, seorang programmer junior dapat melakukan pekerjaan luar biasa dengan akses yang cukup ke sumber daya pendidikan dan saran dari seorang mentor yang berpengalaman.

Dalam pandangan ini, sepasang programmer junior dan senior biasanya bekerja dengan efektifitas dari dua programmer senior dan kurang dari 75% dari biaya. Jika sasaran Anda adalah produktivitas maksimum dengan biaya minimum, maka pasangan Juni + Senior tersebut harus menjadi molekul fundamental organisasi Anda.

Perlu dicatat satu lagi, faktor tak terukur: kecenderungan programmer senior untuk debat konstan pada topik yang pada akhirnya tidak signifikan - tentang algoritma, optimasi mikro, dan gaya kode. Jika perusahaan hanya merekrut senior dan tidak memiliki proses pengambilan keputusan yang ketat, maka ratusan jam kerja dapat menuju ke perselisihan tersebut. Pengembang junior biasanya kehilangan masalah seperti itu.

Pengembangan karir


Jika Anda tidak menyewa programmer junior, maka kirim pesan lain ke staf - bahwa Anda tidak tahu bagaimana pengembangan karir bekerja.

Kadang-kadang ketika perusahaan mengatakan mereka tidak mempekerjakan pengembang junior saya ingin mengguncang mereka dengan hoodies dan berteriak, dari mana Anda pikir pengembang senior berasal?!

- Kate Heddleston (@ heddle317) 13 September 2018

Kadang-kadang, ketika perusahaan mengatakan mereka tidak mempekerjakan programmer junior, saya ingin meraihnya dan berteriak: dari mana Anda pikir programmer senior berasal?!

Sekali lagi, ini bukan tentang memenuhi utang sipil perusahaan dan bukan tentang "berpartisipasi dalam pengembangan" komunitas TI. Ini tentang mengubah perusahaan Anda menjadi tempat kerja yang layak di mana pemrogram ingin menetap dan tinggal cukup lama untuk memberikan kontribusi nyata.

Saya kebetulan mendengar dari pemrogram: “Bosan berganti jabatan. Saya hanya ingin selamanya menjadi programmer senior. ” Namun, belum ada yang mengatakan kepada saya: "Saya harap saya tidak akan pernah menerima kenaikan gaji, saya tidak akan belajar sesuatu yang baru dan tidak akan diakui untuk layanan saya." Dan, anehnya, sumber daya yang dibutuhkan untuk mendukung para karieris yang ambisius dan tekun, tetapi programmer senior yang antusias hampir sama. Kita membutuhkan cara untuk mengubah dan mengenali pekerjaan yang dilakukan dengan baik, sumber daya pendidikan yang cukup dan berbagai proyek dari berbagai usia dalam pipa pembangunan. Anda perlu menciptakan rasa pengembangan, bahkan bagi mereka yang tidak tertarik dengan promosi.

Tapi jangan mengunci orang-orang ini. Minoritas mereka. Sebagian besar pekerja TI tidak akan menjadi programmer senior selama 40 tahun. Mereka bermimpi menjadi arsitek perangkat lunak, pemimpin tim, direktur teknis dan pendiri studio. Dan sebuah perusahaan yang membanggakan ketidakpeduliannya terhadap pertumbuhan karier akan mendapati dirinya berada di bagian bawah daftar pengusaha yang menjanjikan.

Saya hanya merekrut senior devs.

Kuncinya adalah, saya merekrut beberapa dari mereka sebelumnya dalam karir mereka.

- Reginald Braithwaite (@raganwald) 17 September 2018

Saya hanya mempekerjakan programmer senior.

Kuncinya adalah saya mempekerjakan beberapa dari mereka di awal karir saya.

Salah satu ungkapan paling mengesankan yang dapat didengar oleh seorang programmer pada saat wawancara adalah "Halo, saya seorang pemimpin tim, saya bekerja di sini selama delapan tahun, dimulai dengan magang." Sangat mengesankan dan sangat jarang. Orang seperti itu sangat penting bagi perusahaan - dia tahu segalanya tentang lini produk, dia melihat kode untuk semua proyek dalam radius seratus meter, dan dia bekerja dengan semua karyawan perusahaan. Dia mampu menawarkan inovasi dalam perusahaan tidak seperti yang lain. Dan perusahaan mendapatkan dividen yang tidak terhitung dari pekerjaan orang ini, karena ia dapat memahami bagaimana mempertahankan minatnya selama delapan tahun - sekitar 1/10 dari rata-rata harapan hidup. Ini adalah bukti keberhasilan budaya perusahaan. Ini adalah tanda kantor di mana semangat juang berkuasa, di mana pengakuan menemukan pekerjaan yang dilakukan dengan baik, dan proyek-proyek menarik menunggu di setiap sudut.

Mengklaim "kami tidak merekrut Juni" adalah, sebaliknya, pengakuan terbuka bahwa perusahaan tidak siap untuk memainkan peran dalam karier siapa pun. Ini sebenarnya merupakan demonstrasi stagnasi: perusahaan ingin menarik programmer yang berpengalaman dan berbakat yang akan memberikan kontribusi mereka hanya demi satu gaji. Beberapa akan menyetujui kondisi seperti itu, tetapi Anda tidak akan melihat karya terbaik mereka.

Namun, jika perusahaan Anda benar-benar serius tentang pertumbuhan karier, maka pembatasan buatan pada programer junior hanya mempersempit batas waktu perekrutan dan mempersingkat waktu karyawan di perusahaan Anda.

Menulis perangkat lunak yang hebat


Programer junior memiliki sejumlah sifat unik yang biasanya hilang oleh rekan yang lebih berpengalaman. Salah satunya adalah optimisme yang jelas. Lain adalah kesediaan untuk mengikuti pemimpin. Tapi mungkin fitur paling penting yang ditawarkan oleh programer junior adalah kurangnya barang bawaan. Pemrogram senior melihat naik turunnya teknologi, kegagalan proyek, tim yang terkoyak oleh konflik internal, dan kehidupan industri TI lainnya. Mereka telah mengumpulkan keyakinan yang kuat dan sering menarik kesimpulan yang luas, menunjukkan bahwa satu skenario keberhasilan (atau kegagalan) akan terungkap dengan cara yang sama untuk proyek atau tim lain. Yang dapat menyebabkan keengganan untuk memahami nuansa bidang masalah baru.

Perusahaan-perusahaan yang begitu bersemangat hanya mempekerjakan orang-orang senior sering lupa bahwa tidak mempelajari apa yang tidak berlaku bisa memakan waktu lebih lama daripada mempelajari apa yang berlaku.

- DHH ( dhh ) 31 Juli 2017

Perusahaan yang ingin merekrut hanya para profesional senior sering kali mengabaikan bahwa terlalu banyak melupakan seringkali lebih sulit daripada mempelajari hal yang benar.

Kadang-kadang tugas manajer proyek adalah mengatakan, "Saya tahu itu tidak berhasil di sana, tapi mungkin itu akan berhasil untuk kita." Seorang programmer junior biasanya kandidat terbaik untuk menguji teori seperti itu: ia dapat mengumpulkan sampel ide atau prototipe tanpa menarik ke dalamnya prasangka yang dikumpulkan oleh programmer senior selama bertahun-tahun. Sebagai seorang programmer junior, saya sering melakukan pekerjaan ini, menguji alat dan teknologi baru, menulis ulang fragmen kode dengan cara alternatif, mencoba ide-ide yang dipecat karyawan lain dengan cepat. Saya sering menemukan perbaikan arsitektur, dan perusahaan perangkat lunak menjadi lebih baik. Dalam beberapa kasus, dimungkinkan untuk mempercepat pemuatan halaman dengan urutan besarnya; atau gabungkan beberapa halaman menjadi satu, hindari dukungan berminggu-minggu di masa depan; atau menyingkirkan teknologi yang tidak efisien yang akan menyebabkan hilangnya waktu. Manfaat dari penampilan segar dan segar tidak boleh dilewatkan.

Banyak perusahaan mampu membayar pemborosan seperti memecahkan masalah atau menulis kode dengan mengunci beberapa programmer senior di ruang rapat untuk mendapatkan sesuatu. Tetapi jika Anda menambahkan beberapa jones - yaitu, pengembang yang waktunya dapat dibelanjakan untuk eksperimen satu kali dan ide-ide yang tidak biasa - Anda dapat melihat peningkatan apa yang akan terjadi pada produk Anda.

Mengenai kualitas perangkat lunak, programmer yang lebih muda biasanya melakukan pekerjaan penting yang hanya sedikit diperhatikan orang: mereka menahan kode yang berlebihan dan berlebihan yang cenderung ditulis oleh kolega lama mereka.

Salah satu atribut programmer yang diremehkan adalah kemampuan untuk menulis kode yang rata-rata atau insinyur biasa-biasa saja dapat dengan mudah membaca, memodifikasi, dan memperluas.

- Jamon Holmgren (@jamonholmgren) 17 September 2018

Salah satu keterampilan programmer yang diremehkan adalah kemampuan untuk menulis kode yang rata-rata atau programmer biasa-biasa saja dapat dengan mudah membaca, memodifikasi, dan memperluas.

Jika Anda mengganti "sedang atau biasa-biasa saja" dengan "junior", Anda akan segera melihat sistem. Basis kode adalah cetakan abstrak dari pemikiran kritis penulisnya. Kombinasi yang kuat antara programmer junior dan senior memberikan kesempatan untuk menyederhanakan kode, yang mempercepat fitur penulisan dari waktu ke waktu.


Untuk meringkas: prinsip "hanya senior", yang tersebar luas di TI, meremehkan programmer junior. Ini berdampak buruk bagi semua orang, terutama ketika organisasi percaya bahwa tanpa spesialis pemula semuanya akan lebih mudah. Walaupun beberapa dari perusahaan ini sukses secara finansial, orang dapat membayangkan jumlah yang sangat besar yang harus dihabiskan untuk anggaran mereka karena pendekatan ini.

Jika perusahaan Anda melampaui pesaing dalam masalah ini - yaitu, ia tahu cara merekrut, melatih, dan mempertahankan programmer junior - maka Anda sendiri merasakan semua keuntungan yang hanya saya jelaskan secara dangkal dalam artikel ini. Anda memiliki pergantian yang lebih rendah, keragaman spesialis yang lebih tinggi, dan biaya overhead yang lebih rendah daripada pesaing. Perangkat lunak Anda memiliki lebih sedikit bug dan lebih banyak kesenangan. Tentu saja ada faktor-faktor lain. Tetapi pendekatan positif untuk programmer junior adalah tanda penting kualitas kantor di semua tingkatan.

Source: https://habr.com/ru/post/id425285/


All Articles