Pilihan untuk programmer utama yang lebih suka pemrograman daripada memimpin? [Tutup]

19

Pada awal tahun ini saya dipromosikan menjadi pemimpin pengembang peran setelah pemimpin pengembang tim kami pindah ke departemen yang berbeda. Saya memiliki sekitar 5 tahun pengalaman kerja dan karena ketersediaan dan kinerja masa lalu saya adalah pilihan utama manajemen untuk memimpin proyek. Saya sedikit khawatir tetapi memutuskan itu adalah kesempatan yang baik untuk peningkatan karir dan pengalaman, jadi saya menerimanya.

Tetapi kesimpulan saya sejauh ini adalah bahwa saya tidak menikmatinya hampir sebanyak posisi pengembang saya sebelumnya. Meskipun saya telah berhasil memimpin tim 5 pengembang melalui beberapa rilis, saya hampir tidak pernah menyentuh kode apa pun. Sebaliknya saya melakukan perencanaan dan desain dan manajemen tim, bersama dengan ulasan kode. Kebutuhan untuk melacak banyak hal lagi, dan memiliki tugas yang direncanakan sehingga mereka dapat ditugaskan ke tim, benar-benar memberi saya sakit kepala paling setiap hari. Meskipun saya jarang bekerja lembur, saya merasa sangat lelah setiap hari ketika saya meninggalkan pekerjaan, dan tidak berpikir saya bahkan menikmati waktu di luar kerja sebanyak hasilnya.

Jadi pertanyaan saya: bagaimana Anda menangani, atau bagaimana Anda menangani situasi seperti itu? Untuk orang-orang dalam situasi yang sama, apakah Anda menemukan cara untuk mengelola tim, tugas, dan waktu Anda dengan lebih baik yang membuat Anda menikmati pekerjaan? Atau apakah Anda menemukan cara untuk transisi kembali ke posisi yang lebih berorientasi pengembangan? Saya tahu bahwa posisi pemimpin pengembang hampir selalu membayar gaji yang lebih tinggi, tetapi saya dapat melihat diri saya sampai pada titik di mana saya tidak terlalu peduli dengan uang dan promosi daripada saya tentang kesenangan saya pada pekerjaan saya saat ini.

Saya belum membicarakan hal ini dengan siapa pun di manajemen karena saya pikir saya harus mencoba menyesuaikan setidaknya satu tahun.

William Fontaine
sumber
"Saya belum membicarakan ini dengan siapa pun di manajemen". Kenapa tidak ?? Lari, jangan berjalan, ke manajemen dan jelaskan. Perusahaan / manajer yang baik akan memahami & mengatur ulang hal-hal yang menguntungkan semua orang - milik Anda dan mereka. Anda tidak ingin bekerja di perusahaan jenis lain
Mawg mengatakan mengembalikan Monica

Jawaban:

16

Jawaban yang saya berikan di sini adalah tebakan terbaik saya tentang apa yang berpotensi bekerja, tetapi saya belum melihatnya bekerja karena saya sendiri berusaha keluar dari situasi yang sama di mana Anda menemukan diri Anda sendiri. Semuanya masih menjadi pengalaman belajar bagi saya, tetapi saya melihat tren positif di tim saya.

Di perusahaan saya, saya dipromosikan menjadi pemimpin tim (mereka menyebutnya "pemimpin desain") dan karena kurangnya orang yang mengetahui produk dan memiliki pengalaman yang cukup, saya mengajukan diri untuk memimpin 2 tim yang berbeda. Beberapa bulan yang lalu "untuk membantu dengan jadwal", manajemen menggandakan ukuran 2 tim ini.

