Saya telah membaca sebuah wawancara dengan seorang programmer yang hebat (bukan dalam bahasa Inggris) dan di dalamnya ia berkata bahwa "seorang programmer yang hebat bisa 10 kali lebih baik daripada yang biasa-biasa saja" memberikan alasan mengapa programmer yang baik dibayar dengan sangat baik dan mengapa perusahaan pemrograman memberikan banyak fasilitas untuk karyawan mereka. Idenya adalah bahwa ada permintaan yang sangat besar untuk programmer yang baik, karena alasan di atas dan itulah sebabnya perusahaan membayar sangat banyak untuk mendapatkannya.
Apakah Anda setuju dengan pernyataan ini? Apakah Anda tahu fakta objektif yang dapat mendukungnya?
Sunting: Pertanyaannya tidak ada hubungannya dengan pengalaman; jika Anda berbicara tentang seorang programmer hebat dengan pengalaman 1 tahun maka ia harus 10 kali lebih produktif daripada programmer biasa-biasa saja dengan pengalaman 1 tahun. Saya setuju bahwa dari pengalaman tertentu bertahun-tahun dan seterusnya, hal-hal mulai menghilang tetapi itu bukan tujuan dari pertanyaan.
sumber
Jawaban:
Tinjauan dan analisis penelitian yang cukup menyeluruh tentang perbedaan produktivitas disediakan dalam dua artikel yang ditulis oleh Steve McConnell :
Variasi Produktivitas Diantara Pengembang dan Tim Perangkat Lunak: Asal Usul "10x"
Asal-usul 10X - Bagaimana Valid adalah Penelitian yang Mendasari?
Artikel pertama ( Variasi produktivitas ... ) menyatakan:
Artikel ini juga memiliki catatan menarik:
Artikel kedua ( ... Bagaimana Valid adalah Penelitian yang Mendasari? ) Telah ditulis terutama untuk membahas tinjauan kritis yang pertama oleh Laurent Bossavit :
Dalam artikel kedua, di bagian A Deeper Dive Ke dalam Penelitian yang Mendukung "10x" McConnell memeriksa kembali secara lebih rinci referensi yang digunakan dalam artikel pertama dan menyimpulkan:
Demi kelengkapan, daftar referensi yang digunakan dalam variasi Produktivitas ... juga dikutip di bawah ini:
sumber
Seorang programmer yang benar-benar mengerikan dapat memiliki produktivitas di bawah nol (bug yang mereka perkenalkan membutuhkan waktu lebih lama untuk diperbaiki daripada yang diperlukan untuk melakukan semua pekerjaan mereka untuk mereka).
Dan seorang programmer yang benar-benar hebat dapat melakukan hal-hal yang tidak akan pernah dapat dicapai oleh programmer miskin dan rata-rata , terlepas dari berapa banyak waktu yang Anda berikan kepada mereka.
Jadi untuk alasan ini, sulit untuk berbicara tentang "10x sebagai produktif" atau "100x sebagai produktif".
Yang perlu diingat, bahwa sebagian besar pengusaha pemrogram tidak membutuhkan mereka untuk melakukan tugas-tugas sulit yang tidak bisa dikelola oleh pemrogram rata-rata. Sebagian besar kode yang ditulis adalah situs web, lini aplikasi bisnis, aplikasi intranet, dll. Sebagian besar tidak terlalu sulit. Programmer yang produktif di lingkungan itu adalah orang yang paling baik dalam memahami dan mengimplementasikan kebutuhan pengguna, bukan orang yang dapat menulis kode paling pintar.
Memang, sebagian besar pengusaha pemrogram akan lebih baik dengan programmer yang baik daripada yang hebat, karena yang hebat hanya akan bosan dan pergi. Harus menemukan kecocokan yang baik antara programmer dan pekerjaan.
sumber
Fakta dan Kekeliruan status Rekayasa Perangkat Lunak (Fakta 2, tersedia dalam pratinjau amazon):
(lihat daftar sumber di sana untuk penelitian)
Tentu saja, jika Anda membandingkan produktivitas non-programmer (atau programmer yang sangat buruk) dengan yang baik (dalam hal pengalaman dan pengetahuan), perbedaannya bisa sangat besar (
n/0 == infinity
untuk setiap positifn
), tetapi tidak adil atau perbandingan yang masuk akal.Gaji Anda mungkin tergantung pada beberapa faktor (dalam urutan acak):
bersama dengan pribadi Anda ...
sumber
Jawaban saya adalah "ya, tapi hati-hati bagaimana Anda menggunakan metrik itu".
Seorang programmer yang, harus kita katakan, berfungsi secara optimal, adalah orang yang menciptakan fungsionalitas dan menyebabkan lebih sedikit kesalahan yang perlu diperbaiki daripada yang kinerjanya lebih rendah. Saya tidak akan merasa sulit untuk percaya bahwa orang-orang ini dapat tampil di 10X produktifitas orang lain, terutama ketika Anda mempertimbangkan bahwa satu pilihan baik atau buruk yang dibuat dalam satu jam dapat dengan mudah memiliki 10 jam dampak, dan programmer membuat banyak pilihan seperti itu kebanyakan hari.
Tapi...
Anda harus berhati-hati dalam mengukur hal ini. Saya benar-benar tidak percaya sebagian besar pengukuran pada produktivitas karena saya telah melihat kasus tanpa akhir di mana hampir setiap metrik yang dikenal gagal untuk mempertimbangkan sesuatu yang saya anggap penting untuk produktivitas tim. Jadi saya umumnya membenci angka sulit seperti itu untuk "produktivitas". Inilah beberapa contoh:
Banyak sistem pengukuran telah mencoba untuk memperhitungkan faktor-faktor ini, tetapi saya belum melihat bahwa ada satu yang memperhitungkan semua masalah ini, jadi saya tidak pernah terlalu terkesan dengan faktor-faktor seperti "pengembang yang baik 10x lebih produktif daripada yang biasa-biasa saja "karena saya harus bertanya-tanya apakah metrik benar-benar menjelaskan semua pekerjaan yang perlu masuk ke produk berkelanjutan yang sukses atau tim sukses yang berkembang.
Jadi peringatan besar saya adalah - apa yang akan Anda lakukan dengan metrik ini? Saya akan menggunakan sesuatu seperti ini untuk menyadari bahwa alat dan bakat yang tepat dapat menyebabkan perbedaan besar dalam bagaimana pekerjaan dilakukan tetapi jika Anda mencoba untuk mengoptimalkan ke tim di mana setiap individu menghasilkan 10X output "khas", Anda pasti akan kasus frustrasi. Lebih baik adalah menemukan cara untuk membuat tim Anda melakukan 2-3X apa yang mereka lakukan sebelumnya dengan bekerja bersama dengan lebih baik.
sumber
Dalam bukunya The Leprechauns of Software Engineering , Laurent Bossavit menjelaskan meneliti 10x klaim produktivitas. Dia menemukan bahwa tidak ada nomor suara di belakangnya - klaim telah berubah dari spekulasi menjadi "fakta yang mapan" oleh permainan telepon yang berturut-turut lebih konkret dalam kutipan. Posting blog yang terdiri dari bab tentang klaim 10x, dan termasuk kutipan dan misquotes yang relevan, adalah fakta dan cerita rakyat dalam rekayasa perangkat lunak .
Apa yang dia temukan adalah sesuatu seperti ini: seseorang pada tahun 1968 melakukan penelitian yang membandingkan orang-orang yang memecahkan masalah debugging tertentu, dan menemukan bahwa beberapa dari mereka melakukannya 10x lebih cepat daripada yang lain. Dari sini kita dapat menyimpulkan bahwa beberapa orang 10x lebih baik dalam memecahkan masalah itu , atau kita dapat menyimpulkan bahwa beberapa orang beruntung , atau berbagai hal yang berbeda. Beberapa orang memilih untuk mengutip ini karena (ini semua parafrase) "sebuah penelitian (Sackman et al, 1968) menemukan beberapa programmer bekerja 10x lebih cepat daripada yang lain". Kemudian menjadi "penelitian telah menunjukkan bahwa programmer yang baik 10x lebih baik daripada rata-rata" maka akhirnya "sudah menjadi rahasia umum bahwa produktivitas programmer bervariasi 10x antara individu". Lalu seseorang mengumpulkan semua kutipan ini, salah mengutip satu sumber asli untuk mengatakan "banyak peneliti percaya ...".
Tentu saja, itu tidak akan menjadi permainan telepon jika hanya kebenaran pernyataan yang berubah: pengali menjadi 11 dan lebih juga.
sumber
" Pemrogram yang produktif di lingkungan itu adalah orang yang paling baik dalam memahami dan mengimplementasikan kebutuhan pengguna, bukan orang yang dapat menulis kode paling pintar. " (Dari Carson63000 jawaban)
Poin kunci itu ditambah dengan bethlakshmiPoin membuat poin besar. Seorang pengembang hebat bisa menjadi hebat dalam satu irisan realitasnya, tetapi segera hancur begitu dunia berubah. Mampu mengikuti kebutuhan bisnis jauh lebih penting daripada yang lain. Pada akhirnya, kecuali bisnis Anda adalah teknologi, bisnis itu tidak peduli dengan teknologi; mereka butuh solusi. Jadi menjadi hebat dengan pola desain tidak berarti jongkok untuk pengguna akhir yang hanya membutuhkan data dump untuk ditampilkan di halaman web. Saya telah melihat pengembang yang biasa-biasa saja mendapatkan pekerjaan dengan melayani bisnis yang mendukung mereka sementara pengembang yang hebat bosan dan berjalan pergi mencari tantangan yang tidak pernah berakhir. Bergantung pada organisasi dan proyek Anda, mungkin untuk memberi makan pengembang-pengembang yang kelaparan ini tetapi kemungkinan, akan ada titik waktu ketika Anda tidak t membutuhkan kekuatan pemrosesan sebesar itu. Pengembang ini tidak suka hanya duduk diam seperti prosesor. Mereka akan mati dan reboot di tempat lain.
Terakhir, saya akan mengatakan tidak apa-apa untuk mengetahui siapa pemain "kunci" Anda, tetapi "tim" pengembangan masih merupakan tim. Untuk mengulangi bethlakshmi, " apa yang akan Anda lakukan dengan metrik ini?"Jika Anda membutuhkan tim yang berperilaku seperti tim, saya tidak akan fokus pada metrik seperti ini. Saya akan menyadari bahwa bahkan pemain terkecil pun masih merupakan bagian penting dari tim. Bahkan pada 60% lebih sedikit dari produktivitas kunci Anda pemain, bahwa satu pemain mungkin memberi tim Anda sesuatu yang dibutuhkan. Cari tahu apa itu dan cobalah untuk melipatgandakannya. Jangan membakar pemain kunci Anda dengan menganggap ia harus memimpin tim, menemukan cara untuk melipatgandakan outputnya juga, dengan mencemari pemain lain dengan kehebatan itu. Ini membutuhkan sedikit kreativitas, bukan hanya angka. Pada akhirnya, Anda mungkin belajar bahwa apa yang membuat seorang programmer yang baik adalah bahkan bukan programmer itu, bisa juga rekan-rekannya, peluangnya di tempat kerja atau bahkan bisa jadi kamu.
sumber