Bagaimana cara membuat kasing untuk programmer mahal?

33

Di perusahaan kami, kami perlu melakukan banyak hal yang tampaknya tidak rumit, seperti mengembangkan UI Seluler.

Katakanlah programmer yang berpengalaman menghabiskan biaya 4x sebanyak pemula.

Keduanya pada dasarnya mampu menyelesaikan hal-hal yang tampaknya sederhana dalam jumlah waktu yang sama.

Perbedaannya adalah, bahwa programmer yang berpengalaman menghasilkan lebih sedikit bug dan kode mereka lebih stabil dll. Programmer pemula menghabiskan banyak waktu orang lain (PM, klien, dll). Tetapi mereka secara signifikan lebih murah.

Argumen balasannya adalah, bahwa dibutuhkan pengalaman dan jumlah waktu yang sama untuk membuat tabel dalam HTML. Oleh karena itu, merupakan hal yang mewah untuk merekrut programmer berpengalaman untuk melakukan, apa yang mungkin dapat dicapai oleh programmer pemula.

Haruskah kita berinvestasi dalam lebih banyak programmer dan lebih baik atau lebih banyak dan lebih baik PM, mengingat bahwa perbedaan antara programmer berpengalaman dan baru di bidang kita bisa 4x.

pengguna1721135
sumber
18
Pemrogram berpengalaman akan menghasilkan kode lebih cepat dan dengan lebih sedikit bug, tetapi mereka juga akan cepat bosan bekerja pada proyek-proyek sederhana.
david25272
18
Let's say the experienced programmers costs us 4x as much as the beginners.- Itu tidak mungkin. Rasionya lebih seperti 2x atau 3x. Jika Anda membayar programmer dengan buruk, apa yang sebenarnya Anda lakukan adalah merekrut amatir dan melatih mereka untuk melakukan pekerjaan yang Anda butuhkan, hanya agar mereka meninggalkan perusahaan Anda untuk padang rumput yang lebih hijau begitu mereka mendapatkan pengalaman minimal dalam ikat pinggang mereka.
Robert Harvey
4
Both are basically able to complete the seemingly simple things in the same amount of time.- Nah, programmer berpengalaman menghemat banyak waktu dalam jangka panjang karena Anda tidak perlu memberinya instruksi lebih spesifik tentang apa yang harus dilakukan.
Robert Harvey
8
@ jules: Untuk melakukan outsourcing / lepas pantai, Anda harus menulis spesifikasi yang sangat terperinci, sebuah proses yang dapat memakan waktu sebanyak yang dibutuhkan oleh programmer yang berpengalaman hanya menulis program yang sebenarnya. Jangan mengambil kata-kata saya untuk itu, berbicara dengan siapa pun yang berusaha lepas landas. Saya sudah.
Robert Harvey
2
@Wan: Tolong beri contoh perusahaan besar yang telah meninggalkan London dalam dua tahun terakhir untuk menemukan pengembang perangkat lunak yang lebih murah di tempat lain di Inggris.
gnasher729

Jawaban:

60

Saya memiliki pengalaman langsung dari kedua teori yang dicoba di dunia nyata - dalam proyek yang sama sebenarnya.

Sebelum saya tiba, keputusan telah dibuat untuk menyewa BA yang lebih mahal dan programmer yang sangat murah - idenya adalah untuk memiliki spesifikasi kualitas yang baik yang diikuti secara kasar oleh programmer yang sangat junior.

Setelah 6+ bulan proyek utama meronta-ronta saya mengambil alih sebagai manajer pengembangan. Setelah saya memperbaiki beberapa faktor kebersihan, masalah kualitas kode tetap ada. Saya memiliki beberapa anggaran cadangan dan mempekerjakan seorang programmer yang sangat berpengalaman (yah, lebih dari seorang Arsitek Solusi) dengan keterampilan komunikasi di luar grafik dan kehidupan sebelumnya sebagai pelatih di C # (bahasa yang ditulis dalam proyek ini). Idenya adalah untuk meningkatkan kualitas coders lain dengan memberikan bimbingan dan pelatihan gratis yang efektif.

