Bagaimana saya berhasil sebagai pengembang utama? [tertahan]

47

Saya telah menjadi pengembang utama dalam proyek tertentu, tetapi saya mengalami kesulitan fokus pada gambaran besar dan memastikan semua bagian dari proyek tercakup.

Apa yang harus saya ingat ketika mengelola proyek ini? Bagaimana saya bisa memastikan semuanya ditangani sebagaimana mestinya?

NichtUebel
sumber
3
Tolong jelaskan, "Sulit bagi saya untuk menyimpan gambaran umum dan gambaran besar proyek" Apa yang sulit? Apa yang mengganggu Anda? Masalah apa yang Anda miliki Apa yang ingin Anda lakukan?
S.Lott
Bisakah Anda lebih menggambarkan situasi Anda? Apakah ini tim besar? Apa harapan Anda sebagai Pemimpin? (kepemimpinan teknis? manajemen ruang lingkup? arsitektur dan desain?) Apakah ada Manajer Proyek? Manajer produk?
Al Biglan
1
Tidak cukup lama untuk menjadi jawaban nyata, tetapi beberapa orang tidak cocok untuk peran ini. Saya sering melihat ini.
Bill

Jawaban:

53

Saya telah melihat perjalanan ini ke pengembang lain saat mereka beralih ke senior atau memimpin. Berikut adalah beberapa saran yang saya buat untuk orang lain.

  • Memahami apa tujuan dari proyek ini.

Seringkali ini bukan tentang semua fitur yang telah didorong ke dalam proyek. Ini tentang serangkaian fungsi inti yang menangani kebutuhan bisnis. Ingatlah selalu hal ini karena itulah tujuan utama Anda.

  • Perincian apa yang perlu dilakukan dalam tugas. Memahami ketergantungan di antara mereka.

Memecah proyek seharusnya cukup mudah. Hancurkan itu sedini mungkin dalam proyek. Jika Anda harus mengabaikan bagian-bagian, pahami bahwa hal itu menimbulkan risiko sampai Anda memahami apa yang harus dilakukan.

  • Memahami apa pertanyaan terbuka atau ambiguitas proyek.

Anda tidak akan dapat menyelesaikan semua ambiguitas pada awalnya (meskipun Anda harus mencoba). Pastikan manajer Anda dan pemangku kepentingan proyek memahami apa mereka dan risiko apa yang mereka timbulkan terhadap proyek.

  • Bisnis benci kejutan.

Pastikan semua orang tahu (idealnya setiap hari, tetapi mingguan berfungsi) apa status proyek itu. Dan berdasarkan status yang saya maksud adalah apa yang telah dilakukan, apa yang tersisa untuk dilakukan, pertanyaan terbuka, masalah, dll. Apa pun yang dapat berdampak pada penyelesaian proyek harus dilaporkan.

  • Setiap hari, perhatikan gambaran besarnya.

Anda harus pergi ke gambaran besar setiap hari selama satu jam. Tanyakan pada diri Anda pertanyaan. Apa yang sudah selesai? Apa yang tersisa untuk dilakukan? Apa saja pertanyaan terbuka? Apa tujuannya? Anda harus dapat memberi seseorang status terperinci dari proyek kapan pun mereka bertanya.

dietbuddha
sumber
5
+1 terutama untuk dua poin terakhir. Keduanya sangat penting.
konfigurator
42

Saran pertama yang akan saya berikan kepada Anda adalah menerima bahwa mengelola tim lebih penting daripada melakukan tugas pemrograman Anda sendiri. Itu berarti ketika Anda memiliki 3 junior yang membutuhkan bantuan, itu adalah tugas Anda untuk membantu untuk tidak mengeluh tentang bagaimana hal itu membuat Anda menjauh dari perkembangan. Sebagai petunjuk, Anda sering menjadi penghalang untuk maju jika Anda terlalu fokus pada tugas pengembangan Anda sendiri terlebih dahulu.

Selain itu Anda perlu belajar mendelegasikan. Sulit untuk memberikan tugas kepada seseorang ketika Anda dapat melakukannya dengan mudah dalam satu jam dan Anda tahu mereka akan menggelepar selama sehari. Namun, mereka tidak akan pernah maju kecuali mereka mendapatkan tugas dan Anda akan bekerja lembur saat tim Anda bermain.