Suatu hal yang saya coba lakukan ...

  1. Jelaskan kepada semua orang (termasuk manajemen) bahwa posisi saya dan orang lain bukanlah tugas permanen. Setiap orang dipersilakan untuk melangkah ke atas, mengambil pandangan yang lebih luas dari proyek dan berpartisipasi dalam keputusan arsitektur / desain. Saya akan memiliki keputusan akhir (untuk saat ini) jika ada perselisihan tanpa resolusi, tetapi sejauh ini tidak pernah terjadi.
  2. Fokus untuk membantu orang lain berkembang dan tumbuh. Saya sudah (hampir filosofis) berdiskusi dengan pengembang yang berbeda pada waktu yang berbeda tentang pengkodean dan desain dan berbagai pendekatan untuk melakukan sesuatu. Beberapa diskusi tersebut terkait dengan pekerjaan yang sebenarnya, yang lain adalah latihan pemikiran murni. Saya memiliki seorang pria dengan pengalaman lebih dari 20 tahun, kembali ke rak bukunya dan mengambil buku C ++ karena dia tertarik tentang beberapa hal tingkat rendah yang saya lakukan dengan template meta programming. Diskusi-diskusi ini agak menular dan setelah Anda membahas topik-topik ini cukup lama, orang-orang mulai memikirkan hal-hal ini sendiri.
  3. Delegasikan sebanyak yang saya bisa ke orang lain. Meskipun saya melihat banyak hal, saya tidak berpartisipasi dalam setiap review kode tunggal. Sebaliknya saya melakukan review kode untuk orang-orang perantara kami dan saya membiarkan mereka melakukan review kode untuk beberapa orang yang lebih ramah lingkungan. Saya melihat ulasan kode sebagai lebih dari alat transfer pengetahuan, daripada "mari kita pastikan kita membaca setiap baris dan menemukan setiap bug yang mungkin".
  4. Setelah antarmuka didefinisikan dan desain dasar di tempat, saya membiarkan orang yang lebih baru memiliki kebebasan sebanyak mungkin pengkodean internal kelas. Ya, banyak dari kode itu masih jauh dari sempurna, tetapi akan diuji dan berfungsi. Jika melintasi batas subyektif tertentu dalam hal "bau kode" dan mereka belum refactored, saya akan menyarankan bahwa kelas-kelas tertentu harus dipecah atau disusun ulang. Kadang-kadang menyakitkan, tetapi ketika saya memeriksa kembali beberapa hari kemudian dan mendapat jawaban, "Saya benci mengakuinya, tetapi kode ini terlihat jauh lebih baik sekarang", yang benar-benar memberi saya perasaan hangat dan kabur.
  5. Tantang orang. Alih-alih hanya menetapkan fitur bagi mereka untuk ditambahkan ke produk, minta mereka untuk menambahkan fitur-fitur itu, tetapi melakukannya tanpa menambah jumlah fungsi / data anggota di kelas yang ada. Jika Anda harus memasukkan sesuatu yang baru, Anda harus mengambil sesuatu yang sudah ada, dan meluangkan waktu untuk mencari tahu apa itu. Semua orang tahu tentang refactoring, tetapi tanpa kekuatan ekstra pada awalnya, tampaknya orang membutuhkan bantuan untuk melompat untuk benar-benar melakukannya. Paling tidak, saya membuat titik untuk mengunjungi titik ini selama hampir setiap ulasan kode.
  6. Semuanya tentang KESEIMBANGAN. Anda tidak bisa menjadi satu-satunya orang senior di tim yang mengawasi orang lain. Anda tidak dapat menghabiskan seluruh minggu Anda dalam rapat dan melakukan tinjauan. Anda tidak dapat berharap bahwa Anda akan menangkap setiap kesalahan yang dibuat tim Anda. Pada akhirnya, Anda perlu mengalokasikan waktu untuk diri Anda sendiri untuk menjadi pemimpin, tetapi Anda juga harus mengalokasikan waktu untuk menjadi pengembang. Saya akan menjadi gila jika saya tidak bisa kode. Bahkan dengan yang lainnya, saya masih memastikan saya punya waktu untuk menulis kode dan bukan hanya kode tetapi beberapa hal yang sangat, sangat bagus. Saya baru saja mendapatkan buku-buku pemrograman meta template dan mulai menggali di dalam Peningkatan. Orang-orang yang datang dengan hal-hal itu harus gila (dengan cara yang baik). Jika manajemen Anda mulai mengganggu Anda tentang mengapa tidak semuanya ditinjau atau mengapa noob meninjau kode noobs lain, Anda hanya perlu menjelaskan seluruh keseimbangan dan bahwa tim tidak memiliki cukup banyak orang yang berpengalaman dan pada akhirnya "itu adalah apa adanya". Jika tim Anda memiliki orang-orang senior, maka sudah saatnya memberdayakan dan memberi mereka kebebasan untuk melakukan desain / ulasan / membantu orang lain dan tidak memperlakukan mereka hanya sebagai generator kode. Dengan pemberdayaan, muncul kebebasan dan orang-orang menyukai kebebasan. Jika Anda memiliki pengembang yang tidak peduli dengan kebebasan / pemberdayaan, itu tidak masalah. Setiap tim masih membutuhkan coders murni, pastikan Anda mengusahakan keseimbangan. Saatnya memberdayakan dan memberi mereka kebebasan untuk melakukan desain sendiri / ulasan / membantu orang lain dan tidak memperlakukan mereka hanya sebagai generator kode. Dengan pemberdayaan, muncul kebebasan dan orang-orang menyukai kebebasan. Jika Anda memiliki pengembang yang tidak peduli dengan kebebasan / pemberdayaan, itu tidak masalah. Setiap tim masih membutuhkan coders murni, pastikan Anda mengusahakan keseimbangan. Saatnya memberdayakan dan memberi mereka kebebasan untuk melakukan desain sendiri / ulasan / membantu orang lain dan tidak memperlakukan mereka hanya sebagai generator kode. Dengan pemberdayaan, muncul kebebasan dan orang-orang menyukai kebebasan. Jika Anda memiliki pengembang yang tidak peduli dengan kebebasan / pemberdayaan, itu tidak masalah. Setiap tim masih membutuhkan coders murni, pastikan Anda mengusahakan keseimbangan.
  7. Waktu Anda sangat berharga. Jadi, minta tim untuk mengirimi Anda semua pertanyaan penting yang tidak dapat menunggu sehingga mereka bisa menunggu beberapa jam sebelum mendapatkan jawaban. Ketika pertanyaan diajukan, seluruh tim harus menyalinnya. Akhirnya, ketika Anda memiliki waktu istirahat di hari Anda, Anda dapat melihat masalah dan membantu orang itu, tetapi berkali-kali, orang lain mungkin telah mengalahkan Anda untuk jawabannya dan Anda tidak perlu melakukan apa pun. Jelas sebagai pemimpin, saya masih membuat diri saya tersedia dan membuat fakta itu jelas karena saya percaya bahwa salah satu tujuan saya adalah untuk memastikan tidak ada seorang pun di tim terjebak untuk waktu yang lama tanpa membuat kemajuan.
  8. Pastikan tim Anda menggunakan sebanyak mungkin alat untuk membuat komunikasi lebih efektif. Misalnya kami memiliki situs wiki dan setiap kali masalah yang sama muncul berulang kali, saya meminta orang terakhir yang saya bantu untuk membuat halaman wiki.