Setelah satu atau dua bulan menjadi sangat menyakitkan bahwa bahkan itu tidak akan berhasil sehingga tim asli dikeluarkan dari proyek dan beberapa programmer top-laci ditambahkan. Mereka menyampaikan proyek yang gagal dilakukan tim asli dalam 8+ bulan mencoba dalam 3 sprint sebulan dimulai dari awal karena kode asli tidak dapat ditebak.

Jika persyaratan Anda sangat mendasar, Anda mungkin bisa menggunakan programmer yang sangat junior, tetapi kemungkinannya akan lebih mahal dalam jangka panjang. Terkadang persyaratan "sederhana" berkembang menjadi kerumitan besar.

Jika saya tidak membuat pilihan sulit untuk mengubah arah, mereka mungkin masih akan mengerjakannya :) - Lebih serius, dalam contoh ini, kurangnya komunikasi dan kompetensi oleh tim asli berarti mereka tidak akan mengangkat masalah dengan spesifikasi tetapi hanya akan mencoba melakukan apa pun yang diminta untuk dilakukan apakah itu masuk akal secara arsitektur atau tidak. Pengembang yang lebih berpengalaman dan percaya diri mengajukan pertanyaan dan menggali persyaratan mendasar dan akhirnya menghasilkan solusi yang tepat untuk pertama kalinya.

Oh, satu hal lagi. Jangan berasumsi bahwa Anda dapat langsung menyewa programmer yang hebat. Ada banyak orang di luar sana dengan pengalaman bertahun-tahun yang biasa-biasa saja yang akan memberikan hasil yang hampir sama buruknya dengan seorang junior tetapi biayanya sama dengan seorang superstar (kadang-kadang bahkan lebih). Saya memiliki "hit rate" yang sangat baik tetapi itu datang dengan pengalaman dan saya punya banyak. Itulah pokok pembicaraan yang sangat berbeda yang di luar topik di sini ...

TL; DR Pemrogram yang baik sangat murah. Bagian yang sulit adalah menemukan mereka dan menciptakan lingkungan kerja yang cukup menarik untuk menjaganya.

mcottle
sumber
3
Saya akan menukar "Berpengalaman" dengan "Bagus" di tl Anda; dr untuk alasan yang Anda tunjukkan tepat di atasnya. Juga, sangat mungkin (tetapi masih sulit) untuk menemukan programmer yang baik dengan pengalaman profesional yang relatif sedikit atau tidak ada. Saya akui, bahwa membuka kunci potensi pengembang ini memang memerlukan perawatan, dan sangat mungkin perusahaan OP tidak memiliki budaya yang cocok untuk melakukan ini. Salah satu manfaat memiliki programmer yang hebat adalah menjadi teladan perilaku dan praktik yang baik dan berbeda dengan yang biasa-biasa saja.
Derek Elkins
1
@Derek Elkins - Saran bagus, sudah selesai. Setuju dengan poin kedua Anda. Pada satu pekerjaan saya sangat dibatasi untuk anggaran dan masih berhasil mengumpulkan tim yang sangat baik dari satu programmer berpengalaman dan 3 programmer sangat junior (tanpa gelar, pengalaman sangat sedikit) sebagai karyawan baru - salah satunya sangat luar biasa. Tetapi saya "menghabiskan" banyak uang melalui beberapa CV buruk yang menyedihkan sebelum saya menemukannya dan lebih banyak waktu / uang melatih mereka sendiri dengan mengajukan tugas-tugas kecil di tingkat yang tepat dan membiarkan mereka memiliki solusi mereka dan merayakan pencapaian mereka.
mcottle
Ya, pengalaman saya mirip, meskipun saya menemukan CV junior yang buruk jauh lebih menyedihkan daripada mewawancarai seorang "senior" dengan 15 tahun pengalaman SQL yang tidak tahu apa itu join luar. Ada beberapa hadiah, meskipun, dari biaya pelatihan dalam hal kesesuaian perusahaan, kesetiaan, moral yang secara umum meningkat, dan, terus terang, setelah mereka dilatih, mereka cenderung lebih baik dan lebih murah daripada dev senior yang "khas". Ini jelas merupakan investasi, dan waktu untuk membayar sering kali terlalu jauh untuk berguna, bahkan jika itu akan menjadi kemenangan bersih.
Derek Elkins
Pos hebat +1. Saya hanya akan menambahkan peringatan bahwa waktu pengiriman adalah alat yang sangat tumpul untuk menilai kualitas pengembang. Kami memiliki kontraktor "superstar" yang awalnya banyak diminati karena kecepatan pengembangannya. Begitu orang-orang mencoba mengambil barang-barangnya, roda segera terlepas - retas, pengodean keras, kode monolitik, kurangnya tes unit - ia segera dikirim mengepak pos tergesa-gesa ...
Robbie Dee
Selain itu, pengembang premium menghabiskan waktu pengkodean jauh lebih sedikit daripada junior mereka karena mereka sangat membutuhkan bantuan dalam membantu orang lain, ulasan kode, arsitektur, devops, sesi tas coklat, bengkel, pelatihan dll.
Robbie Dee
19

