Apa hal utama yang diharapkan oleh seorang programmer dari programmer senior?

41

Baru-baru ini saya membaca 5 Jenis Atasan dan Cara Mengatasinya , yang menggambarkan pakaian atasan terburuk. Saya baru saja mulai memimpin tim kecil pengembang perangkat lunak.

Saya ingin tahu hal-hal utama apa yang diharapkan oleh seorang programmer dari programmer senior atau hal-hal apa yang harus kita hindari saat mengelola sebuah tim.

Juga, saya ingin tahu bagaimana membuat para programmer puas dan menciptakan lingkungan yang produktif & lengkap untuk tim saya.

Avatar
sumber
19
joelonsoftware.com Baca sebanyak mungkin blog miliknya.
P.Brian.Mackey
@ P.Brian.Mackey tautan luar biasa!
Avatar
2
Bahwa programmer senior memiliki avatar yang berhubungan dengan Miyazaki mungkin bukan keharusan, tapi pasti plus besar :-)
leonbloy
1
Menarik ... Bos saya mencetak 4 dari 5 pada tes itu ... Saya harus mengingatkan dia akan kabar baik;)
Aeo

Jawaban:

79

Hal-hal yang sepertinya bekerja dengan baik untuk saya:

  • Berikan pekerjaan yang bermakna dan dorong kepemilikan - bahkan ketika masalah muncul, jangan selesaikan, bicarakan dan berikan wawasan kepada orang tersebut sehingga mereka dapat menyelesaikannya sendiri.
    • sunting - tambahan - ini juga dimaksudkan untuk memasukkan - hindari detail. Anggaplah orang-orang Anda cukup tahu untuk melakukan penugasan tanpa manajemen mikro atau persyaratan untuk terus-menerus check in. Bangun seperangkat pedoman untuk kapan mereka harus check-in - yang seharusnya hanya ketika pekerjaan dilakukan atau benar-benar kacau sehingga intervensi serius dilakukan dibutuhkan. Jika memungkinkan, menjauhlah dari bahkan perlu berada dalam lingkaran pada masalah dukungan antarteam.
  • Jujur - yang memiliki beberapa akibat wajar:
    • Jujurlah tentang diri Anda sendiri - "Saya tidak akan punya waktu sampai Selasa", "Saya belum pernah melakukan itu, inilah tebakan terbaik saya", dll.
    • Jujurlah tentang tim dan di mana mereka cocok dengan perusahaan - jika Anda tahu sesuatu tentang bisnis, beri tahu mereka jika Anda bisa, dan beri tahu mereka apa yang Anda tahu sebagai fakta langsung.
    • Jujurlah dalam memberikan umpan balik - jangan berbelit-belit atau mengayuh pedal jika Anda telah memberikan umpan balik negatif. Itu berbeda dari "jujur ​​secara brutal" - Anda masih bisa memiliki belas kasih, tetapi jika ada yang salah, katakan begitu.
    • Jujurlah ketika Anda tahu pekerjaan itu lebih tentang redtape daripada menyelesaikan sesuatu yang bermakna. Ke dalam kehidupan setiap orang, beberapa pekerjaan yang tidak berarti akan jatuh. Jangan berpura-pura itu bermakna. Sebut seperti apa adanya, sehingga Anda semua bisa fokus melewatinya dan mendapatkan sesuatu yang bermanfaat.
  • Dengarkan . Setidaknya 50% dari pekerjaan Anda adalah mendengarkan, mungkin lebih. Anda tiba-tiba menjadi bertanggung jawab tidak hanya untuk pekerjaan teknis, tetapi orang-orang yang melakukannya. Anda harus mendengarkan untuk belajar tidak hanya tentang masalah yang dihadapi tim, tetapi juga bagaimana orang-orang Anda mendekati masalah dan apa kekurangan tim sebagai sebuah kelompok.
    • Konsekuensi penting yang wajar - mendengarkan dapat langsung mengarah ke poin # 1 - memberikan pekerjaan yang bermakna - para insinyur hebat dalam menemukan cara untuk membuat pengembangan lebih mudah. Anda tidak dapat menyetujui semuanya, tetapi jika idenya bagus, berikan tugas kepada insinyur, dan mereka pada dasarnya telah menyelesaikan pekerjaan Anda - mereka menciptakan karya yang bermakna dan memberi tahu Anda apa itu.
  • Katakan "terima kasih" . Saya tahu, sepertinya sudah jelas. Sementara kita semua menyukai uang, peralatan yang lebih baik, lingkungan kerja yang lebih baik, dan promosi - cara untuk mencapai hal-hal ini adalah dengan serangkaian upaya baik, yang masing-masing layak mendapat "terima kasih". "Terima kasih" benar-benar gratis, Anda tidak akan pernah kehabisan, dan mengetahui bahwa manajer Anda telah melihat dan menghargai kerja keras Anda pasti memotivasi.
  • Habiskan waktu pada gambaran besar , bahkan jika itu berarti mengorbankan sebagian pekerjaan sehari-hari yang membuat Anda mendapatkan posisi itu. Mungkin benar bahwa Anda dapat membuat kode lebih baik daripada beberapa orang Anda, tetapi jika Anda tidak menghabiskan waktu yang cukup untuk gambaran besar - tim, arah proyek keseluruhan, keadaan basis kode Anda, efisiensi proses Anda , lingkungan tim Anda - maka Anda tidak akan melakukan pekerjaan yang perlu Anda lakukan.
  • Belajar menjadi penyangga untuk tim Anda . Tim teknik bekerja paling baik ketika mereka memiliki waktu untuk melakukan ... rekayasa. Birokrasi perusahaan bukanlah rekayasa. Apa pun yang dapat Anda lakukan untuk mengambil pertemuan yang menjengkelkan 1 per tahun / bulan / minggu dengan orang luar lebih baik. CATATAN: Itu tidak berarti pertemuan yang gesit dengan pemegang pasak - itu rekayasa, tim Anda harus ada di sana untuk itu. Maksud saya pertemuan dengan fasilitas yang ingin menempatkan mesin menjerit keras di dekat tim Anda, atau kelompok proses yang ingin tim Anda mengisi kertas rangkap tiga sebelum kode apa pun diperiksa. Anda adalah sistem serpihan serpihan.
  • Anggaplah orang yang bermasalah bukanlah orang jahat , mereka adalah orang yang ingin berbuat baik tetapi belum tahu caranya. Anda tidak akan dapat memperbaiki semua orang, tetapi sering kali gagal total adalah faktor kegagalan komunikasi karena ketidakmampuan atau niat jahat yang disengaja. Jika Anda memulai dengan anggapan bahwa orang itu tidak jahat, Anda memiliki harapan yang layak untuk menghindari sejumlah arketipe bos jahat dari daftar di atas.

