Saya mencari pekerjaan dan telah melamar ke sejumlah posisi. Satu majikan merespons. Saya memiliki wawancara telepon yang cukup panjang (mungkin + +) dan mereka kemudian mengatur saya dengan tes pengembang. Saya diberi tahu bahwa tes itu diperkirakan akan memakan waktu antara 6 dan 8 jam dan, asalkan hasilnya sesuai dengan persetujuan mereka, saya akan dibayar untuk pekerjaan saya.
Itu memberi saya beberapa jeda, tetapi saya berusaha. Tes pengembang dilakukan pada VM yang diakses melalui RDP . Tugasnya adalah untuk mengimplementasikan halaman pencarian dalam proyek web yang meminta data dari server, menampilkannya di layar dalam sebuah tabel, memiliki skema penyaringan pencarian yang cukup rumit (ada sekitar 15 status dan ketika mengirim pencarian ke server Anda dapat mencari berdasarkan status ini) selain pencarian string / bidang. Selain itu, mereka ingin ikon SVG berubah warna pada nilai data tertentu, dan beberapa data mewakili berbeda dari bagaimana itu terstruktur dalam database.
Singkat cerita, ini memakan waktu lebih lama dari 6-8 jam. Sebagian besar disebabkan oleh VM yang sangat buruk yang saya jalankan (Visual Studio 2013 mengambil 10 menit untuk memuat, dan 15 menit untuk membuka solusi 3 GB ginormous).
Saya diberitahu bahwa setelah menyelesaikan tes saya harus melakukan perubahan pada kontrol sumber ... Hmm, oke. Saya mengikuti arahan. Dan setelah melakukan perubahan, saya diemail tanggapan. SVG tidak diwarnai dengan benar, ada bug dalam kasus tepi ini, ada masalah sesekali dengan hal lain yang tidak pernah saya alami, dll. Jadi saya 13-14 jam dalam hal ini sekarang, dan saya harus lakukan perbaikan bug. Saya melakukannya, dan majikan kembali dengan lebih banyak permintaan perbaikan bug.
Semua pekerjaan saya tampaknya masuk ke aplikasi produksi. Saya perhatikan beberapa anomali dalam kode di mana kode itu tampak seperti yang lain telah mengode semua fungsi tetapi tidak menyentuh yang lain.
Apakah saya hanya digunakan untuk buruh murah? Bahkan jika mereka membayar saya yang dijanjikan 50 dolar per jam selama 6 jam, saya sudah berkomitmen sekitar 18 jam untuk hal ini sekarang. Jika saya memperbaiki semua hal yang mereka bug, saya akan bekerja setidaknya 16 jam secara gratis.
Saya telah mengambil sejumlah tes pengembang, tetapi saya tidak pernah mengambil satu di mana saya bekerja pada kode yang ditujukan untuk produksi. Saya tidak pernah mengikuti tes di mana saya mengimplementasikan fitur yang ada dalam jalur pengembangan, dan saya tidak pernah mengambil satu yang membutuhkan 4 putaran dan total 20+ jam. Saya mendapat kesan mereka menggunakan uji pengembang mereka untuk menurunkan beberapa fungsi dengan harga murah.
Apakah saya memiliki kesan yang salah? Dan apakah protokol pengujian ini sesuai?
Jawaban:
Saya tidak akan pernah berpartisipasi dalam tes kode semacam ini. Saya telah mengambil banyak tes kode dan melakukan banyak proyek kode. Saya tentu tidak akan memeriksa kode ke dalam repositori orang lain dalam keadaan apa pun. Jika mereka tidak tahu apa yang perlu mereka ketahui setelah sampel 4 jam dengan beberapa perbaikan bug kecil dalam sesi pemrograman pasangan, maka mereka tidak akan pernah tahu.
Menjalani ujian, Anda harus tahu dan menjelaskan beberapa hal di depan:
Perusahaan yang Anda wawancarai juga sedang diwawancarai oleh Anda. Jika ini cara mereka memperlakukan seseorang yang mereka wawancarai, apakah ini perusahaan tempat Anda ingin bekerja? Saya mengerti bahwa sering orang membutuhkan pekerjaan dan seringkali kebutuhan ini akan mengesampingkan beberapa konsep akal sehat, tetapi ini harus selalu di garis depan pikiran Anda. Jangan takut untuk keluar. Jika terasa tidak benar, ikuti insting Anda dan pilih dengan kaki Anda.
sumber
Banyak wawancara diikuti oleh tes. Tes-tes tersebut diperlukan untuk memastikan bahwa Anda benar-benar memiliki keterampilan yang diperlukan dan untuk memberikan pandangan yang lebih baik dari beberapa hal yang sulit untuk diuji selama wawancara itu sendiri (seperti apakah Anda menerapkan aturan gaya pada kode Anda).
Ini dikatakan, ujian adalah ujian.
Tidak perlu lama. Tidak banyak yang dapat Anda lihat setelah delapan jam pengkodean yang tidak dapat Anda lihat setelah tiga puluh menit. Lebih penting lagi, kode yang ditulis selama tes kemudian harus ditinjau, baris per baris, yang membutuhkan waktu yang cukup lama . Sudah biasa menghabiskan lebih dari dua jam untuk meninjau kode tes yang ditulis selama setengah jam.
Seharusnya tidak berurusan dengan basis kode yang ada. Memahami basis kode dari produk skala menengah dapat memakan waktu berhari-hari atau berminggu-minggu (atau berbulan-bulan atau bertahun-tahun tergantung pada kualitas kode dan hutang teknis). Kekayaan intelektual juga dapat menjadi masalah (kecuali jika kode tersebut bersumber terbuka).
Ketika tujuannya adalah untuk menguji bagaimana kandidat dapat mempertahankan basis kode yang ada, pengujian dapat dilakukan pada basis kode fiksi kecil (500-600 LOC) yang ditulis khusus untuk pengujian.
Itu tidak harus menjadi permintaan untuk mengembangkan aplikasi atau fitur kehidupan nyata. Ini bisa menjadi bagian kode yang sama sekali tidak berguna, ditulis dengan tujuan tunggal untuk menunjukkan bahwa Anda telah memahami masalahnya dan menemukan cara yang elegan untuk menyelesaikannya.
Itu tidak harus sempurna. Ada bug? Tidak apa-apa. Catat mereka untuk wawancara lebih lanjut dengan kandidat; ini bisa menjadi peluang bagus untuk melihat bagaimana kandidat bereaksi dalam situasi ini.
Itu tidak harus dilakukan melalui RDC pada VM, kecuali jika Anda tidak memiliki Visual Studio sendiri. Jika tujuannya adalah untuk melihat kemampuan coding dan pemecahan masalah Anda, tidak masalah di mana Anda melakukan latihan.
Tidak ada pertanyaan untuk kode yang ditulis selama tes ini untuk berakhir di kontrol versi perusahaan. Mengapa mereka mencemari kontrol versi mereka dengan sesuatu yang ditulis oleh seorang kandidat?
Sebagai penutup, ketika Anda diminta untuk menghabiskan puluhan jam menulis kode produksi, menyelesaikan bug, dan melakukan pekerjaan Anda pada kontrol versi perusahaan:
Entah mereka hanya menggunakan Anda untuk mengimplementasikan fitur secara gratis,
Atau mereka benar-benar tidak mengerti bagaimana melakukan wawancara.
Dalam kedua kasus tersebut, cari tempat yang lebih baik untuk bekerja.
sumber
Tidak akan menulis jawaban yang panjang, tetapi saya benar-benar bingung, mengapa tidak ada yang mengemukakan masalah hak cipta?
Sejauh pengalaman saya, saya belum pernah mendengar tentang perjanjian yang dibuat untuk mentransfer kepemilikan hak cipta dari kode yang ditulis selama tes pengembang ke pihak lain. Jika demikian, Anda dapat menuntut mereka atas pelanggaran hak cipta dan ganti rugi yang diberikan untuk ini bisa sangat baik, terutama di AS dari kisah yang saya dengar. Dan jika mereka ingin menyelesaikan (mengajukan ini), Anda dapat meminta biaya selangit untuk pelanggaran (setelah itu mereka pada prinsipnya masih tidak diizinkan untuk menggunakan karya Anda dan Anda masih bisa menjual karya Anda kepada mereka jika mereka masih tertarik ).
sumber
Orang-orang dengan lebih banyak pengalaman karir mungkin lebih mampu menjawab pertanyaan ini, tetapi saya pribadi tidak akan merasa nyaman dengan tes dev 20+ jam. Sepertinya mereka menggunakan wawancara untuk menyelesaikan pekerjaan.
Saya berasumsi bahwa Anda belum menandatangani dokumen hukum apa pun terkait kepemilikan kode. Jadi saya akan menunggu sampai mereka meninjau kode dan menerima atau menolaknya. Kemudian jika mereka menerimanya saya akan meminta bayaran penuh, 20+ jam. Saya tidak yakin bahwa saya akan menerima pembayaran hanya untuk enam jam yang awalnya disarankan. Jika ini akan mulai diproduksi, maka mereka perlu meluruskan kepemilikan kode.
Paling tidak, membahas pembayaran untuk kode harus membantu Anda memutuskan apakah Anda ingin menerima tawaran. Saya tidak ingin menerima tawaran jika mereka pikir hanya membayar Anda selama enam jam adalah adil.
sumber
Ketika saya berada dalam posisi untuk mewawancarai pengembang, tes-tes itu singkat dan hanya "lulus atau gagal", tidak termasuk perbaikan bug, bahkan ketika ada beberapa bug kecil dalam kode. Itu karena saya ingin menilai keterampilan kandidat, bukan untuk mendapatkan perangkat lunak siap produksi.
Situasi yang dijelaskan dalam pertanyaan sangat mirip dengan seseorang yang mencoba mendapatkan sesuatu yang bermanfaat secara gratis (atau murah).
sumber
Saya belum pernah melakukan tes dev selama lebih dari satu jam, dan ini semua adalah 'teka-teki', sebuah karya untuk melihat apakah saya dapat menyelesaikan masalah dan memenuhi tujuan yang dinyatakan dalam batas waktu tertentu.
$ 50 (atau bagi saya, £ 25-30) adalah tarif hari yang cukup buruk, seperti meminta tukang ledeng untuk memperbaiki toilet Anda dengan imbalan minuman.
Saran saya, tanpa syarat yang pasti, adalah untuk blog tentang pengalaman Anda, merujuk pada perusahaan dengan nama jika mereka mencoba untuk membuat seluruh aplikasi dengan teknik ini (orang sering perusahaan google sebelum menuju wawancara) dan jangan biarkan itu terjadi lagi. Lain kali mereka meminta perbaikan bug, Anda menyebutkan harga hari konsultasi (setidaknya 5 kali dari apa yang mereka tawarkan) dan memberitahukan bahwa pengembang tidak akan bekerja secara gratis.
Sayangnya, dibodohi adalah bagian dari kehidupan, tetapi Anda tidak harus duduk dan menerimanya.
sumber
Sebagai perbandingan: Wawancara untuk pekerjaan saya saat ini adalah sekitar 1 jam berbicara tentang apa yang saya lakukan sejauh ini dan apa yang direncanakan perusahaan untuk dilakukan dan bagaimana saya akan cocok. Setelah itu kami bekerja bersama seminggu di sebuah proyek kecil yang mereka bohongi sekitar, saya kira hanya untuk melihat bagaimana kita bergaul satu sama lain. Mereka membayar saya untuk ini sebagai freelancer dengan jumlah yang sama dengan yang saya dapatkan sekarang sebagai karyawan mereka, sehingga tidak pernah ada satu hari penuh pekerjaan tanpa bayaran, apalagi 3 hari.
Jika kode tersebut benar-benar digunakan dalam produksi, saya akan mengirim mereka tagihan selama 24 jam yang Anda habiskan, bukan kesalahan Anda jika perkiraan mereka salah. Dengan asumsi mereka tidak membiarkan Anda memperkirakan berapa lama.
sumber
Meskipun Anda seharusnya dibayar untuk (sebagian) pekerjaan Anda, ini tidak terdengar seperti proyek percobaan , itu terdengar seperti penipuan untuk mendapatkan pekerjaan murah / gratis dari Anda. Mungkin itu dimaksudkan untuk menjadi proyek percobaan, hanya saja tidak terstruktur atau dikelola dengan baik.
Tetapi manajemen yang sangat buruk sehingga kedengarannya seperti penipuan, jelas merupakan sesuatu yang harus Anda pertimbangkan ketika memutuskan apakah akan menerima pekerjaan atau tidak.
Proyek percobaan yang tepat harus memperjelas hal itu
Ketentuan tersebut harus dapat Anda terima terlepas dari apakah Anda diterima atau tidak - jika persyaratan tersebut hanya dapat diterima jika mereka datang dengan pekerjaan penuh waktu, mereka tidak benar-benar dapat diterima.
sumber
Saya tidak berpikir mereka benar-benar akan menggunakan ini untuk mendapatkan tenaga kerja murah.
Alasannya sederhana. Setelah Anda menulis tes itu, mereka membutuhkan orang untuk meninjau apa yang Anda tulis, ya meninjau kode jauh lebih mudah daripada menulis kode itu sendiri, tetapi masih membutuhkan banyak waktu.
Dan kemudian setelah itu mereka mungkin membutuhkan orang untuk mempertahankan tes itu, menjelaskannya, dll.
Dan saya tidak bisa membayangkan perusahaan IT mana pun yang peduli tentang penghematan kurang dari $ 100 terutama perusahaan di AS. Tidak pernah bagaimana bisnis berjalan.
sumber
Saya sangat percaya pada tes kode untuk pengembang yang mewawancarai suatu pekerjaan. Namun, ini terdengar seperti tes kode dari neraka ... Tes kode tidak boleh melibatkan kode produksi. Mereka harus sederhana dan harus menyatakan bahwa tidak ada pekerjaan yang dilakukan akan digunakan oleh perusahaan.
Jelas, pekerjaan yang Anda lakukan adalah pada kode produksi. Anda harus dibayar untuk semua waktu Anda - minimal. Cobalah berbicara dengan seorang pengacara dan lihat apakah menurutnya akan bermanfaat untuk menuntut mereka. Banyak pengacara menawarkan konsultasi awal gratis. Jika penipuan terlibat, dan dalam kasus ini terlihat seperti itu, Anda akan berhak atas ganti rugi empat kali lipat, dan Anda mungkin juga bisa mendapatkan beberapa ganti rugi hukuman yang bagus di atas itu.
Dengan menggugat mereka dan menang, Anda akan membuat berita utama dan mencegah praktik ini oleh orang lain di masa depan - yang akan bermanfaat bagi semua pengembang perangkat lunak yang mencari posisi baru.
sumber
Sayangnya, tes kode merupakan fakta kehidupan. Yang mengatakan, itu mengganggu saya untuk diminta meniup empat jam pada tes pengkodean sebagai syarat untuk mendapatkan skrining telepon pertama saya. Tidak adil untuk meminta kandidat untuk berinvestasi begitu banyak ketika perusahaan telah berinvestasi begitu sedikit dalam hubungan.
Saya adalah pengembang senior, dan saya bisa lulus uji koding. Tetapi saya tidak akan menyia-nyiakan waktu kecuali jika perusahaan telah menunjukkan minat pribadi pada saya. Saya biasanya tidak menyelesaikan aplikasi ke perusahaan mana pun dengan formulir aplikasi online besar yang ditulis dengan buruk yang meminta saya untuk memasukkan kembali resume saya sehingga robot yang ditulis dengan buruk dapat merusak pencarian kata kunci. Saya biasanya tidak setuju untuk menyelesaikan tes pengkodean kecuali jika singkat atau mereka menontonnya langsung dan berbicara kepada saya.
Bahkan jika mereka tidak memasukkan kode Anda ke dalam produksi, sebuah perusahaan yang ingin Anda menghabiskan banyak waktu mengetik sebelum Anda mengetahui apakah Anda bahkan cocok adalah perusahaan yang nyaman mengambil keuntungan dari Anda. Mereka memberi sinyal apa yang mereka inginkan dengan hubungan mereka; Anda adalah kode monyet. Mereka memanggil tembakan. Dan proses wawancara mereka dirancang untuk menemukan orang yang nyaman dengan hubungan itu.
Jangan menjadi kode monyet. Pergi.
sumber