Jika Anda memiliki statistik kinerja yang luas, Anda dapat membuat kasus bisnis dengan matematika. Ini dapat menunjukkan bahwa kecepatan pengembangan akan mengkompensasi kenaikan harga, atau bahkan lebih baik, bahwa desain yang kuat dapat menghemat lebih banyak dalam pemeliharaan dan pengembangan versi berikutnya. Sayangnya angka-angka seperti itu tidak sering tersedia - terutama untuk teknologi yang lebih baru.

Argumen lain bisa jadi waktu ke pasar. Ini lebih mudah dipahami oleh manajemen atas. Namun jika waktu tidak terlalu kritis, ini tidak akan membantu.

Dalam upaya terakhir, temukan gambar Red Adair , petugas pemadam kebakaran terkenal, yang dipanggil dalam bencana besar setelah beberapa upaya gagal dari orang-orang yang kurang berpengalaman. Kutipan terkenalnya:

Jika Anda berpikir mahal untuk menyewa seorang profesional, tunggulah sampai Anda menyewa seorang amatir.

... pantas dicetak dalam warna dan ditampilkan dengan jelas di pintu kantor Anda, sehingga semua orang mengerti tentang apa itu semua ;-)

Christophe
sumber
Saya pikir ini adalah jawaban terbaik yang pernah saya lihat dan karena sudah ada banyak jawaban, saya akan menambahkan bahwa nilai pengembang profesional senior tidak untuk melakukan hal yang sama berulang dengan kesalahan lebih sedikit. Idenya adalah untuk mendapatkan seseorang yang dapat menghilangkan pekerjaan berulang dan meningkatkan tingkat abstraksi dan untuk membimbing dan membimbing anggota tim junior. Kita perlu lebih banyak pencampuran orang-orang senior dan junior dalam pembangunan untuk keluar dari daur ulang terus-menerus dari ide-ide buruk lama yang tidak berfungsi dalam jangka panjang.
JimmyJames
Saya pikir pencarian yang mudah untuk mengumpulkan statistik untuk menilai kualitas pengembang sudah lama dibatalkan baik itu baris kode, jumlah cacat, kompleksitas cyclomatic, cakupan kode atau apa pun. Angsa emas adalah prediktor untuk campuran pengembang yang tepat yang dapat dirakit dengan biaya paling murah untuk menghasilkan produk yang cukup baik.
Robbie Dee
@RobbieDee Tidak perlu model yang sempurna: hanya pendekatan pragmatis. Misalnya, Jika Anda memperkirakan secara sistematis titik cerita terkait dengan tugas pengembangan, waktu implementasi, dan tingkat senioritas penanggung jawab, Anda akan mengumpulkan rata-rata yang sangat menarik. Tentu saja statistik ini hanya relevan untuk memperkirakan aktivitas yang serupa dengan teknologi yang sama. Dan mereka hanya rata-rata dan bukan mangkuk kristal. Tetapi Anda mungkin mendapatkan data yang membantu menunjukkan tren dan membenarkan rasio harga senioritas.
Christophe
@Christophe Story poin adalah untuk membandingkan kerumitan satu tugas dengan yang lain - mereka tidak dirancang untuk mengukur waktu meskipun mereka disalahgunakan secara besar-besaran seperti itu (2pts = 1 hari dll).
Robbie Dee
@RobbieDee itu maksud saya: jika Anda ingin statistik kinerja Anda perlu membandingkan waktu kinerja tugas dan kompleksitas tugas. Semua kesulitannya adalah untuk mendapatkan evaluasi kompleksitas yang akurat. Stat ini layak dalam praktik hanya jika Anda dapat dengan mudah mendapatkan perkiraan. Jika FP digunakan, itu sangat akurat. Tetapi evaluasi KB memakan waktu dan tidak ramah lincah. Poin cerita kurang objektif tetapi lebih mudah didapat. Tentu saja, Anda benar: Anda perlu membuat skala linier jika Anda ingin membuat rata-rata. Dalam manajemen proyek pendekatan ini disebut "estimasi parametrik".
Christophe
10

