Bagaimana saya bisa maju dari pengembang perangkat lunak menjadi manajer perangkat lunak atau pemimpin tim? [Tutup]

42

Saya telah menjadi pengembang perangkat lunak (baik paruh waktu atau penuh) selama hampir 3 tahun. Saya selalu menjadi tipe orang yang memiliki bakat untuk memimpin dalam hal-hal, dan menyediakan organisasi untuk menyelesaikan sesuatu. Sejak saya memimpin proyek desain senior saya di perguruan tinggi, saya merasa ini adalah panggilan saya yang sebenarnya, bukan duduk di belakang meja coding. Sekarang, saya tahu saya perlu memahami cara membuat kode untuk pengembang lain agar benar-benar menghargai saya. Juga, saya sangat suka coding. Saya bekerja pada banyak proyek sampingan di rumah di luar pekerjaan, mengikuti praktik-praktik pengkodean terbaik, dan mencoba dan terus meningkatkan pengetahuan saya tentang domain.

Pertanyaan utama saya adalah, jenis hal atau peluang apa yang harus saya perhatikan yang akan membantu saya meningkatkan karir saya ke peran yang lebih manajerial, daripada peran pengkodean. Seperti yang saya katakan, saya suka kode, namun saya lebih suka bisa merancang hal-hal pada tingkat tinggi, dan mengatur tim sedemikian rupa untuk menyelesaikan sesuatu, dan memantau kemajuan mereka, sambil membantu dengan teknis keputusan di sana-sini. Hal-hal semacam ini benar-benar membuatku bahagia, bukan hanya duduk di belakang meja sambil menulis sepanjang hari.

Jelas salah satu impian utama saya adalah memproduksi beberapa jenis perangkat lunak sendiri yang pada akhirnya akan meledak dan menjadi besar, dan kemudian mulai merekrut tim dan melakukan semuanya sendiri, tetapi saya merasa peluang yang terjadi jauh lebih buruk. dari sekadar mengubah jalur karier saya sedikit untuk mencapai tujuan yang saya inginkan. Saya merasa seperti saya bisa mendapatkan kepuasan yang sama dengan melakukannya untuk majikan daripada diri saya sendiri. Meskipun saya belum merasakan hal itu sebelumnya, saya merasa seperti itu terutama karena saya tidak melakukan apa yang SAYA SANGAT ingin lakukan.

Adakah tips, petunjuk, atau hal-hal yang perlu diingat? Siapa pun yang telah melakukan ini, dan jika demikian, bagaimana Anda melakukannya?

agas
sumber
Jenis pendidikan apa yang Anda miliki? Berapa lama Anda berada di posisi Anda saat ini?
Thomas Owens
Saya memiliki gelar Bachelor of Science di bidang Ilmu Komputer. Saya telah berada di posisi saya sekarang selama sekitar satu tahun.
1
@slandau Saya secara eksplisit akan menyebut bahwa Anda tidak ingin memasuki peran PM. sementara itu mungkin muncul sebagai arah yang jelas; deskripsi dan keinginan Anda berbeda dari peran PM dan saya tidak percaya peran PM akan menjadi apa yang Anda inginkan pada akhirnya.
Aaron McIver
1
@ HarunMcIver Tergantung tempat Anda bekerja. Beberapa PM adalah bisnis, beberapa PM lebih bersifat teknis. Di beberapa tempat, "manajer teknik" mungkin merupakan gelar yang lebih umum, atau di tempat lain, mungkin hanya "insinyur perangkat lunak".
Thomas Owens
2
Baiklah, pertama, serahkan jiwamu ... :-)
Paul Tomblin

Jawaban:

41

Pindah dari peran pengembangan perangkat lunak ke peran manajerial atau kepemimpinan adalah sesuatu yang membutuhkan waktu. Saya mengambil jurusan rekayasa perangkat lunak, menekankan proses rekayasa perangkat lunak, dan mempelajari manajemen bisnis dan komunikasi. Bahkan dengan pengalaman akademis tentang bagaimana mengelola proyek perangkat lunak, cara merekrut dan merekrut, bagaimana memimpin tim, dan bagaimana berkomunikasi dengan kelompok secara lisan dan tertulis, saya menemukan bahwa sebagian besar peran manajerial dan kepemimpinan, terutama dalam industri yang saya inginkan untuk bekerja, membutuhkan 5+ tahun pengalaman dalam rekayasa perangkat lunak (saya memiliki 2, termasuk koperasi dan magang).

Sementara itu, saya hanya melanjutkan studi saya pada topik manajemen proyek.

