Peran Tertulis Manajer Pengembangan Perangkat Lunak [ditutup]

62

Kita semua tahu apa yang dilakukan manajer pengembangan perangkat lunak, tetapi saya khawatir kita hanya mengetahuinya secara samar . Kami pikir kami tahu apa yang dia lakukan, tetapi untuk merinci apa lingkup pekerjaannya agak sulit.

Menurut Anda, apa peran manajer pengembangan perangkat lunak?

Graviton
sumber
1
Ringkasan yang bagus untuk mengingatkan seseorang tentang apa yang dilakukan manajer teknik. Letakkan di desktop Anda dan kunjungi lagi ketika Anda memiliki keraguan, atau berada dalam situasi yang sulit saat mengelola tim Anda.
jkk

Jawaban:

100

Berbicara sebagai seseorang dalam pekerjaan (yang juga telah menjadi pengembang), hal-hal kunci yang harus saya lakukan adalah:

  • Jaga agar tim pengembangan tetap pada jalurnya (dan berbahagia jika mungkin) - gerakkan segala sesuatunya dengan cara yang dapat menghentikan mereka bekerja jika memungkinkan, jelaskan mengapa tidak mungkin di mana mereka tidak dapat dipindahkan untuk mencoba dan mengurangi tekanan yang timbul (orang lebih cenderung menerima sesuatu jika mereka setidaknya memahaminya). Pada akhirnya jika ada konflik antara proyek dan tim yang tidak dapat diselesaikan, biasanya proyek akan menang. Itu tidak selalu membuat Anda populer di tim tetapi Anda dibayar untuk mengirimkan proyek / produk, bukan sebagai pemimpin serikat. Keterampilan yang jelas adalah dalam meminimalkan seberapa sering ini terjadi.

  • Pastikan tim berkomunikasi dengan pelanggan dalam jumlah yang tepat . Ini cenderung menjadi bagian yang sama menjauhkan pelanggan dari tim, dan memastikan tim menanyakan kepada pelanggan tentang hal-hal yang tidak mereka pahami sepenuhnya (bukan hanya membuat asumsi yang mungkin salah). Pengembang sangat besar dalam memastikan bahwa pelanggan tidak mengganggu mereka dan kadang-kadang lupa bahwa pelanggan mungkin memiliki sesuatu yang berguna untuk ditambahkan.

  • Perencanaan proyek dan memprioritaskan konflik sumber daya, permintaan pelanggan, masalah dukungan dan sejenisnya. Saya cenderung menjadi orang yang mengatakan bahwa pelanggan ini lebih diprioritaskan daripada yang itu, atau bahwa bug ini harus diperbaiki sebelum dikirimkan tetapi orang itu bisa keluar sebagai masalah yang diketahui.

  • Kelola sisi komersial pengembangan - yaitu memastikan bahwa hal-hal yang harus dibebankan dan ditagih untuk dan bahwa kami tidak mencoba mengenakan biaya untuk hal-hal yang harus dicakup dalam dukungan.

  • Jadilah suara tim dalam bisnis dan bisnis dalam tim - bantu semua orang memahami posisi pihak lain dan bantu selesaikan perbedaan di mana mereka muncul. Ini sebagian besar cenderung mencakup konflik budaya antara kebutuhan / keinginan tim dan organisasi yang lebih besar, dan masalah anggaran. Ini sebenarnya cukup menyebalkan karena artinya ketika ada ketidaksepakatan Anda adalah musuh semua orang.

  • Bekerja dengan tim untuk memastikan proses dan alat yang memadai tersedia untuk memenuhi persyaratan bisnis dan pelanggan . Pastikan bahwa proses ini diikuti dan disesuaikan sesuai kebutuhan. Beberapa di antaranya adalah memastikan tim mendefinisikan proses (misalnya untuk hal-hal teknis yang mereka pahami lebih baik daripada saya), beberapa mendefinisikannya sendiri (untuk hal-hal yang saya pahami lebih baik daripada yang mereka lakukan - merencanakan, memperkirakan, dan sebagainya). Kata yang penting di sini cukup - Anda tidak ingin proses demi proses tetapi ada hal-hal yang harus terjadi dan proses adalah cara terbaik untuk mencapai itu secara konsisten.

  • Pastikan bahwa setiap anggota tim bekerja pada tingkat yang paling masuk akal , dan lebih dari itu. Bekerja bersama mereka untuk membantu menyelesaikan masalah apa pun yang mencegah mereka mencapai level ini. Saya ingin mengatakan bahwa peran saya adalah membuat mereka menjadi yang terbaik yang bisa mereka lakukan, tetapi sementara ini benar untuk beberapa tuntutan lainnya (proyek, anggaran, waktu) berarti bahwa ini hampir selalu akan dikompromikan ke tingkat yang lebih besar atau lebih kecil.

  • Melakukan semua administrasi dan memenuhi tuntutan organisasi (dan hukum)

Secara keseluruhan itu adalah bagian mentoring, sebagian kesekretariatan, sebagian manajemen proyek, sebagian manajemen akun dan sebagian PR (untuk tim). Ada banyak mengambil hal-hal yang tidak perlu dipikirkan atau tidak dipikirkan oleh pengembang, dan beberapa memastikan mereka melakukan hal-hal yang perlu mereka lakukan tetapi tidak ingin melakukannya.

Apa yang bukan tentang itu adalah menjadi pengembang terbaik (umumnya Anda terlalu lepas tangan untuk tetap terkini untuk waktu yang lama sehingga Anda harus menerima bahwa orang-orang akan tahu lebih banyak dari Anda - keahliannya adalah mengetahui di mana pengalaman Anda yang lebih lama tapi ketinggalan jaman lebih relevan daripada pengalaman mereka yang lebih pendek tetapi lebih baru) atau menjadi semacam diktator. Dalam hal itu, cara terbaik untuk memikirkannya bukanlah Anda lebih senior, hanya saja Anda memiliki tanggung jawab yang berbeda. Kadang-kadang ini melibatkan membuat panggilan terakhir pada sesuatu (yang mungkin bertentangan dengan pandangan tim) tetapi lebih sering harus tentang konsensus atau kompromi.

Jon Hopkins
sumber
3
+1 terlambat untuk jawaban yang menurut saya berguna.
Dan McGrath
3
Ini telah ditambahkan ke daftar "To Read" dengan catatan "berulang-ulang." Kata-kata bijak.
Andrew Ashbacher
1
Saya ingin berbicara sedikit tentang sesuatu yang Anda katakan, yaitu: "secara umum Anda terlalu lepas tangan untuk tetap saat ini lama". Saya memiliki ide yang sedikit berbeda dari apa yang manajer pengembangan adalah semua tentang, tapi dalam hal ini saya berpikir bahwa seorang manajer dev harus setidaknya menyadari apa yang terbaru-dan-terbesar adalah dan memahaminya pada tingkat tinggi. Saya yang pertama kali mengakui bahwa minum dari firehose tanpa menumpahkan setetes itu tidak bisa ditawar tetapi faktanya, ada sangat sedikit konsep baru yang menghantam kita setiap hari.
Eric Smith