Perusahaan kami telah merekrut lima pengembang junior baru untuk membantu saya mengembangkan produk kami. Sayangnya fitur-fitur baru dan perbaikan bug yang masuk biasanya membutuhkan pengetahuan yang lebih dalam dari yang biasanya dimiliki oleh pengembang yang baru lulus (threading / concurrency, debugging bottleneck kinerja dalam sistem yang kompleks, dll.)
Mendelegasikan (dan merencanakan) tugas yang mereka (mungkin) dapat selesaikan, menjawab pertanyaan mereka, membimbing / mengelolanya, meninjau kode mereka menghabiskan seluruh waktu saya dan saya sering merasa bahwa saya dapat menyelesaikan masalah lebih sedikit waktu daripada seluruh proses pendelegasian (hanya menghitung waktu saya). Selain itu saya tidak punya waktu untuk menyelesaikan tugas-tugas yang membutuhkan pengetahuan sistem yang lebih dalam / keterampilan yang lebih maju dan sepertinya tidak akan berubah dalam waktu dekat.
Jadi, bagaimana sekarang? Apa yang harus saya lakukan untuk menggunakan waktu mereka dan waktu saya secara efektif?
Jawaban:
Ya, Anda dapat menyelesaikan berbagai hal lebih cepat dari yang mereka bisa, itu sebabnya Anda senior dan tidak. Namun, seorang senior yang baik ingin membawa juniornya ke tingkat senior juga dan satu-satunya cara Anda dapat melakukan ini adalah dengan membiarkan mereka belajar bagaimana melakukan sesuatu.
Mentoring adalah penggunaan waktu Anda yang paling efektif, bukan coding.
Lihatlah dengan cara ini, jika Anda menghabiskan enam bulan ke depan mentoring secara efektif dan junior belajar cukup untuk menjadi pengembang menengah - maka Anda memiliki 5 pengembang tingkat menengah dan satu senior. Jika Anda melakukan semua kerja keras sendiri karena lebih cepat, dalam enam bulan Anda akan tetap memiliki 5 junior memutar-mutar ibu jari mereka (nah yang terbaik dari mereka akan pindah ke pekerjaan lain saat itu jika Anda tidak memberi mereka pekerjaan yang menantang, jadi Anda mungkin memiliki lebih sedikit atau lebih junior devlopers) dan satu senior yang terlalu banyak bekerja dan rewel.
Anda tahu interaksi kompleks apa yang biasanya ditemukan dalam bug, jadi kembangkan beberapa pelatihan khusus tentang tipe-tipe tersebut jika ada, cara memecahkan masalah dan menemukan masalah aktual dan kemudian jenis metode yang biasanya diperlukan untuk memperbaikinya. Kemudian beri mereka masalah itu saat mereka muncul. Ya, mereka akan membutuhkan waktu lebih lama untuk memperbaikinya dan Anda harus mengizinkannya dalam perkiraan waktu Anda.
Gagasan pemrograman pasangan sangat bagus. Pasangkan dengan yang berbeda untuk setiap masalah yang benar-benar canggih. Bahkan jika mereka belum cukup tahu untuk menyelesaikan masalah, memiliki junior di keyboard saat Anda memberi tahu mereka apa yang harus dicoba dalam hal mencari penyebabnya akan membantu mengajari mereka proses pemecahan masalah. Tentu saja, jangan hanya berharap mereka mengambil keputusan. jelaskan apa yang Anda ingin mereka cari dan mengapa. Mintalah ide-ide mereka dan dengarkan mereka. Jelaskan mengapa ide mereka bukanlah pilihan yang baik jika tidak. Gunakan metode pengajaran Sokrates dengan mengajukan pertanyaan-pertanyaan terkemuka. Mereka akan mengingat lebih baik solusi yang mereka buat sendiri melalui pertanyaan-pertanyaan utama Anda daripada yang Anda didiktekan kepada mereka tanpa penjelasan. Mereka juga akan mengingat lebih baik jika mereka benar-benar mengetik solusi daripada hanya menonton Anda mengetiknya.
Begitu junior telah membantu Anda memecahkan kelas masalah tertentu sebagai bagian dari pasangan dengan Anda, Anda dapat memasangkannya dengan orang lain pada saat kelas masalah muncul dan hanya tersedia untuk konsultasi, tidak berdiri di atas bahu mereka sementara mereka mencoba berbagai hal.
Anda memiliki lima orang baru yang sangat sulit. Anda harus bersikap adil terhadap mereka semua dan merotasi dengan siapa Anda berpasangan atau memberikan panduan. Jangan main favorit. Tapi Anda juga harus menjadi orang yang memberikan "cinta yang kuat" jika seseorang tidak berhasil dan membuat kemajuan. Anda mungkin perlu memanggil satu atau lebih dari mereka dan memberi tahu mereka bahwa mereka perlu meningkatkan dan mengapa Anda merasa mereka tidak berhasil. Beberapa orang akan membiarkan Anda melakukan semua pekerjaan jika Anda berpasangan dan Anda tidak bisa; membiarkan ini hanya karena itu lebih mudah. Jika orang tersebut tidak dapat melakukan pekerjaannya, itu lebih baik bagi mereka dan jauh lebih baik untuk tim Anda jika Anda tidak membawanya begitu jelas bahwa mereka tidak dapat atau tidak akan belajar menjadi lebih mandiri.
Ingat, Anda mendapatkan apa yang Anda harapkan. Jika Anda tidak berharap banyak, Anda tidak akan mendapatkan banyak. Harapkan mereka bersinar dan kebanyakan dari mereka akan memenuhi standar Anda.
sumber
Pemrograman Pair terdengar seperti kemungkinan besar di sini.
Untuk anekdot / contoh saran ini berfungsi: Ini adalah bagaimana saya diperkenalkan ke bagian hairiest dari basis kode yang saya kerjakan - dengan pengembang yang relatif baru saya dipasangkan, kami akhirnya melakukan sesuatu seperti ini:
Sejak itu saya mewarisi pemeliharaan seluruh bagian basis kode, karena saya benar-benar satu-satunya yang mengerti cara kerjanya lagi (pengembang asli yang masih ada bahkan tidak sepenuhnya ingat).
sumber
Ajari mereka. Tetapkan tugas-tugas yang mudah diselesaikan.
Sederhananya, masalahnya adalah bahwa tenaga kerja tersebut tidak cukup terampil untuk menjadi sangat produktif dengan tugas yang mereka miliki. Dengan demikian, Anda dapat 1) meringankan tugas 2) mencoba meningkatkan keterampilan tenaga kerja.
Masalah serupa hampir selalu terjadi (sampai batas tertentu) setiap kali orang baru bergabung dengan tim dan mulai bekerja pada basis kode yang dia tidak punya pengalaman. Ini menjadi lebih dari masalah jika alat dan metodologi tidak diketahui. Dengan melatih orang tersebut untuk menjadi lebih terbiasa dengan alat dan metodologi, masalahnya dapat diringankan lebih cepat.
Namun, menyelesaikan masalah semacam itu membutuhkan waktu - seseorang tidak bisa hanya berharap orang lain mengetahui segalanya atau mempelajari semuanya dalam satu saat. Mungkin memperkenalkan beberapa buku tentang konkurensi, pengoptimalan perangkat lunak, dan metodologi umum yang dibutuhkan akan menjadi awal yang baik.
sumber
Kedengarannya Anda bukan bagian dari keputusan perekrutan. Buat penilaian yang adil terhadap kemampuan mereka untuk menangani tugas saat ini. Tuliskan laporan dengan rekomendasi (pelatihan eksternal dan tugas-tugas seperti itu selama tidak mempengaruhi waktu pengiriman Anda), kirim laporan ke manajer Anda yang mungkin mulai berbicara dengan siapa pun yang mempekerjakan orang-orang itu. Satu orang baru dapat diserap dalam tim tetapi 5 orang baru sekaligus, kedengarannya tidak bagus kecuali Anda memiliki toko santai. Apa pun yang Anda lakukan jangan mencoba mengajar mereka pada waktu proyek Anda kecuali ini diperhitungkan dalam rencana.
Sunting: Mungkin tepat untuk menyebutkan Hukum Brook dalam situasi ini.
sumber
Mungkin Anda dapat meluangkan waktu untuk menciptakan lingkungan kotak pasir di mana Anda dapat membuangnya untuk mengatasi beberapa masalah sulit tanpa membahayakan. Mintalah mereka menguji solusi mereka selengkap mungkin. Letakkan lebih dari 1 pada masalah yang sama.
Semua hal ini memberi mereka kemungkinan untuk mendapatkan keterampilan yang cukup untuk menjadi berguna, ditambah mereka membutuhkan lebih sedikit waktu Anda. Tentu saja jika Anda memilikinya (kebanyakan) tenggelam atau berenang dan mereka cukup banyak tenggelam maka Anda harus memikirkan kembali sesuatu.
Dalam profesi pemrograman, orang-orang yang sebagian besar tidak dapat belajar sendiri mungkin tidak sepadan dengan usaha yang diperlukan untuk mengajar mereka. Tapi saya pikir mereka mungkin akan mengejutkan Anda dengan seberapa baik mereka maju ketika Anda mengurangi bantuan.
sumber