Hal pertama yang saya sarankan adalah menjadi komunikator dan negosiator yang baik. Pelajari cara melakukan percakapan yang penting. Bahkan sebagai pengembang, ada keputusan yang harus dibuat, dengan rekan kerja, klien, dan pengguna. Terkadang Anda harus memiliki percakapan yang sulit dan mencapai kesepakatan yang menguntungkan semua orang. Ini bukan tujuan yang mudah, tetapi buku Conversation Sulit: Bagaimana Mendiskusikan Apa yang Paling Penting adalah salah satu yang saya akan merekomendasikan yang mencakup ini. Ada yang lain, seperti Getting Past No dan Getting to Yes: Bernegosiasi Perjanjian Tanpa Memberi yang juga akan membantu. Ini relevan terlepas dari apa posisi Anda.

Di sisi yang lebih teknis, pemahaman tentang siklus pengembangan perangkat lunak penting untuk memimpin dan mengelola tim perangkat lunak. Posisi kepemimpinan mungkin berarti bahwa Anda terlibat dengan rekayasa persyaratan, arsitektur sistem perangkat lunak, desain, implementasi, pengujian dan jaminan kualitas, dan tugas pemeliharaan. Meskipun Anda tidak bisa menjadi ahli dalam semua ini, seorang manajer atau pemimpin setidaknya harus memahami semuanya. Sebagai pengembang, Anda mungkin melakukan sebagian besar pekerjaan Anda dalam desain, implementasi, dan pemeliharaan, dengan beberapa pengujian juga. Saya akan sangat merekomendasikan buku-buku seperti Persyaratan Perangkat Lunak (dan itu adalah pendamping, Lebih Lanjut Tentang Persyaratan Perangkat Lunak ), Arsitektur Perangkat Lunak dalam Praktek (meskipun universitas saya beralih keArsitektur Sistem Perangkat Lunak: Bekerja Dengan Stakeholder Menggunakan Sudut Pandang dan Perspektif setelah saya mengambil kursus arsitektur, dan telah direkomendasikan kepada saya), dan Metrik dan Model dalam Rekayasa Kualitas Perangkat Lunak .

Dari perspektif manajemen proyek, Anda dapat belajar tentang model dan metodologi proses. Ada beberapa metode yang gesit, seperti Scrum dan Extreme Programming dan metode yang digerakkan oleh rencana seperti Waterfall dan Spiral. Ada juga kerangka kerja metodologi, seperti CMMI dan Proses Perangkat Lunak Pribadi / Proses Perangkat Lunak Tim. Yang relevan dengan Anda bergantung pada tempat Anda bekerja, dalam hal industri dan perusahaan. Ada sejumlah buku tentang berbagai metodologi dan kerangka kerja, tetapi saya akan sangat menyarankan Pengembangan Cepat: Menjinakkan Jadwal Perangkat Lunak Liar untuk manajemen rekayasa perangkat lunak umum dan proses rekayasa perangkat lunak.

Jika Anda ingin melanjutkan pendidikan, Anda dapat melihat lebih banyak jalur manajemen teknis dibandingkan lebih banyak jalur manajemen bisnis. Jika Anda menginginkan posisi manajemen teknis, lihat rekayasa perangkat lunak, manajemen rekayasa perangkat lunak, dan program manajemen rekayasa. Untuk lebih dari jalur manajemen bisnis, Anda dapat mempertimbangkan program MBA, manajemen bisnis, atau beberapa program manajemen teknik yang memiliki komponen ekonomi atau keuangan yang kuat.

Thomas Owens
sumber
1
Ya, tetapi bagaimana Anda benar-benar pindah dari insinyur perangkat lunak senior ke manajer? Maksud saya, seandainya saya merasa seperti saya tahu semua hal yang Anda sebutkan di atas, apa yang saya lakukan sekarang untuk membuktikan bahwa saya dapat melakukannya mengingat saya tidak memiliki pengalaman peran manajer resmi dan hanya perasaan bahwa saya benar-benar mengetahui semua hal itu? Bagaimana seseorang mengambil langkah ini?
trusktr
19

Jawaban-jawaban lain ini bagus tetapi saya akan memasukkan $ 0,02 saya. Saya telah pindah dari pengembang junior di perusahaan saya saat ini melalui peringkat ke pengembang senior dan kemudian memimpin tim dan sekarang arsitek. Butuh beberapa tahun. Setiap kali saya diberi promosi itu karena saya sudah melakukan aspek pekerjaan, dan manajemen saya hanya mengakui itu dan memberi saya gelar yang sesuai. Jadi saran saya adalah jangan menunggu untuk diberitahu bahwa Anda adalah seorang pemimpin teknis atau manajer. Mulailah mengambil tanggung jawab yang dimiliki orang-orang dalam peran itu. Setelah beberapa bulan atau satu tahun Anda akan menemukan bahwa pada dasarnya Anda melakukan pekerjaan yang Anda targetkan, dan Anda bisa menunjukkannya kepada manajemen Anda jika mereka tidak menyadarinya.