Saya suka dan meningkatkan jawaban mcottle, tetapi saya ingin membahas beberapa dinamika dan argumen lain yang belum dijawab oleh jawaban lain.

Pertama, tersirat dalam jawaban mcottle adalah kenyataan bahwa di bawah tingkat keterampilan tertentu, beberapa masalah tidak mungkin terjadi. Sayangnya, cara Anda mengetahuinya adalah dengan tim Anda yang mencoba dan gagal, itu sangatmahal. Setelah gagal, ada dua pelajaran yang mungkin untuk dipelajari dari ini. Satu pilihan adalah Anda belajar bahwa Anda membutuhkan lebih banyak pengembang yang kompeten dan karenanya Anda merekrut mereka dan Anda menyelesaikan proyek secara signifikan melebihi anggaran dan jadwal, tetapi setidaknya Anda siap di masa depan. Pilihan lainnya adalah bahwa proyek seperti itu "terlalu sulit" untuk tim Anda dan hal-hal seperti itu tidak boleh dicoba di masa depan, yaitu Anda menyerah pada proyek dan secara efektif melakukan hal serupa. Tentu saja, ini jarang akan disebut sebagai "kami terlalu bodoh untuk melakukan ini", tetapi sebaliknya akan dirasionalisasi sebagai "sistem kami sangat kompleks" atau "kami memiliki banyak kode warisan" atau beberapa lainnya. Pandangan yang terakhir ini dapat secara signifikan membelokkan perspektif perusahaan tentang apa yang mungkin dan berapa lama / mahal pembangunan seharusnya. "

Satu pertanyaan adalah, apa sebenarnya rencana perusahaan Anda? Oke, mereka akan menyewa programmer junior yang murah. Tiga tahun berlalu, sekarang bagaimana? Apa yang mereka lakukan dengan pengembang yang telah bersama mereka selama tiga tahun itu? Apakah mereka tidak pernah memberinya kenaikan gaji? Opsi di sini adalah sebagai berikut:

  • Mereka memberikan kenaikan gaji secara kompetitif untuk mempertahankan karyawan, dalam hal ini mengapa mereka memiliki masalah dalam membayar tarif pengembang senior sekarang? Saya akan kembali ke sini.
  • Mereka memiliki tingkat stagnan yang berarti mereka pada akhirnya akan "menurunkan" karyawan yang tidak memiliki dorongan dan / atau keterampilan.
  • Mereka lebih aktif menghapus lebih banyak karyawan senior.

