Di tim saya, kami sering membutuhkan programmer paling senior untuk melatih / mentor programer junior baru. Namun, programmer senior yang sama ini adalah orang-orang yang melakukan sebagian besar pekerjaan penting dan nyata.
Saya telah mencoba untuk berdebat dengan manajer saya bahwa masuk akal untuk memiliki programmer junior, yang menunjukkan bakat tinggi, mengambil programmer baru di bawah sayap mereka. Pertama, itu akan membebaskan pengembang senior untuk bekerja pada inisiatif yang lebih penting (bukan bahwa pendampingan tidak penting). Selanjutnya, itu akan memberi para programmer junior sedikit kebanggaan dalam pekerjaan mereka bahwa mereka akan dituntut untuk tanggung jawab seperti itu dan mereka dapat belajar sesuatu dalam mengajar. Akhirnya, ini akan menghemat uang perusahaan, karena pengembang senior harganya jauh lebih mahal daripada junior.
Bos saya telah gagal diyakinkan karena ini adalah cara kerjanya di tim ini sejak awal waktu, tampaknya. Dengan asumsi bahwa keputusan telah dibuat bahwa semacam pelatihan / pendampingan adalah wajib, adakah yang bisa memberi saya beberapa argumen yang lebih baik atau memberi tahu saya mengapa saya salah? Apa yang tim Anda lakukan?
** Kita semua bisa sepakat bahwa senioritas tidak selalu menunjukkan kompetensi, jadi anggap saja sebagai "programmer senior" yang saya maksudkan "programmer top".
sumber
Jawaban:
Saya mengalami situasi ini di perusahaan sebelumnya. Pengembang senior, yang hanya sedikit, membimbing semakin banyak pengembang junior ke titik di mana mereka tidak dapat melakukan tugas-tugas lain yang ditugaskan kepada mereka. Setelah beberapa saat, pengembang senior membicarakannya dengan manajer kami dan diputuskan bahwa pengembang yang berada di suatu tempat di antara junior dan senior akan bertindak sebagai mentor tetapi untuk masalah sulit mereka bisa bertanya kepada pengembang senior.
Itu bekerja dengan cukup baik. Sebelum itu, beberapa pengembang senior mulai mencari pekerjaan baru karena mereka tidak ditantang di tempat kerja. Setelah itu, mereka dapat mengerjakan fitur baru dan menyelesaikan pekerjaan. Apa pendapat pengembang senior Anda tentang situasinya?
Dalam pandangan saya, menjadi senior bukan hanya tentang keahlian dalam domain, judul di footer email Anda atau berapa lama Anda telah bekerja. Ini juga merupakan pola pikir, untuk membantu dan membimbing pengembang junior. Dan cara apa yang lebih baik untuk mendapatkan lebih banyak pengembang senior dalam sebuah tim daripada membiarkan yang tidak begitu senior melakukan pendampingan?
sumber
Tidak semua programmer top adalah guru top. Saya akan merekomendasikan untuk membuat pelatihan oleh seseorang yang dapat menjelaskan dan yang memiliki gambaran umum tentang 'lingkungan' perusahaan Anda (hal-hal teknis, tetapi juga organisasi seperti kontak).
sumber
Saya mengulangi beberapa hal yang sudah dikatakan tetapi saya memiliki dua pandangan.
Bisnis: Sebagai bisnis, Anda menginginkan produktivitas dan risiko yang lebih rendah. Meskipun pengembang senior melakukan sebagian besar pekerjaan, Anda ingin mereka mentransfer pengetahuan mereka tentang sistem yang menurunkan risiko. Produktivitas tidak akan terlalu terpengaruh karena Anda perlu memberi waktu istirahat kepada para senior ini untuk melakukan hal-hal yang kurang penting (mengajar para junior devs). Selain sistem, mereka juga memiliki banyak disiplin ilmu yang belum diketahui atau dipahami oleh para junior dev.
Rasa Hormat: Junior mengambil pengembang baru di bawah sayap mereka seperti orang buta menuntun orang buta. Junior belum siap dengan segala sesuatu untuk ditugaskan mengajar orang lain. Juga, itu mungkin tidak berhasil karena rasa hormat mungkin tidak ada. Rasa hormat terhadap pengembang junior dipertanyakan karena keahlian Anda vs keterampilan pemula mungkin tidak terlalu jauh. Mengatasi masalah bersama adalah cerita yang berbeda. Tidak ada pertanyaan tentang rasa hormat dalam hal para senior yang mengajar devs senior atau bahkan junior. Kita semua tahu bahwa ketika rasa hormat kurang dalam dua individu atau dalam sebuah tim, bencana sedang menunggu untuk terjadi ...
sumber
Lihat ini dari sudut lain. Keterampilan dan pengetahuan apa yang ingin Anda transfer di antara programmer di sini? Jika programmer senior melakukan sebagian besar pekerjaan nyata, penting bukankah ini mempertahankan sedikit isolasi dalam hal siapa yang tahu sistem mana? Mendapatkan junior untuk mengetahui sistem sehingga mereka dapat menjadi cadangan untuk senior adalah arah yang agak logis untuk diambil karena pengetahuan senior yang berpotensi bertahun-tahun untuk membangun pengetahuan yang akan dilewati itulah yang paling penting di sini. Para senior yang membimbing yunior memang tampak seperti semacam formasi alami dalam pikiranku.
Seorang programmer junior yang membimbing programmer junior lainnya tidak masuk akal bagi saya. Memasangkan beberapa programmer junior bersama-sama bisa masuk akal. Memiliki beberapa orang bekerja bersama dalam suatu tugas sehingga bukan hanya ide satu orang bisa sangat berguna dan juga membantu menumbuhkan lingkungan yang lebih kolaboratif di mana tim bekerja sama dalam arti tertentu. Tergantung pada lingkungan yang Anda miliki, ini mungkin atau mungkin tidak masuk akal untuk dilakukan.
sumber
Nah jika programmer senior dalam tim tidak benar-benar menguasai perdagangan mereka lebih dari junior, hanya ada lebih lama dan / atau memiliki status sosial / politik yang lebih tinggi dalam tim, maka memang tidak benar-benar membuat perbedaan besar siapa - jika ada - yang menjadi mentor para pendatang baru. Kemungkinannya, mereka semua akan condong ke tingkat yang sama-sama biasa-biasa saja ... :-(
Jika, OTOH, seorang senior benar-benar (setidaknya terasa lebih dekat dengan) seorang programmer master dalam arti sebenarnya dari dunia, itu dapat membuat perbedaan besar. Seorang junior dapat dengan mudah mengajarkan praktik yang tidak terlalu baik kepada anak baru di blok itu. Dan jauh lebih sulit untuk melupakan pendekatan yang suboptimal atau buruk nanti, daripada memulai dengan mempelajari praktik terbaik .
Yang mengatakan, jika seorang junior memiliki bakat, dan telah menunjukkan dengan andal bahwa dia tahu apa yang dia lakukan mengenai alat, teknik, atau bidang tertentu, dia memang bisa menjadi pelatih yang berguna di bidang tertentu itu .
Tetapi perhatikan bahwa - dari sudut pandang tertentu - seluruh titik bimbingan / pelatihan adalah untuk memungkinkan para senior untuk mendelegasikan beberapa tugas mereka yang tidak terlalu menantang kepada orang lain, sehingga mereka dapat fokus pada hal-hal yang sangat sulit. Agar hal ini terjadi, mereka harus benar-benar mengajarkan tugas dan keterampilan itu kepada teman sebaya mereka terlebih dahulu, dan mengajar mereka dengan baik, sehingga tugas tersebut diambil alih dengan baik, sekali dan untuk semua.
sumber
Jawaban sederhana: orang yang melakukan pelatihan haruslah orang yang terbaik dalam pelatihan yang juga ingin melakukan pelatihan.
Beberapa orang menikmati pelatihan dan bimbingan. Beberapa orang membencinya. Anda tidak ingin orang melakukan hal-hal yang mereka benci - itu buruk bagi mereka, kemungkinan buruk bagi orang yang dilatih, dan itu mungkin buruk bagi seluruh tim. Itu tidak menambahkan apa pun. Sementara itu, membiarkan orang melakukan apa yang mereka sukai itu baik untuk mereka, tim, dan mudah-mudahan peserta pelatihan akan mendapatkan antusiasme.
Demikian pula, beberapa orang bagus dalam pelatihan dan beberapa orang tidak baik. Ada jenis interaksi manusia atau kecerdasan yang memungkinkan beberapa orang menjadi pandai memahami bagaimana orang lain berdetak; seorang pelatih harus dapat memberikan pengetahuan dengan cara yang akan dipahami oleh peserta pelatihan. Pelatih yang baik dapat melakukan ini, dan dapat belajar bahwa peserta pelatihan suka 'memahami' hal-hal, atau 'melihat' hal-hal, atau 'melakukan' hal-hal - berbagai cara yang dipelajari orang. Seorang pelatih yang buruk menyampaikan pidato yang telah dilatih dan tidak fleksibel, dan akan menjadi frustrasi ketika peserta pelatihan tidak memahami cara belajar mereka yang istimewa.
Saya berasumsi Anda ingin peserta pelatihan mendapatkan pelatihan terbaik - menyeluruh namun efisien. Jika 'programmer top' Anda tertarik untuk melatih, maka mereka harus melakukannya. Jika 'programmer junior' sanggup melakukannya maka mereka harus mencobanya juga. Tidak ada salahnya untuk memiliki beberapa orang berpartisipasi dalam program pelatihan - dengan cara itu Anda dapat menentukan siapa yang ingin melatih, dan siapa pandai dalam pelatihan.
Saya tidak yakin dari pertanyaan Anda apakah Anda seorang programmer senior yang ingin keluar dari pelatihan (tidak ada kritik - Anda memiliki hal-hal yang lebih penting untuk dilakukan, atau hanya tidak menyukainya), atau seorang programmer junior yang ingin masuk ke dalamnya. Namun demikian, Anda mencoba melakukan apa yang Anda sukai - dan bukankah kita semua ingin melakukan tugas yang kita nikmati? Karyawan yang bahagia mengarah ke lingkungan kerja yang lebih baik dan output yang lebih baik.
sumber
Di sebagian besar perusahaan tempat saya bekerja, seorang programmer Junior adalah seseorang dengan pengalaman kurang dari 3 tahun. Sementara saya akan senang, sebagai programmer berpengalaman dengan pengalaman mentoring untuk merujuk programmer baru ke programmer junior untuk pelatihan pada topik tertentu, saya ingin mempertahankan kontrol, daripada mendelegasikan semua tanggung jawab mentoring kepada seseorang yang masih membutuhkan pengawasan mentoring diri.
sumber
Saya telah menemukan bahwa hal-hal seperti aturan bisnis dan pedoman desain adalah hal paling penting yang harus dapat disampaikan oleh programmer yang lebih senior kepada pengembang junior atau bahkan pengembang / kontraktor senior yang baru saja direkrut. Masalah cenderung muncul ketika informasi kunci ini ditimbun atau tidak pernah dijelaskan. Mungkin ini yang menjadi perhatian manajer Anda lebih dari sekadar pengetahuan pemrograman yang sebenarnya.
Adapun pengetahuan pemrograman itu sendiri, yang terbaik disampaikan di sekitar kelompok di semua tingkatan. Bahkan programmer yang berpengalaman belajar hal baru setiap saat, terutama dalam kerangka pengembangan yang kompleks. Berbagi ini dapat bersifat formal, seperti dalam sesi makan siang dan belajar, atau melalui diskusi informal ketika waktu mengizinkan.
sumber
Saya akan memilih mentor terutama menjadi satu atau dua langkah di bawah programmer teratas dalam organisasi.
Meskipun Anda telah memberikan beberapa alasan bagus untuk itu, saya akan tunjukkan satu lagi yang saya pikir sangat penting: mengajar adalah salah satu cara terbaik untuk belajar, terutama belajar lebih banyak untuk membuat beberapa langkah terakhir naik dari benar-benar baik bagus Salah satu bagian penting dari ini adalah belajar untuk tidak hanya melakukan hal - hal dengan baik, tetapi melakukan pekerjaan yang baik untuk mengartikulasikan apa yang Anda lakukan dan mengapa. Saya, misalnya, sering menemukan bahwa untuk melakukan pekerjaan dengan baik dalam menjelaskan mengapa saya melakukan sesuatu dengan cara tertentu, saya harus duduk dan berpikir tentang hal itu sehingga 1) pemahaman saya sendiri meningkat pesat, dan 2) saya sering mengevaluasi kembali situasi yang cukup untuk meningkatkan pekerjaan saya sendiri.
Meskipun mungkin lebih sulit bagi mereka untuk melakukannya, ini bisa sangat membantu bagi programmer yang keterampilan sosialnya mungkin agak ... kurang dibandingkan dengan rekan-rekan mereka. Mendorong mereka sedikit keluar dari zona nyaman mereka dari pengodean murni ke dalam aspek sosial yang lebih seperti pendampingan dapat membantu mereka sebanyak orang yang mereka bimbing. Tentunya jika Anda akan melakukan itu, Anda harus sangat berhati-hati dalam memilih siapa yang akan berpasangan - pasangan yang salah bisa berakhir dengan menyakiti keduanya.
sumber
Saya pikir itu bekerja dengan baik ketika mentor sukarela untuk tugas itu. Di sini, kami tidak memiliki proses pendampingan yang sangat formal. Terkadang manajer kami memiliki sesuatu yang spesifik dalam pikirannya, tetapi kadang-kadang ia mengatakan sesuatu seperti, "Adakah yang punya ide bagus tentang proyek untuk orang baru itu?" dan siapa pun yang memiliki ide terbaik akhirnya melakukan pendampingan.
Apa yang akhirnya terjadi adalah karyawan baru ditempatkan pada proyek yang dapat membayar waktu kurva belajar, dan dibimbing oleh orang yang paling akrab dengan proyek tersebut. Itu mungkin seseorang yang sudah 10 bulan atau 10 tahun di sini. Kadang-kadang orang akhirnya sedikit membimbing para mentor, tetapi keuntungannya adalah orang-orang baru masih ingat semua kesulitan menjadi baru dan bagaimana mereka mengatasinya.
sumber