RasionalGeek
sumber
2
Saya dipecat karena melakukan persis apa yang Anda katakan di satu perusahaan (dan manajer yang memecat saya kemudian meninggalkan perusahaan juga). Itu tidak cocok. Rasanya seperti selalu berjuang untuk mendapatkan posisi teratas di perusahaan, sangat kompetitif dan egosentris. Jauh lebih baik berada di perusahaan di mana ketika orang mengambil inisiatif untuk mencoba dan mencapai hal-hal yang lebih besar daripada yang telah mereka lakukan sebelumnya mereka menerima dukungan, dorongan, dan arahan dari mereka yang sudah lebih tinggi.
trusktr
9

Saya tidak akan berusaha memberikan jawaban lengkap karena Thomas Owens sudah mendaftar beberapa saran yang sangat bagus (+1 untuk itu).

Hanya ingin menambahkan beberapa tips / saran:

  1. Jangan menunggu seseorang membuat Anda memimpin; mulailah melakukannya. Maksud saya tidak bertentangan dengan bos Anda saat ini, tetapi sebaliknya mengambil inisiatif untuk membantunya. Jika bos Anda seperti saya, dia biasanya kelebihan beban dengan terlalu banyak tugas / pertemuan di piringnya. Jika dia melihat bahwa Anda memberikan arahan di mana ia mungkin tidak memiliki cukup waktu untuk mengikutinya, kemungkinan besar dia akan dengan senang hati mendelegasikan beberapa tanggung jawab manajemen kepada Anda. Seiring waktu, jika Anda melakukan ini dengan benar, atasan Anda akan mendelegasikan lebih banyak dan lebih banyak kepada Anda (lebih sedikit untuk dia khawatirkan) dan dia akan lebih cenderung mendukung Anda dalam mengambil lebih banyak tanggung jawab ke titik di mana Anda memimpin resmi.
  2. Perlu diingat bahwa membangun tim dan kepemimpinan lebih tentang sosiologi daripada teknologi (dari salah satu buku metodologi perangkat lunak populer, mungkin Brooks). Sebagai petunjuk, tujuan Anda adalah memahami orang dan bagaimana mereka berperilaku, yang sangat berbeda dari memahami cara kerja komputer. Tanpa kesadaran ini, insinyur yang baik membuat beberapa pemimpin tim terburuk karena mereka tidak melakukan perubahan mental ini dan menyadari bahwa Anda tidak dapat mengendalikan orang dengan cara yang sama seperti Anda mengendalikan mesin. Faktanya, satu-satunya pendekatan yang tampaknya berhasil adalah tidak mengendalikan orang sama sekali tetapi memberi mereka arahan. Baca, baca, dan terus baca buku / artikel / blog tentang kepemimpinan. Satu buku yang bisa saya rekomendasikan adalah Manajemen 3.0

... dan sekarang saya akan meninjau tautan yang diposkan Thomas

DXM
sumber
Ini adalah saran yang buruk, menunjukkan bahwa seseorang melakukan sesuatu yang bosnya tidak minta mereka lakukan, sebagian besar bos tidak suka pada orang-orang yang melakukan hal-hal yang tidak diminta mereka lakukan.
Profesor pemrograman
Saya menjawab pertanyaan ini 5 tahun yang lalu, ketika saya masih seorang pengembang. Sekarang kembali ke sana, saya bisa membacanya dari sudut pandang seorang manajer. @Bonner - Anda benar. ada manajer berbeda dengan gaya berbeda di luar sana. Beberapa orang akan mengernyit Anda jika Anda melakukan sesuatu yang tidak disuruh. Dalam hal ini, saran saya kepada Anda adalah melarikan diri dari manajer itu. Sejak saya menjadi pemimpin, semua yang saya lakukan adalah mengajari orang-orang saya untuk berpikir secara mandiri dan membuat saya tergantikan. Saya meminta masing-masing untuk menyeimbangkan antara fokus sempit dari tugasnya sendiri (s) tetapi juga melihat ke depan untuk dirinya sendiri dan melihat gambar yang lebih luas.
DXM
5

Saya pribadi tidak memiliki keinginan untuk meninggalkan posisi saya saat ini, tetapi tergantung di mana kita berada dalam siklus rilis saya habiskan di mana saja dari 10% hingga hampir 100% dari waktu saya untuk tugas selain coding. Jika Anda sabar dan jeli, ada banyak peluang yang dapat Anda ambil untuk melakukan sesuatu selain "hanya coding" di posisi Anda saat ini. Sebagai contoh:

  • Sukarelawan untuk membimbing anggota tim baru.
  • Menjadi ahli dalam alat, proses, atau teknologi baru yang sedang dipertimbangkan untuk diadopsi oleh perusahaan.
  • Relawan untuk komite lintas fungsi.
  • Bicaralah tentang ide-ide yang Anda miliki.
  • Undang diri Anda merancang rapat untuk fitur yang akan datang.