Dua kasus kedua menyiratkan banyak turn-over karyawan yang berarti hilangnya pengetahuan perusahaan dan membayar untuk meningkatkan karyawan secara terus menerus. Dalam kasus kedua, Anda pada dasarnya memilih pengembang yang buruk sehingga biaya akan meningkat dalam bentuk jadwal yang meningkat. Cara ini akan bermain adalah semuanya baik-baik saja di proyek X sampai tiba-tiba Jim pergi, yang merupakan salah satu pengembang yang lebih baik, karena dia belum mendapatkan kenaikan dalam dua tahun, sekarang proyek "dimengerti" akan memakan waktu lebih lama karena Anda perlu merekrut dan melatih pengembang junior baru yang (mungkin) tidak akan sebaik Jim. Ini adalah bagaimana Anda mengkalibrasi ulang harapan.

Bahkan dalam kasus kenaikan gaji sedang disediakan, jika semua yang Anda miliki adalah pengembang junior di mana dan bagaimana mereka seharusnya belajar? Anda pada dasarnya berharap bahwa salah satu dari mereka akan mempelajari praktik-praktik yang baik dengan sendirinya terlepas dari lingkungan kerja mereka, dan pada akhirnya membimbing orang lain (sebagai lawan pergi ke padang rumput yang lebih hijau). Akan lebih masuk akal untuk "mengunggulkan pompa" dengan beberapa pengembang yang baik. Kemungkinan besar Anda akan mengembangkan budaya Pakar Pemula . Hasilnya adalah Anda akan membayar tingkat pengembang senior kepada orang-orang yang hanya sedikit lebih baik daripada pengembang junior dan beracun secara budaya.

Satu manfaat, khususnya, pengembang yang sangat baik, yang saya kaget tidak ada orang lain sebutkan adalah mereka dapat dengan mudah menjadi faktor multiplikasi . Ini mungkin terjadi bahwa pengembang junior dan pengembang senior mengambil jumlah waktu yang sama untuk membuat tabel. Namun, pengembang yang baik tidak akan melakukan itu. Mereka akan membuat generator tabel yang mengurangi waktu bagi semua orang untuk membuat tabel. Sebagai alternatif / tambahan, mereka akan menaikkan plafon apa yang mungkin bagi semua orang . Misalnya, pengembang yang menerapkan kerangka kerja Google MapReduce kemungkinan sangat berkualitas, tetapi bahkan jika penggunaMapReduce benar-benar tidak dapat membuat versi terdistribusi secara besar-besaran dari algoritma mereka sendiri, mereka sekarang dapat dengan mudah dengan MapReduce. Seringkali dinamika ini tidak terlalu mencolok. Misalnya, kontrol sumber, pengujian, dan praktik penyebaran yang lebih baik membuat semua orang lebih baik, tetapi bisa lebih sulit untuk dilacak ke orang tertentu.

Untuk berdebat dengan pihak lain sebentar, mungkin atasannya benar. Mungkin pengembang yang lebih berpengalaman tidak diperlukan. Namun, jika itu masalahnya, tampaknya pengembangan bukanlah bagian penting dari perusahaan. Dalam hal ini, saya hanya akan menghilangkan pengembang sepenuhnya dan menggunakan perangkat lunak di luar rak atau menyewa kontraktor sesuai permintaan. Mungkin perlu ditelusuri mengapa mereka tidak hanya menggunakan kontraktor daripada tim internal. Jika Anda akan memiliki banyak churn karyawan, maka kontraktor peningkatan seharusnya tidak menjadi masalah.

