kode koboi di tim


15

Bagaimana Anda berurusan dengan anggota tim yang senior untuk Anda dan selalu melompat pada proyek orang lain dan menyelesaikannya pada malam hari atau akhir pekan? Dia tampaknya bekerja 80 jam minggu apakah ada keadaan darurat atau tidak dan agak sulit untuk memprediksi bagian mana dari daftar todo Anda yang akan dia buat berikutnya. Terkadang hari-hari kerja Anda sia-sia karena pada hari Senin pagi Anda menemukan checkin menyelesaikan proyek yang telah Anda habiskan sebagian besar minggu sebelumnya.

Untuk orang-orang yang bertanya tentang kualitas: Biasanya cukup bagus tetapi: ada juga banyak refactoring kode yang terlibat, termasuk kode yang 'dimiliki' oleh anggota tim lain, tanpa memperhatikan cakupan pengujian, dengan hasil yang jelas.


51
Bagaimana kalau Anda memberi saya detailnya, dan saya akan melihat apa yang bisa saya lakukan untuk membuat perusahaan saya merebusnya.
Kevin D

7
@ MK01, Howabout sesuatu seperti, "Kami menyukai kontribusi yang telah Anda lakukan, tetapi kami ingin membahas cara-cara yang kami dapat dengan jelas membagi pekerjaan. Jika kami dapat meningkatkan kode Anda dengan yang ada di tim lainnya, kami mungkin bisa menyelesaikan ini lebih cepat daripada kita sekarang. " Kunci besar adalah ini: buat dia merasa seperti dia yang datang dengan ide itu.
riwalk

7
Santai dan tunggu sampai habis.
Steven Evers

9
Sepertinya Anda dapat merencanakan lebih banyak waktu SO pada hari Senin pagi.
JeffO

3
Yang belum Anda beri tahu kami adalah kualitas kodenya. Apakah dia mendahului orang lain dengan solusi dengan kualitas yang sama, lebih besar, atau lebih rendah?
David Thornley

Jawaban:


17

Ini mungkin sebagian masalah transparansi; dia mungkin tidak berusaha membuang waktu Anda. Saya akan berbicara dengan manajemen tentang membuat tugas yang dikerjakan orang lebih jelas, sehingga dia dapat dengan lebih mudah menyadari bahwa seseorang telah menginvestasikan waktu dalam tugas itu dan dapat melihat tugas apa yang tidak diklaim, memfokuskan upayanya pada tugas itu.

Saya tidak akan berhadapan langsung dengannya tentang hal ini. Saya akan berbicara dengan manajer Anda, sehingga beberapa proses dapat dilakukan. Sementara masalah ini mungkin paling terlihat dengan dia, saya bertaruh ada rekan tim lain yang melakukan hal yang sama (secara tidak sengaja memulai proyek yang sudah dikerjakan orang lain) pada skala yang lebih rendah. Saya pikir manajer Anda berada di posisi terbaik untuk memandu proses baru ini, meskipun Anda mungkin harus memberinya beberapa ide untuk bekerja. Jika bekerja dengan manajer Anda tidak berhasil, maka Anda harus terus berbicara dengannya secara langsung - tetapi saya akan mulai dengan manajer.

Tim kami menangani masalah ini dengan menempelkan catatan tempel dengan semua pekerjaan yang perlu dilakukan di papan tulis. Setiap anggota tim memiliki label dengan nama mereka, dan akan memindahkan catatan tempel yang mereka kerjakan ke kolom "sedang berlangsung" dan melabelinya dengan nama mereka. Jika orang lain ingin membantu dengan tugas itu, mereka diharapkan untuk mendiskusikan dan bernegosiasi dengan orang yang mengklaim tugas itu. Sistem serupa mungkin banyak membantu masalah Anda.


17

Dengan asumsi dia benar-benar efisien, dan "jack of all trade" ...

Rangkul gayanya. Cabut dia. Dan - mengisolasi dia.

Juga...

Jadilah eksplisit dengan tanggung jawab yang Anda percayakan.
Pastikan tim Anda belajar darinya (misalnya pemrograman pasangan bekerja dengan sangat baik).
Jangan "all-in" - uji dia dan pastikan untuk memiliki rencana cadangan jika semuanya memburuk.