DXM
sumber
1
+1 jawaban yang bagus, banyak saran praktis. Delegasi dan keseimbangan adalah keterampilan yang sangat penting, untuk terus dikembangkan dan disempurnakan.
Péter Török
Saran yang sangat baik. +1 terutama untuk # 4; Saya telah melihat orang menghabiskan terlalu banyak waktu karena tidak berpikir seperti ini.
DarenW
Saya tertarik dengan ide Anda untuk menambahkan fitur tanpa menambahkan anggota kelas baru. Apakah Anda menemukan bahwa strategi ini berfungsi dengan baik?
Maks.
@ Maxm: Di luar pekerjaan saya suka bekerja di mobil. Saya juga mencoba mencoba-coba elektronik dan perangkat keras. Saya membawa banyak barang ke rumah. Pendekatan saya ke kelas, adalah pendekatan yang diambil istri saya: "jika Anda membawa sesuatu, Anda harus mengambil sesuatu". Saya tidak mengatakan tidak pernah menambahkan variabel atau metode baru, tetapi ada ambang tertentu di atas yang tidak bisa Anda tambahkan begitu saja. Jika kode Anda menjadi besar, kemungkinan Anda dapat mengambil potongan besar dan memecahnya menjadi satu atau lebih unit mandiri. Maka alih-alih monolit besar, Anda akan memiliki blok bangunan dan Anda dapat bergerak dan mengatur ulang sesuai kebutuhan
DXM
@ Maxpm: lupa menambahkan ... Ya, strategi itu bekerja dengan sangat baik dan itu adalah inti dari prinsip-prinsip SOLID yang saya sarankan agar semua orang terbiasa. Sudah cukup lama sejak saya harus berurusan dengan membusuk dalam kode saya.
DXM
4

Saya belum membicarakan ini dengan siapa pun di manajemen

Saya pikir Anda tahu ini mungkin akan membantu. Mengomunikasikan ketidaknyamanan Anda dengan suatu posisi tidak harus menentukan apa pun secara konkret. Itu membuat manajemen tahu kartu apa yang mereka pegang, dan jika itu manajemen yang baik, mereka akan mencoba dan menemukan cara untuk menggunakan potensi terbaik Anda. Jangan puas dengan yang kurang.

Ben Lakey
sumber
3

Ketika proyek Anda berakhir, cari posisi programmer yang lebih berorientasi di perusahaan Anda atau di luar itu.

Diskusikan dengan manajemen bahwa Anda ingin manajemen kurang dan "tangan" keterampilan lebih teknis.

Sepertinya Anda dalam posisi PM dibandingkan pengembang utama. Saya akan mempertimbangkan pengembang utama untuk mengkode lebih banyak.

Jon Raynor
sumber
Ya saya juga. Sayangnya beberapa proyek seperti itu, saya hanya kebetulan tidak seperti itu. Ada cukup banyak hal teknis untuk dikelola yang harus saya lakukan sebanyak 95%. Saya akan mencoba mengubah ini di masa depan.
William Fontaine
3

Perspektif pengusaha :

Jika Anda menikmati pekerjaan saat ini dan memiliki sejarah yang baik di sana maka saya ingin membuat Anda tetap dan akan menemukan tempat untuk Anda sehingga saya tidak perlu khawatir banyak tentang berbicara dengan mereka.