Selanjutnya, jangan pernah memperbaiki kode orang lain. Beri tahu mereka apa yang salah (dan mengapa) dan buat mereka memperbaikinya. Atau Anda akan mendapatkan siklus di mana Anda harus memperbaiki semuanya karena mereka tidak mendapatkan yang lebih baik. Jika mereka tidak dapat memperbaikinya, maka pertimbangkan apakah mereka harus tetap berada di tim. Jangan biarkan anggota tim yang lemah tetap tinggal karena Anda memperbaiki semua yang mereka lakukan.

Sebagai pemimpin, Anda bisa menjadi orang jahat dan memberi mereka berita yang tidak menyenangkan (baik ke atas dan ke bawah rantai). Itu sesuai dengan pekerjaan juga. Itu berarti Anda harus melakukan penilaian kinerja yang buruk; Anda harus memberi tahu mereka bahwa tenggat waktu telah ditingkatkan atau persyaratan telah berubah; Anda perlu mendorong pria malas yang tidak membuat kemajuan; dan Anda harus memberi tahu atasan Anda kapan batas waktu tidak akan dipenuhi dan mengapa serta apa yang Anda lakukan tentang itu. Menjadi pemimpin bukan tentang disukai, tetapi tentang menjadi efektif. Tugas Anda adalah mengeluarkan perangkat lunak, bukan mencari teman. Komunikasi adalah kunci dan menghindari berita buruk akhirnya membuat situasi menjadi lebih buruk. Seorang klien jauh lebih mungkin untuk menangani diberitahu bahwa itu akan menjadi tiga minggu lagi sebulan sebelum peluncuran daripada ketika tanggal peluncuran berlalu dan kemudian Anda memberi tahu mereka bahwa Anda perlu tiga minggu lagi.

HLGEM
sumber
1
Pikiran besar.
Roy Tinker
8
juga sinopsis yang bagus tentang mengapa orang umumnya tidak menginginkan pekerjaan itu.
Kevin
2
@ Kevin, jarang kenaikan gaji yang sebanding dengan tanggung jawab tambahan pimpinan teknologi dan kemudian umumnya hanya jika Anda ingin dipromosikan ke pekerjaan yang hanya manajemen. Jika Anda ingin tetap teknis, saya telah melihat banyak orang menjadi pemimpin teknologi dan kemudian meminta untuk menjadi pengembang senior lagi.
HLGEM
31