Hal terburuk yang dapat Anda lakukan adalah mengacaukan motivasinya.


Saya menceritakan ini dari pengalaman saya sendiri. Saya mungkin tidak seefisien yang saya inginkan, tetapi saya tentu saja dapat beralih dari UI ke kegigihan dan saya pasti mempraktikkan pengkodean koboi (yang tentunya merupakan pedang bermata dua).

Saya dilemparkan ke dalam proyek yang sangat tidak berpengharapan sendirian (saya membuat hal-hal lebih menyenangkan - mengusulkan untuk menulis ulang semuanya dan menerima itu), semuanya berjalan dengan baik dan saya menyukainya. Tidak ada yang bisa disalahkan atas kesalahan selain diriku sendiri. Tidak ada orang yang merengek ketika saya secara spontan memutuskan untuk memperbaiki sedikit dari segalanya.

Sebenarnya - kebebasan ini adalah satu-satunya alasan mengapa saya masih bekerja di sini.


9

Saya kira ada masalah yang lebih buruk untuk dimiliki. Meskipun, pekerjaan Anda (atau orang lain di tim Anda) memang penting, dan tampaknya hasil pekerjaannya secara efektif menghilangkan kontribusi yang dibuat seseorang untuk tim.

Dugaan saya adalah bahwa dia tidak menyadari pengaruh yang dia miliki di tim; sebaliknya, kontribusi yang dia buat mungkin membuatnya merasa berharga bagi tim.

Solusinya (IMHO): berhadapan langsung dengannya. Tentu saja, bersikap diplomatis dan menghargai kontribusi dan pengorbanan yang dia lakukan (80 jam adalah minggu kerja yang sangat gila, dan tidak mungkin terjadi tanpa pengorbanan yang cukup keterlaluan dalam kehidupan pribadinya).

Tapi itu adalah tanggung jawabnya untuk berperilaku dengan cara yang tidak mengasingkan rekan kerjanya - junior, atau sebaliknya. Dan semua orang di tim pantas merasa bahwa upaya mereka bermakna - setelah semua, mengapa ada orang yang ingin pergi bekerja setiap hari jika kehadiran mereka tidak ada artinya?


Anda tahu setelah melihat profil OP di SO / SE. Saya bisa melihat sisi lain dari koin. Jika senior melakukan ini dengan sengaja atau tidak sengaja. Ini jelas buruk untuk alasan yang disebutkan Tim. Juga karena titik dasar untuk tidak membiarkan yunior tumbuh / berkembang. Hanya ketika yunior menjadi lebih baik untuk menggantikan Anda, pertunjukan dapat berlangsung bahkan tanpa kehadiran Anda. Jadi +1
Aditya P

9

Pertimbangkan untuk memberinya lebih banyak pekerjaan, jadi dia tidak perlu mencari pekerjaanmu!


6

Mungkinkah dia "melompat dan menyelesaikan" karena anggota tim lainnya bergerak terlalu lambat, atau karena bos memintanya?

Seberapa banyak gangguan ini karena dilewati, dan berapa banyak itu hanya "diperlihatkan" oleh pembuat kode yang lebih produktif (belum tentu lebih baik)?


4

Apakah dia tahu bahwa orang lain menganggap ini menjengkelkan? Saya akan menyarankan dengan bijaksana membawanya bersamanya, mengatakan bahwa Anda lebih suka menyelesaikan proyek Anda. Jika ini tidak berhasil, atau Anda merasa tidak nyaman untuk membicarakannya dengan seseorang yang lebih senior kepada Anda, ini merupakan masalah bagi manajemen. Jika Anda tidak menyelesaikan proyek karena dia, itu mungkin terlihat seperti Anda malas jika manajer tidak mengetahui situasinya.

Juga, seperti yang dikatakan orang lain, lihat bagaimana ia bekerja untuk meningkatkan diri Anda. Lihatlah checkin-nya untuk melihat bagaimana dia memecahkan masalah Anda - mungkin itu adalah perbaikan cerdas yang Anda tidak akan memikirkan diri sendiri. Perlu diingat bahwa pengembang senior tahu basis kode jauh lebih intim daripada Anda. Hal-hal yang tampaknya sepele bagi mereka mungkin sebenarnya sulit ditemukan oleh pengembang baru.


