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?
sumber
Jawaban:
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.
sumber
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.
sumber
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:
... dan sekarang saya akan meninjau tautan yang diposkan Thomas
sumber
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:
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.
sumber
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.
sumber
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.
sumber