Ini daftar periksa informal saya. Ini sangat informal ... Saya tidak melakukan segalanya setiap hari, tetapi jika saya tidak melakukan semua hal ini setiap minggu, saya menjadi sedikit khawatir, dan jika saya tidak memukul mereka setiap bulan, saya harus panik. Dan jarak tempuh bervariasi seluruhnya berdasarkan budaya perusahaan / tim, gaya pribadi, dan jenis proyek.

  • Berbicaralah dengan tim secara individu - apakah semua orang di tim Anda - memiliki pekerjaan yang bermanfaat untuk dilakukan? tahu apa tujuan keseluruhan produk dan rilis saat ini? apakah mereka tahu bagaimana Anda menghasilkan uang dan apa tujuan utama bisnis Anda? apakah mereka tahu bagaimana pekerjaan mereka saat ini cocok dengan semua itu?

  • Berbicaralah dengan tim secara kolektif - buat mereka semua bersama-sama dengan berita besar, buat grup bersama untuk memastikan komunikasi terjadi dengan dan tanpa Anda. Sebagai tim kecil, ini mungkin sesi strategi kelompok. Ketika tim semakin besar, itu akan menjadi kasus bahwa Anda harus membimbing mereka melalui poin utama, dan itu pasti akan menjadi Anda yang berbicara dengan mereka. Itu tidak salah - ada kalanya sangat penting bahwa setiap orang mendengar Anda mengatakan informasi publik kepada semua orang . Jadi semua orang tahu bahwa Anda memberikan informasi secara universal. Tetapi pertemuan "Anda-untuk-semua orang" sangat berbeda dari pertemuan strategi kelompok di mana Anda lebih sebagai panduan.

  • Cicipi pekerjaan tim - cobalah untuk mendapatkan sedikit survei dari pekerjaan semua orang. Baca kode mereka, jalankan fungsinya, coba kotak uji mereka. Jangan bertujuan 100% dari pekerjaan semua orang, cobalah untuk mengambil sampel sedikit dari semua orang. Beri mereka umpan balik, tetapi juga serahkan bidang kekuatan dan kelemahan di seluruh tim.

  • Periksa dengan manajemen Anda lebih awal dan sering - ini bukan penciuman cokelat, ini terus berlanjut. Jika Anda tidak tahu apa yang dibutuhkan manajemen Anda dan apa yang dipikirkan manajemen Anda, lalu bagaimana mungkin tim Anda memenuhi harapan? Anda harus memiliki repore yang sangat baik dengan bos Anda dan Anda harus berada di timnya, seperti orang-orang Anda di tim Anda. Mampu berkomunikasi secara efektif dengan bos pada hal-hal sepele meningkatkan kepercayaan diri bahwa Anda akan bisa mendapatkan bantuan dan pemahaman yang jelas ketika krisis menghantam. Ini juga merupakan pemeriksaan realitas yang baik untuk di mana blinds gambar besar Anda berada.

  • Tinjau sumber daya tim secara berkala - orang akan memekik ketika sumber daya yang sebelumnya tersedia tidak tersedia, tetapi tinjau untuk titik-titik rasa sakit yang tidak diketahui. Di mana chokepoint Anda? Apakah ada alat baru yang bermanfaat untuk dimiliki? Sebagian besar tim memiliki seorang lelaki yang saya anggap sebagai Pemburu Alat yang selalu cepat pada gadget terbaru dan terhebat. Seimbangkan percakapan antara Tool Hunter dan GuyWhoHatesSegala sesuatu yang baru untuk menemukan titik berikutnya untuk evolusi. Alat termasuk semuanya - SW, HW, ruang fisik, sumber belajar.

  • Ketahui dan tetap terhubung dengan tim pendukung. Setiap perusahaan berbeda, tetapi ketahuilah orang-orang yang bertanggung jawab atas kendali mutu Anda, penulisan dokumen, hukum, fasilitas, keuangan, dan setiap kelompok pendukung lain yang unik untuk bisnis Anda. Mereka adalah pemicu gambaran besar terbaik yang bisa saya pikirkan, karena mereka melihat dunia yang sama sekali berbeda dari Anda.

  • Ketahui pesaing Anda - habiskan setidaknya beberapa waktu setiap minggu untuk mencari tahu bagaimana seseorang akan memecahkan masalah yang dipecahkan produk Anda jika mereka tidak menggunakan produk Anda. Mungkin bukan perusahaan tunggal, tetapi apa yang ditawarkan solusi lain yang tidak Anda miliki?

  • Tinjau biaya dan jadwal- Seberapa besar kemungkinan tim Anda mengartikan tenggat waktu mereka saat ini? Bagaimana dengan tenggat waktu berikutnya? Berapa tingkat membakar biaya Anda? Berapa besar pembelian mendatang yang belum Anda bayar? Apa yang tersisa dari anggaran Anda? Rinciannya berbeda dengan cara Anda melakukan pelacakan keuangan, tetapi bahkan di perusahaan yang sangat informal, Anda harus memiliki gagasan tentang berapa hari / minggu / bulan anggaran yang Anda miliki dan berapa tenggat waktu Anda untuk produk saat ini. Di suatu tempat, entah bagaimana seseorang sebaiknya merencanakan "berapa banyak orang yang kita butuhkan untuk melakukan pekerjaan ini?" dan "dapatkah kita membayarnya bulan depan / kuartal / tahun?" Anda perlu mengetahui angka-angka itu dan memberi masukan pada langkah selanjutnya. Anda memerlukan rencana yang sangat jelas untuk minggu depan yang dapat Anda jelaskan sekarang jika seseorang masuk dan bertanya. Anda perlu rencana yang cukup bagus untuk bulan depan, itu hanya akan berubah di 2-3 tempat ketika realitas melanda. Anda perlu rencana samar untuk kuartal ini dan seorang jenderal dari atas kepala Anda untuk tahun ini. Melewati itu, bahkan dalam proyek besar, jumlahnya hanya angka. Dengarkan mereka, tetapi sadari bahwa tidak ada yang masuk darah.

Itu saya di bagian atas daftar kepala saya. Saya biasanya menambahkannya ketika saya dipukul terbalik oleh "kejutan" (bayangkan saya sensitif terhadap suatu daerah yang saya lewatkan dan kemudian saya bisa melipatnya ke dalam daftar periksa. ).