7
Siapa pun yang bekerja 80 jam seminggu dalam pemrograman berdasarkan preferensi cenderung sedikit kekurangan keterampilan sosial.
David Thornley

4

Bagaimana Anda berurusan dengan anggota tim yang senior untuk Anda dan selalu melompat pada proyek orang lain dan menyelesaikannya pada malam hari atau akhir pekan?

Bekerja lebih cepat?

Dia tampaknya bekerja 80 jam minggu apakah ada keadaan darurat atau tidak dan agak sulit untuk memprediksi bagian mana dari daftar todo Anda yang akan dia buat berikutnya.

Menurut definisi, jika itu ada di daftar todo Anda - itu tidak dilakukan. Jika dia menyelesaikannya, hapus dari daftar todo Anda.

Terkadang hari-hari kerja Anda sia-sia karena pada hari Senin pagi Anda menemukan checkin menyelesaikan proyek yang telah Anda habiskan sebagian besar minggu sebelumnya.

Itu biasanya disebut kerja tim - kecuali jika Anda tidak suka arah yang diambilnya, apa masalahnya?

Untuk orang-orang yang bertanya tentang kualitas: Biasanya cukup bagus tetapi: ada juga banyak refactoring kode yang terlibat, termasuk kode yang 'dimiliki' oleh anggota tim lain, tanpa memperhatikan cakupan pengujian, dengan hasil yang jelas.

"Dimiliki" dan kode tidak cocok. Jika Anda kesulitan menjaga, minta dia untuk menjelaskannya kepada Anda. Minta dia untuk membimbing Anda, karena sepertinya dia cukup produktif. Leverage hubungan, dan bekerja bersama.

Adapun cakupan tes, jika itu standar dalam organisasi Anda - angkat pimpinan / manajer Anda. Pekerjaan cepat, tapi jelek, tidak ada gunanya bagi siapa pun. Padahal, jika dia 10x lebih produktif daripada Anda - Anda mungkin akhirnya melakukan pekerjaan kasar membersihkannya. Jika itu masalahnya, berinvestasi lebih banyak lagi dalam hubungan dengannya.


Dia terdengar seperti anggota tim yang ideal ... Dia menjelaskan apa yang telah dia kerjakan / selesaikan, dia membantu setiap anggota tim, dll.
Augury

3
  • Belajar darinya dan cobalah untuk meningkatkan kecepatan kerja Anda.
  • Mungkin ada kemungkinan bahwa pekerjaan Anda tertinggal.
  • Mungkin ada lebih banyak hal yang terjadi di balik layar atau di atas pengetahuan Anda dengan alasan harapan manajemen darinya karena ia senior.
  • Anda mungkin berpikir Dia mungkin tidak memiliki hal yang lebih baik untuk dilakukan, Seringkali ini tidak mungkin.
  • Anda mungkin tidak menyadari keadaan darurat.
  • Ini bisa menjadi petunjuk bagi kinerja Anda baik oleh manajemen atau oleh senior.

Apa pun yang terbaik, Anda mulai mengevaluasi diri Anda terlebih dahulu. Sebagai upaya Anda untuk "Menangani" dia mungkin tidak bekerja dengan baik dengan manajemen.


3

Dia jelas mendapatkan kepuasannya dari menyelesaikan masalah dan menjadi pahlawan - yang baik-baik saja, tetapi Anda perlu (baik timnya memimpin, tetapi Anda pada saat itu) menemukan cara untuk memanfaatkan itu.

Hal-hal kunci melompat ke arah saya:

  • Dia memiliki bakat untuk melakukan pekerjaan lebih cepat daripada yang lain (Anda tidak menyiratkan apa pun tentang kode yang buruk)

Jadi manfaatkan itu. Dalam proyek Anda berikutnya, tawarkan dia di depan beberapa pekerjaan yang harus dilakukan. Dengan begitu Anda tahu apa yang dia rencanakan untuk dilakukan. Jika kepuasannya datang dari menyelesaikan masalah, dia mungkin akan sama bahagia jika Anda menawarkannya seolah-olah dia melakukannya di latar belakang.