Derek Elkins
sumber
Kontraktor mungkin merupakan jawaban yang sangat layak untuk OP ini jika mereka membutuhkan tingkat keterampilan senior tetapi tidak mampu membayar satu tahun penuh, gaji penuh waktu satu. Temukan perusahaan kontraktor lokal yang dapat dipercaya. Saya akan mengatakan ide kontraktor harus diperluas menjadi jawabannya sendiri.
rwong
6

Ini bukan situasi ini atau itu.

Terutama pada proyek yang lebih besar, Anda cukup rutin memiliki beberapa orang yang relatif berpengalaman dalam peran senior, dan sejumlah orang yang kurang berpengalaman dalam peran junior. Dengan cara ini, orang-orang senior tidak hanya dapat membantu secara langsung pada proyek dengan menulis kode dan membantu membuat keputusan yang lebih sulit, tetapi mereka juga dapat membantu secara tidak langsung dengan membimbing para junior.

Dengan hati-hati, ini juga dapat membantu mencegah insinyur senior tidak cepat terbakar dengan diminta untuk terus melakukan pekerjaan yang tidak memiliki tantangan atau minat bagi mereka. Setidaknya dalam pengalaman saya, bahkan sedikit waktu membimbing orang-orang tingkat junior (atau bahkan magang) yang sangat bersemangat dapat membuat lari jauh lebih menarik.

Dalam keadilan, saya harus menambahkan bahwa posisi semacam ini mungkin tidak cocok untuk semua insinyur senior. Dibutuhkan penekanan yang sangat meningkat pada arsitektur dan desain, komunikasi, dokumentasi, dan sebagainya. Terutama sejak awal, itu juga sering membutuhkan banyak disiplin - bagi seseorang yang berkarier menulis kode, tergoda untuk hanya melompat dalam menulis kode, daripada mengajar insinyur junior bagaimana melakukannya. Ini juga sering tergoda untuk melakukan penulisan ulang lengkap dari bawah ketika kode tidak seperti yang Anda inginkan secara pribadi - bahkan jika itu cukup memadai untuk pekerjaan itu.

Namun, jika Anda benar-benar tidak dapat meyakinkan manajemen untuk pergi dengan campuran tingkat pengalaman, pada dasarnya tidak ada pertanyaan sama sekali bahwa Anda harus mencari lebih banyak pengalaman. Jika Anda menyerahkan proyek sepenuhnya kepada personel junior, kemungkinan cukup bagus bahwa Anda tidak akan pernah mendapatkan produk yang dapat digunakan sama sekali. Lebih buruk lagi, mereka tidak akan menyadari bahwa apa yang mereka lakukan tidak memberikan kemajuan nyata menuju produk yang dapat digunakan, sehingga mereka akan terus bekerja ke arah yang dipilih lama setelah orang yang lebih berpengalaman akan menyadari bahwa mereka telah membuat kesalahan mendasar sejak awal, dan perlu untuk mendukung, berkumpul kembali, mengambil sikap mereka, dan memulai dalam arah baru untuk memiliki harapan untuk tiba di tujuan yang bermakna.

Jerry Coffin
sumber
5

Setiap proyek dunia nyata didorong oleh permintaan pelanggan, dan oleh karena itu melibatkan tugas-tugas yang kompleksitasnya rendah (mis. Membangun formulir CRUD), dan kompleksitas yang tinggi (mis. Membangun sistem notifikasi yang digerakkan oleh peristiwa). Satu-satunya cara untuk hanya memiliki tugas dengan kompleksitas rendah adalah berulang kali memberi tahu pelanggan kata "tidak", yang tidak bersedia dilakukan departemen penjualan mana pun.

Jika Anda hanya memiliki pengembang tingkat junior, artinya Anda hanya akan dapat melakukan tugas dengan kompleksitas rendah, dan karenanya hanya dapat membangun produk bernilai rendah dan berjuang lebih keras di pasar untuk membedakan produk Anda. Jika Anda ingin berdiferensiasi, Anda perlu membangun fungsionalitas bernilai tinggi, yang pasti diterjemahkan menjadi tugas dengan kompleksitas tinggi. Lagi pula, jika mudah, itu tidak akan berharga. Itu berarti Anda membutuhkan orang untuk melakukan tugas-tugas kompleksitas tinggi dan Anda perlu pengembang tingkat senior.