Juga - bersiaplah untuk Switch Konteks Dread. Jika Anda baru memulai dalam manajemen, kemungkinan Anda memiliki tim kecil dan seseorang di manajemen berpikir bahwa Anda boleh meluangkan waktu untuk mengelola tim dan beberapa waktu melakukan hal-hal kontributor individu. Ini bisa dilakukan, tetapi perubahan konteks antara keduanya adalah kasar. Rencanakan untuk itu. Blokir waktu untuk beralih (seperti sebelum dan sesudah makan siang) dan ketahui keahlian Anda yang kurang dipraktikkan dan sadari bahwa Anda perlu menyeret diri Anda ke sana beberapa kali pertama - jadi pesanlah waktu untuk melakukan sesuatu "gambaran besar" dan pikirkan bahwa Anda akan membutuhkan setidaknya dua jam untuk benar-benar mendapatkan tempat.

Switch konteks berfungsi dalam dua arah - manajemen langsung bekerja dan sebaliknya. Tetapi ketika Anda pergi dari titik kekuatan dan latihan Anda ke tempat Anda yang tidak nyaman dan kurang berlatih maka Anda merasakan lebih banyak rasa sakit dan dorongan untuk mundur kuat. Ketahuilah di sana dan lawanilah dan sadari bahwa meronta-ronta dalam gambaran besar membuat Anda lebih baik dalam mengambil semuanya. Beri diri Anda waktu untuk meronta-ronta.

bethlakshmi
sumber
5
"Seimbangkan percakapan antara Tool Hunter dan GuyWhoHatesEverythingBaru untuk menemukan titik berikutnya untuk evolusi." Suka.
Hugh
12

Baca buku ini: Menggiring Kucing: Primer untuk Programmer yang Memimpin Programer

Beberapa waktu yang lalu saya menghadiahkan buku ini untuk bos saya dan dia menyukainya. Ketika saya membacanya, sepertinya dia tahu apa yang dia bicarakan. Dan ini benar. Penulis menceritakan tentang pengalamannya sendiri. Bukan kumpulan "kebenaran sederhana" manajer - ini adalah kata-kata mantan programmer. Dan harus dipahami bahwa itu adalah pengalamanNYA, tetapi pengalaman Anda mungkin berbeda. Jadi, pada beberapa hal Anda harus terlihat kritis. "Manajer tidak bisa lagi menjadi programmer - ini penting".

Evgeny Gavrin
sumber
6

Ketika saya mengambil alih kepemimpinan teknis sebuah perusahaan kecil baru-baru ini pada suatu produk yang tidak saya kembangkan, yang menurut saya sangat membantu dalam mengelola berbagai hal adalah untuk mendokumentasikan cara kerja produk dalam bahasa Inggris - fitur yang saya dokumentasikan dalam mentimun, dan untuk internal Saya menulis penjelasan tentang model objek dan mengalir melalui berbagai pengontrol. Apa yang saya temukan dalam melakukan itu adalah bahwa A) produknya sedikit berantakan :) Dan B) Saya belajar jauh lebih cepat bagaimana aplikasi itu bekerja, jadi saya bisa memiliki percakapan yang cerdas tentang masalah apa yang ada dan apa yang perlu dilakukan refactoring, atau apa yang diperlukan untuk mengimplementasikan fitur yang diberikan.

Gambar juga membantu — saya tidak main-main dengan produk-produk seperti Visio, saya hanya menggunakan krayon dan kertas kosong (sungguh, saya lakukan - saya bekerja dari rumah dan sering bersama anak saya yang berusia 2 tahun) tetapi apa pun yang berfungsi untuk Anda adalah apa yang harus Anda gunakan.

karmajunkie
sumber
4
Dulu saya memiliki pekerjaan di mana saya mewarisi meja penyusunan yang tidak diinginkan orang lain. Saya melakukan semua desain database saya pada pena dan kertas karena Visio terlalu lambat untuk mendesain. Saya dapat membuat desain database di atas kertas sekitar 1/10 waktu yang dibutuhkan untuk membuat dokumen desain di Visio.
HLGEM
4
Saya tidak bisa memberi tahu Anda alasannya tetapi saya tampaknya berpikir lebih cepat ketika saya harus memperlambat menulis. Saya bahkan kode di atas kertas ketika saya terjebak pada suatu masalah. Membunuh pohon di altar produktivitas ... :)
karmajunkie