Mungkin melangkah lebih baik, memformalkannya, ketika sebuah tim melakukan pekerjaan yang diperebutkan bagi siapa saja yang ingin melakukan ekstra - dengan cara itu elemen mencuri hilang, dan semua orang menang.


1
Jika Anda membaca buku-buku DeMarco Anda akan melihat ada sekitar 10: 1 rasio antara jumlah yang dapat dihasilkan oleh pengembang yang baik dan yang tidak terlalu baik. Hal terakhir yang ingin Anda lakukan adalah melumpuhkan pencilan yang melakukan lebih banyak daripada yang lain, Anda perlu memanfaatkan energi itu dan mengarahkannya ke tempat yang paling baik baginya.
cepat

2

Mulai tim melakukan pemrograman pasangan.

Pertama-tama, pemrograman pasangan melelahkan, terutama bagi para dev yang introvert yang suka bekerja sepanjang akhir pekan sendirian. Akhir pekannya akan menjadi berharga untuk relaksasi, sebagaimana mestinya.

Kedua, dia akan memberikan pengetahuan (selama lebih banyak pengembang pemula mengemudi) dan dengan demikian menyebarkan kemampuannya yang luar biasa ke seluruh tim.

Ketiga, dia akan mengurangi risiko besar yang saat ini dia tanggung atas nama Anda, sehingga lebih dari satu anggota tim tahu apa yang dia ketahui.

Keempat, dia - dan anggota tim lainnya - akan memiliki ide yang lebih baik tentang apa yang sedang dikerjakan. Jika Anda dapat menggabungkan ini dengan melengkapi seluruh fitur bersama sebagai sebuah tim, akan ada lebih sedikit pekerjaan yang sedang berjalan, dan lebih sedikit peluang pekerjaan yang diduplikasi sebelum check-in.

Kelima, dia akan belajar bermain sebagai bagian dari tim . Sangat mungkin bahwa demotivasi yang dia sebabkan, bersama dengan duplikasi pekerjaan anggota tim lainnya, harganya lebih mahal daripada yang dia hasilkan. Produktivitas! = Efektivitas.

Keenam, kualitas kode biasanya naik ketika devs berpasangan. Efek samping yang bagus.


1

Apakah dia tahu pekerjaan apa yang dilakukan orang dan kemajuan mereka? Bisakah manajemen memberikan arahan kepadanya agar dia tidak menduplikasi pekerjaan dari orang lain? Saya akan tergoda untuk menyarankan melakukan percakapan 1: 1 sebelum membawa manajemen karena mungkin dia hanya gila kerja yang bisa menggunakan arah mengetahui hal-hal apa yang penting yang tidak dilakukan orang lain yang bisa sangat berguna baginya untuk melakukan.

Mengenai pekerjaan Anda yang sia-sia, lihatlah dari sudut pandang lain. Apa yang bisa Anda pelajari dari apa yang Anda lakukan? Bagian mana yang tidak Anda lakukan dan bagaimana dia melakukannya? Hanya karena orang lain dapat mengambil kredit untuk menyelesaikan sesuatu, jangan berpikir bahwa semua darah, keringat dan air mata tidak ada artinya.


0

Si koboi tampak antusias. Saya akan mendekati manajemen sehingga mereka dapat memberinya banyak pekerjaan untuk dilakukan dan membiarkan kalian melakukan hal-hal Anda sendiri. Namun, mungkin Anda bisa belajar satu atau dua hal dari si koboi. Saya tidak mengatakan bahwa jam kerja 80 jam seharusnya menjadi norma (jelas ini berlebihan), tetapi menempatkan jam tambahan di tempat kerja cukup normal di lingkungan perusahaan yang besar.


5
Memasukkan dalam jam pemrograman yang panjang umumnya kontraproduktif dalam jangka panjang.
David Thornley

@ David: Tidak jika Anda diberikan setiap hari Jumat :)
Brian

2
@ 0A0D: Itu flexitime, bukan "menempatkan jam ekstra di tempat kerja"
Carson63000

3
@OAOD: Setiap toko tempat orang bekerja lembur tanpa kompensasi adalah toko keringat.
bit-twiddler

@ bit-twiddler: Tidak pernah mendengar tentang karyawan bergaji?
Brian
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.