Dan mungkin yang paling penting ... hormat . Jika Anda benar-benar tidak dapat menghormati anggota tim Anda, Anda harus berusaha mengubah itu (apakah itu mengajar orang atau mengubah jumlah karyawan Anda). Berikan rasa hormat pada hari pertama dan Anda akan mendapatkannya kembali, perlakukan orang-orang dengan kurang hormat dan Anda tidak akan pernah mendapatkan balasan.

Secara bersama-sama, jika Anda melakukan sebagian besar dari hal-hal ini, sebagian besar waktu maka tim Anda akan memberi Anda keuntungan dari keraguan ketika Anda menunjukkan bahwa Anda adalah manusia dan benar-benar mengacaukan sesuatu. :) Setiap bos memiliki kekurangannya masing-masing, dan itu sama halnya dengan menjalin hubungan dengan tim Anda di mana mereka dapat membantu Anda mengkompensasi kelemahan Anda saat Anda membantu mereka dengan kelemahan mereka.

bethlakshmi
sumber
1
jawaban yang bagus, saya akan menambahkan ini memberi mereka kebebasan . Tidak ada yang lebih buruk dari pengelolaan mikro atau harus meminta izin untuk setiap detail kecil.
agradl
3
Benar-benar Luar Biasa .. Saya berharap StackExchange dapat memberikan dukungan untuk pengguna berikut (catatan singkat untuk Joel dan Jeff) :)
PrinceCoder
2
WAAOW !! ... itu salah satu jawaban terbaik yang pernah saya temui @Stackexchange
explorest
wow, dan wow. dan karena saya harus mengetik beberapa karakter lagi untuk mengirimkan komentar ini, wow.
Amir Afghan
2
@ PrinceCoder setiap pengguna memiliki feed sendiri, Anda dapat mengikuti itu di beberapa pembaca RSS.
svick
12

Nah, salah satu hal terbesar untuk dipelajari adalah bahwa seringkali Anda tidak akan dapat membuat mereka bahagia karena Anda tidak akan memiliki kemampuan untuk memberi mereka apa yang mereka inginkan.

Manajer terbaik yang pernah bekerja untuk saya adalah orang-orang yang paling jujur, yang akan membela tim mereka dari semua omong kosong yang coba dilontarkan oleh manajemen tingkat atas kepada mereka, dan yang terutama MENDENGARKAN ke tim mereka.