Pengembang yang hebat adalah hal yang berharga, tetapi Anda harus menjualnya bahwa Anda lebih pantas melakukan pengkodean dan mungkin mendesain daripada Anda yang bertindak juggling.

Beri mereka jalan untuk mendukung Anda dengan menyiapkan rencana suksesi. Pada dasarnya Anda menemukan seseorang di tim saat ini yang tertarik untuk melakukan hal-hal yang membuat Anda pusing, selama 6-9 bulan berikutnya Anda melatih mereka, memberi mereka tugas Anda satu per satu.

Pilih sesuatu yang mudah terlebih dahulu, seperti pembaruan status mingguan:

  • Tempatkan mereka di sebelah Anda ketika Anda melakukan pembaruan status.
  • Duduk di sebelah mereka saat mereka melakukan pembaruan status berikutnya.
  • Biarkan mereka melakukannya sendiri dan tinjau sebelum keluar untuk final.

Kemudian secara progresif berikan mereka tugas ekstra sampai Anda telah menyerahkan keagungan tanggung jawab tambahan Anda.

Alasan mengapa pekerjaan yang kurang diinginkan ini dibayar lebih tinggi adalah karena jika mereka tidak ada yang mau melakukannya, tidak sia-sia karena mereka membutuhkan tingkat keterampilan yang lebih tinggi ... penawaran dan permintaan.

Untuk tetap membuat Anda membayar lebih tinggi ... Jika itu saya, saya ingin mendengar bahwa Anda tinggal di sekitar, Anda akan membantu orang ini ketika diminta, akan menjadi mentor bagi orang yang lebih baru, akan menjadi desainer / otak kunci / ahli domain daripada pimpinan proyek. Pada dasarnya ini adalah posisi yang berharga, orang lain dapat melakukan berlarian dan bertindak juggling (untuk membayar lebih jelas).

Saya pikir jika Anda mempresentasikan rencana kerja 6-9 bulan kepada atasan Anda

  • Penjelasan yang baik tentang mengapa Anda berpikir lebih baik jika Anda kembali berfokus pada pengkodean terhadap tanggung jawab lainnya.
  • Siapa yang harus berlangganan ... atau apakah mereka harus menemukan seseorang ... ini akan menjadi penentu utama saya pikir.
  • Rach bulan selama 6 bulan apa tanggung jawab yang akan Anda serahkan kepada orang baru
  • Responsiblite apa yang akan Anda pikul (seperti desain, mungkin duduk di ulasan kode dll).
  • Gagasan tentang penurunan upah yang akan Anda ambil (di suatu tempat antara yang asli dan sekarang) meskipun biarkan mereka mengangkat ini.

Jika Anda menyatukannya sebagai rencana bagi saya, sebagai majikan, saya akan dengan senang hati bekerja sama dengan Anda dalam mewujudkannya.

Semoga berhasil.

Robin Vessey
sumber
1

Saya sudah persis dalam situasi Anda. jawabannya adalah hubungan yang Anda miliki dengan manajer Anda. Dalam kasus saya itu sangat bagus, jadi saya membawanya ke suatu hari dan mengatakan bahwa saya tidak menikmati pekerjaan, merasa terlalu stres dan ingin kembali ke pengkodean. Dia jauh lebih bahagia mendengarnya daripada membiarkan saya masuk dan keluar. Jadi kami menyusun rencana agar orang lain mengambil alih sebagai Ketua Tim dan saya kembali ke pengkodean.

drekka
sumber
0

2 pertanyaan yang tidak jelas dari pos Anda:

  • Apakah Anda berada di perusahaan yang secara langsung menghasilkan uang dari perangkat lunak yang Anda tulis (seperti Google, Microsoft, atau Fog Creek) atau apakah Anda berada dalam fungsi anak perusahaan (seperti di bank atau perusahaan makanan)?

  • Apakah CEO itu teknolog, atau seseorang yang bangkit melalui peran bisnis?

Jika Anda adalah perusahaan perangkat lunak dengan CEO teknolog, jangan khawatir. Kepemimpinan perusahaan akan tahu siapa pengembang yang berharga, dan akan melakukan apa pun untuk menjaga mereka. Jika eksekutif adalah semua orang yang mendapat garis "mengelola orang" atau "mengelola anggaran", khawatir. Berkepentingan ganda jika Anda berada di departemen TI internal. Jika ini masalahnya, maka Anda harus menerima bahwa keseimbangan kehidupan kerja yang baik adalah hadiah untuk tetap menjadi pengembang.

Satu poin terakhir - lakukan apa yang akan membuat Anda bahagia. Nasihat orang lain tentang pilihan karier seperti ini adalah tentang apa yang akan membuat mereka bahagia - dan ini tentang Anda.

MathAttack
sumber