Jika Anda hanya memiliki pengembang tingkat senior, Anda akan menyia-nyiakan keterampilan mereka pada pekerjaan bernilai rendah, mengalami kesulitan mempertahankan mereka ketika memaksa mereka untuk melakukan pekerjaan tersebut, serta mempertaruhkan mereka pergi ke tanah arsitektur astronomi dalam mencoba membuat tugas-tugas sederhana lebih banyak menarik untuk dikerjakan. Ini berarti Anda juga perlu memiliki beberapa pengembang yang tidak berpengalaman untuk mengambil tugas-tugas itu.

Tim yang sehat bekerja pada produk yang digerakkan oleh pelanggan biasanya merupakan campuran. Rasio antara pengembang junior dan senior tergantung pada rasio antara tugas dengan kompleksitas rendah dan kompleksitas tinggi, dan itu tergantung pada strategi bisnis Anda. Jika Anda secara aktif mencari volume besar pekerjaan cookie cutter dengan margin rendah yang mudah dipahami, Anda tidak akan memiliki banyak tugas dengan kompleksitas tinggi dan mungkin akan mempekerjakan sebagian besar pengembang tingkat junior. Jika Anda secara aktif berusaha untuk membedakan dan menargetkan ceruk yang kurang terlayani dengan margin laba yang lebih tinggi, Anda akan memiliki banyak tugas dengan kompleksitas tinggi dan mencari sebagian besar pengembang tingkat senior.

Joeri Sebrechts
sumber
3

Dalam jawaban saya, saya akan berdebat programmer senior tidak harus kode lebih cepat dari pengembang junior. Faktanya, programer tercepat adalah rata-rata orang yang baru saja meninggalkan universitas.

Pengetahuan domain adalah kunci bagi pengembang senior. Pengembang senior yang baik harus memiliki pengetahuan yang kuat di bidangnya, sesuatu yang mungkin tidak dimiliki pengembang junior. Pengembang yang berpengalaman memahami masalah, apa yang harus dipecahkan dan bagaimana menyelesaikannya. Mereka dapat memecahkan masalah yang lebih rumit untuk bisnis daripada kebanyakan pengembang junior.

Pemrograman adalah keterampilan yang relatif murah, itu pengetahuan ahli yang diperhitungkan.

Catur kecil
sumber
2

Jangan mencoba untuk 'membuat kasing' Pasar menetapkan harga untuk karyawan. Jika pasar bersedia membayar 4x lebih untuk pengalaman maka itu karena perusahaan secara keseluruhan telah bekerja bahwa ada peningkatan produktivitas 4x.

Sekarang jelas pasar bisa salah, mungkin 3,5 atau 5x tetapi kecuali Anda adalah agen digital, bersaing dengan pasar atau sesuatu yang bernuansa seperti itu tidak penting.

Masalah Anda yang sebenarnya adalah Apakah Anda cukup cakap dalam mewawancarai untuk dapat membedakan antara seorang dev berpengalaman yang baik dan hanya seorang dev tua yang menghalanginya.

Pertanyaan kedua Anda tentang anggaran PM vs Pengembang. Saya akan mengatakan bahwa pengembang dapat melakukannya tanpa PM tetapi PM tidak dapat melakukannya tanpa pengembang. Dapatkan mesin pengembangan Anda diurutkan terlebih dahulu, lalu dapatkan PM untuk mengambil admin dari tangan mereka.

Ewan
sumber
Meskipun ini bisa benar dalam arti ekonomi, pasar di daerah terpencil misalnya kota kecil, daerah pedesaan, bisa sangat miring. Kota universitas mungkin lebih baik.
rwong
benar, tetapi bisnis Anda ada di suatu tempat.
Ewan
2