ozz
sumber
2
Ada perbedaan besar antara manajer dan programmer senior. Saya belum pernah bertemu seorang manajer seperti yang Anda jelaskan. Tolong beritahu saya di mana saya dapat menemukannya ;-)
fretje
Cukup adil itulah yang dikatakan judulnya, tetapi pertanyaannya terus berbicara tentang bos. Saya memiliki banyak manajer / manajer yang baik dalam karier saya.
ozz
+1 @ames seseorang sepertinya telah mengedit judulnya. Dengan pertanyaan berdiri tentang lead / manajer. Kata "bos" terlihat garang, jadi saya memilih kata programmer senior.
Avatar
6

Saya sangat percaya bahwa salah satu bagian paling penting dari menjadi senior atau memimpin adalah ketersediaan untuk orang-orang junior. Lansia dan pemimpin sering memiliki tugas yang hanya mereka yang berhak melakukannya (kami tidak memberikan hak menulis kepada junior untuk dipentaskan dan dipancing misalnya). Plus bagian penting dari pekerjaan Anda adalah membimbing para junior yang berarti menjawab pertanyaan tanpa mengabaikan mereka. Semakin senior Anda, semakin besar kemungkinan Anda akan terganggu oleh orang lain yang membutuhkan sesuatu dari Anda. Anda harus menyerah pada tanda "jangan ganggu" dan belajarlah untuk bekerja dengan interupsi.

Mendengarkan itu penting.

Tolong dan terima kasih itu penting dan tidak ada biaya.

Jangan berharap lebih dari yang Anda mau berikan. Jika Anda ingin saya bekerja sampai jam 3 pagi, Anda sebaiknya ada di samping saya juga. Tidak ada yang lebih mengecewakan daripada bekerja untuk seseorang yang pergi tepat waktu setiap hari segera setelah memberi Anda tugas yang harus dilakukan pada jam 7 pagi.

Adil. Jangan main favorit (terutama jangan main favorit dengan memberi pacar Anda atau pacar terbaik). Perlakukan semua karyawan dengan hormat (bahkan orang yang secara pribadi tidak Anda sukai).

Jadilah yang menentukan. Jangan biarkan keputusan nongkrong sehingga tidak ada yang bisa maju atau lebih buruk mengubahnya setiap lima menit.

Berdiri untuk orang-orangmu. Anda tidak akan memenangkan mereka semua tetapi orang-orang akan berjalan melalui api untuk seseorang yang mendukung mereka dalam rantai.

Bersedia menjadi orang jahat jika perlu. Satu apel yang buruk dapat menghancurkan tim pengembang, jangan berpegang pada orang itu karena Anda tidak ingin menghadapi perilaku buruk mereka (ini lebih berlaku untuk calon pelanggan dan pengawas resmi). Ketika Anda memiliki berita buruk, beri tahu tim, jangan merahasiakannya (mereka akan mengetahui akhirnya dan kemudian mereka marah tentang kabar buruk dan penyimpanan rahasia). Anda tidak di sana untuk menjadi populer tetapi untuk menyelesaikan pekerjaan. Siapa pun dalam posisi manajemen atau semi-manajemen harus mau menjadi tidak populer.

Pelajari cara menjual ide kepada atasan dan mengajarkan keterampilan ini kepada devs Anda.

Memahami pentingnya domain bisnis dan menjadi ahli di dalamnya serta pemrograman.

HLGEM
sumber
3

Kata kunci di sini adalah kepercayaan dan tanggung jawab.

Anda hanya harus percaya bahwa anggota tim Anda kompeten dan fokus menyelesaikan tugas mereka. Dengan tidak terlalu banyak campur tangan, Anda pada dasarnya membiarkan mereka "memiliki" tanggung jawab atas pekerjaan mereka.

IMHO, ini saja tidak keajaiban dalam menciptakan suasana yang sehat.