Biarkan manajer Anda tahu bahwa Anda tertarik pada peluang semacam ini, dan dengan asumsi Anda melakukan dengan baik dengan tanggung jawab Anda saat ini, dia akan mengarahkan peluang ke arah Anda ketika peluang itu muncul. Inisiatif penting artinya. Kebanyakan manajer setidaknya akan membiarkan Anda mengamati bahkan jika mereka tidak berpikir Anda memenuhi syarat saat ini.

Karl Bielefeldt
sumber
4

Jika Anda ingin pindah ke peran manajemen proyek maka tidak ada salahnya untuk mengambil kelas malam dan bekerja menuju MBA Anda.

Pilihan lain adalah dengan melihat sertifikasi Badan Manajemen Pengetahuan Proyek PMBOK . Banyak tempat tidak akan mempertimbangkan Anda kecuali jika Anda memiliki beberapa tahun pengalaman kepemimpinan yang sebenarnya atau salah satu dari dua item yang tercantum di atas.

PMBOK adalah ujian yang sangat sulit dan membutuhkan BANYAK studi untuk lulus. Saya juga berpikir bahwa mereka memiliki persyaratan tentang manajemen proyek yang sebenarnya dan pengalaman kepemimpinan hanya agar memenuhi syarat untuk mengikuti tes.

maple_shaft
sumber
3
Mungkin ini hanya saya, tetapi saya akan cenderung menuju gelar manajemen teknik perangkat lunak atau gelar manajemen teknik, terutama jika Anda ingin masuk ke manajemen teknis atau kepemimpinan. Saya telah melihat insinyur mendapatkan gelar MBA dan didorong ke sisi bisnis program perangkat lunak, tidak benar-benar mengelola atau memimpin insinyur.
Thomas Owens
@ Thomas Owens, itu catatan yang bagus. Saya selalu ragu untuk mendapatkan gelar MBA karena saya tidak yakin apakah itu akan diterjemahkan ke sebagian besar tempat teknis atau tidak.
fitnah
Ujian PMP tidak terlalu sulit.
Orang bodoh
@Morons, saya akan melakukan apa yang dikatakan beberapa PM tentang pengalaman mereka, saya tidak pernah mengambilnya sendiri. Tetapi sekarang, setelah saya memikirkannya, kedua orang ini tidak begitu pintar.
maple_shaft
2

Bagi saya itu kedengarannya seperti Anda mungkin ingin bekerja menuju Manajemen Proyek. Sejumlah besar posisi PM dalam pengembangan perangkat lunak juga membutuhkan pengalaman pengkodean.

Saya akan mencari posisi di mana Anda dapat tumbuh dalam tanggung jawab yang akan membuat Anda manajemen / pemimpin kapal yang Anda inginkan. Naik tangga, bisa terlihat berbeda berdasarkan cara kerja di mana Anda bekerja. Tetapi bahkan dengan jumlah pengalaman pengkodean yang lebih kecil, posisi PM tersedia jika Anda memiliki kepemimpinan, pengalaman manajemen.

D ..
sumber
Ini dinyatakan dalam pertanyaan awal: "... jenis hal atau peluang apa yang harus saya perhatikan yang akan membantu saya memajukan karir saya ke peran yang lebih manajerial, daripada peran pengkodean ...". @slandau sedang mencari saran tentang cara melakukan ini.
Thomas Owens
1
Ya saya setuju. Apakah Anda punya tips bagaimana saya akan mulai bekerja ke arah itu?
fitnah
Ya saya tidak sengaja menekan tombol posting sebelum saya bermaksud.
D ..
@D .., Saya memiliki beberapa pengalaman kepemimpinan tetapi semuanya ada di proyek sampingan dan proyek yang saya lakukan di perguruan tinggi ... tidak yakin apakah itu cukup. Apakah itu?
fitnah
Kemungkinan besar tidak, Anda ingin mengarahkan ke pengalaman kerja profesional yang memberi Anda itu. Anda mungkin merasa lebih mudah untuk bekerja ke arah peran pengembang senior di beberapa tempat. Saya akan mengawasi posisi terbuka melakukan apa yang Anda inginkan, melihat persyaratan dan mengambil kesempatan yang Anda bisa untuk mendapatkan yang paling umum. Sebagian besar tempat saya telah bekerja kecil, dan memungkinkan saya untuk naik ke tingkat berikutnya tanpa banyak usaha. Lihatlah pekerjaan Anda saat ini ... dapatkah Anda pindah ke sana? Mungkin Anda memiliki jalur yang ditentukan dari tempat Anda berada sekarang yang dapat Anda manfaatkan.
D ..