Anda tidak akan menemukan siapa pun di negara Anda sendiri untuk seperempat biaya pengembang yang sangat baik. Anda mungkin menemukan seseorang dengan setengah gaji, dan itu akan menjadi pemula mutlak. Untuk seseorang dengan seperempat gaji, Anda harus pergi ke luar negeri, dan kemudian Anda akan memiliki masalah dengan komunikasi, orang-orang yang secara membabi buta mengikuti spesifikasi, dan semua jenis masalah.

Anda membutuhkan satu pengembang yang baik. Jika Anda menambahkan lebih banyak programmer junior, Anda memerlukan satu pengembang yang baik dengan keterampilan komunikasi yang kuat, yang bersedia dan mampu mengawasi para junior. Tanpa satu pengembang yang baik, Anda tersesat. Anda mungkin beruntung menemukan pemula yang luar biasa berbakat, tetapi begitu dia tahu mereka bagus, mereka akan menginginkan gaji yang lebih besar.

Jika Anda tidak memiliki satu pengembang yang baik, Anda tidak memiliki siapa pun yang melihat gambar yang lebih besar, dan tidak ada yang dapat memecahkan masalah yang tidak dapat diselesaikan menggunakan stackoverflow. Dan Anda akan memiliki kode yang berbau dan tidak dapat dipelihara, karena pengembang junior tidak tahu cara membuat kode yang bisa dipelihara. Mereka dapat mempelajarinya, tetapi mereka tidak akan tanpa pengembang yang baik dalam tim.

gnasher729
sumber
1

Ada beberapa rintangan yang harus dilewati perusahaan Anda sebelum Anda dapat memutuskan apakah merekrut programmer yang lebih baik akan hemat biaya. Maaf jika saya membuat beberapa asumsi negatif tentang tempat Anda bekerja, tetapi saya tidak yakin mereka tahu apa yang mereka lakukan.

  1. Sudahkah mereka menilai seberapa kompleks perangkat lunak yang Anda buat? Sepertinya mereka tidak berpikir apa yang Anda lakukan sangat sulit, jadi mengapa mempekerjakan orang yang lebih baik? Sudahkah Anda membuat kasus di mana kesalahan dibuat dan bagaimana solusi dan produktivitas yang lebih baik akan menghasilkan uang? Menghemat waktu itu bagus, tetapi banyak perusahaan lebih suka menghabiskan waktu satu minggu penuh dari seorang programmer daripada memberi mereka uang untuk membeli mouse pad.
  2. Apakah perusahaan Anda menarik bagi programmer yang baik? Apakah mereka mampu mengidentifikasi mereka? Tidak ada yang lebih buruk daripada mempekerjakan Dev Senior, membayar mereka lebih banyak dan mereka menyeret seluruh tim karena kurangnya keterampilan dan / atau kepemimpinan.
  3. Bisakah perusahaan Anda memanfaatkan programmer yang baik? Jika semua yang akan mereka lakukan adalah melemparkan spesifikasi buruk pada mereka dan hanya memberitahu mereka untuk hanya membangunnya, apa gunanya? Apakah mereka akan memberi mereka kebebasan untuk melakukan sesuatu dengan cara mereka? Lagi pula, seorang programmer yang baik secara definisi tahu bagaimana memanfaatkan waktunya dengan lebih baik. Mereka berdampak pada orang-orang di sekitar mereka dan menyebabkan programmer lain meningkat Mereka memperkenalkan desain dan arsitektur yang lebih baik yang sisanya dibuat untuk membuat produk yang jauh lebih baik.

Maaf, tetapi saya merasa perusahaan Anda tidak akan tahu apa yang harus dilakukan dengan programmer yang baik, jadi Anda mungkin ingin meyakinkan mereka untuk mempekerjakan manajer yang lebih baik terlebih dahulu dan menyelesaikan masalah internal ini.

JeffO
sumber