Jas
sumber
2
Asalkan mereka adalah sopan kompeten dan termotivasi. Jika tim diwarisi apa adanya, sayangnya ini tidak diberikan. Jika Anda memilih anggota sendiri, tentu saja ini cerita yang berbeda.
Péter Török
1
Nah, menurut saya, bahkan mereka yang tidak terlalu kompeten, ketika diberi tanggung jawab penuh, alias "kepemilikan" atas bagian dari proyek akan melakukan - semuanya - yang diperlukan untuk menyelesaikan pekerjaan mereka. Saya bahkan tidak peduli jika sebagian dari kode dikumpulkan dengan mengajukan pertanyaan di forum dan forum, selama pekerjaan itu selesai.
Jas
sayangnya saya telah bertemu contoh tandingan :-( Dalam kasus terburuk yang saya lihat, seorang pengembang tidak menghasilkan apa-apa ketika dia diberi kebebasan dan tanggung jawab penuh selama sekitar dua bulan - ternyata, dia bahkan tidak datang ke tempat kerja. Beberapa orang tidak menarik beban dalam tim, dan jika Anda membiarkan mereka berlari bebas tanpa pengawasan ketat, Anda hanya memperburuk keadaan. Jika Anda tidak menyingkirkan orang-orang ini tepat waktu, mereka dapat merusak seluruh tim.
Péter Török
@ Péter Török - tentu saja, semua orang tahu beberapa orang di setiap perusahaan (sebenarnya membaca ini saya pikir Anda tahu orang yang sama dengan saya :). Tetapi dari pengalaman saya, kebanyakan orang fokus dan berusaha melakukan yang terbaik.
Jas
Saya setuju, kebanyakan orang mencoba melakukan yang terbaik. (Atau harus saya katakan semua orang mencoba untuk melakukan / nya terbaik - hanya untuk beberapa, "terbaik" tidak memukul ambang noticeability :-) Satu masih harus waspada memperhatikan pengecualian dalam waktu -? Karena ada yang pengecualian. Sama seperti dalam kode produksi, kita harus menangani kasus kesalahan dengan benar, meskipun jarang terjadi dalam keadaan normal.
Péter Török
3

Baiklah IMO Saya mengharapkan pengembang senior / pemimpin / apa pun untuk berpihak pada tim pengembangan terhadap hal-hal seperti tenggat waktu bodoh, tidak ada sumber daya selain diharapkan untuk membangun Roma, mandat lembur, dll. Semua hal yang mengurangi produktivitas dan membuat orang tidak bahagia.

Hal utama yang harus dihindari IMO adalah menjadi "ya-man" bagi manajemen tingkat atas dan selalu menyetujui apa pun yang mereka katakan (pencium keledai, dengan kata lain)

Wayne Molina
sumber
+1: Benar. Dan jika Anda menemukan diri Anda melaporkan ke 'Ya-Man', tinggalkan ASAP.
Jim G.
1
Sayangnya, ada banyak lingkungan di mana programmer senior / pemimpin / manajer tidak lain adalah Ya-Man (atau seperti saya lebih suka menyebutnya, "Smithers"), dan bagian terburuknya adalah sebagian besar waktu Anda tidak akan mengetahuinya sampai setelah Anda mengambil pekerjaan itu.
Wayne Molina
3

Keterampilan Orang. Kadang-kadang orang diberi gelar "Senior" dan mereka lupa bahwa mereka tidak mahatahu. Mereka merasa promosi ini adalah komentar atas keterampilan teknis tertinggi dan kejeniusan laten mereka. Pada kenyataannya mereka adalah manajer level super rendah sekarang. Mereka harus memahami bagaimana dan siapa yang harus memotivasi, siapa yang dibiarkan, bagaimana berkompromi, dan kapan mendengarkan.

Kepemilikan. Pemrogram senior terburuk tidak mengambil kepemilikan atas apa yang mereka "senior". Mereka kembali pada taktik kerja-dodgery dan menyalahkan game yang mengarah ke promosi mereka (lebih dari mungkin sambil menari di kuburan orang yang mereka lempar di bawah bus). Sekarang mereka perlu memahami pantat mereka di gendongan dan bahwa itu tanggung jawab mereka untuk memiliki desain, rencana, dan sebagian besar pekerjaan.

Pengalaman. Saya berharap pengembang senior telah melihat semuanya dua kali. Mereka harus memahami domain dan teknologinya. Mereka harus secara agresif menyerang risiko dan dapat menemukan waktu membuang ikan haring merah.

nsfyn55
sumber
2

Konsistensi adalah salah satu hal terpenting. Jika pengembang dapat memprediksi bagaimana Anda akan bertindak, mereka akan lebih bahagia. Bahkan jika Anda terus-menerus alat total lebih baik maka kadang-kadang menjadi keren dan beberapa kali menjadi alat. Itu dikatakan jangan menjadi alat.

Erin
sumber
2

Pengetahuan dan komunikasi. Mengetahui sumber dan banyak, lebih , lebih penting lagi dapat menjelaskannya kepada siapa pun, dengan cara yang mereka akan mengerti dan pertahankan.

Covar
sumber