Bagaimana Anda tahu berapa banyak programmer yang dibutuhkan proyek tertentu untuk berhasil?
Perusahaan tempat saya bekerja memenuhi pesanan untuk perusahaan klien. Kami telah menulis sistem manajemen gudang in-house yang menangani manajemen inventaris berbasis lokasi, pemrosesan pesanan, pembuatan bill-of-lading, penagihan, pengauditan dan pelaporan barang (mungkin 50 laporan). Ini juga memiliki fungsi pemindaian barcode dan portal klien bersama dengan puluhan fitur lain yang lebih kecil. Ini juga mencakup kunci waktu karyawan penuh. Terintegrasi dengan Quickbooks, UPS dan FedEx. Ini menangani pekerjaan untuk setidaknya 50 klien, semuanya sedikit berbeda dalam fungsinya. Misalnya, kami mengimpor pesanan dari file yang dikirim oleh pelanggan tetapi setiap pelanggan mengirimkan format file yang berbeda (csv, excel, flat file, dan layanan web) sehingga kami memiliki lebih dari selusin pengaturan metode konversi pesanan. Ekspor adalah cerita yang sama.
Proyek ini kompleks dan berkembang dalam kompleksitas setiap hari dengan lebih dari seperempat juta baris kode. Ini sekitar 250.000 baris kode VB.NET, 6.200 baris kode Ruby dan mungkin 5.000 baris PHP. Ini juga memiliki database MySQL dengan sekitar 200 tabel.
Karena persyaratan yang terus berubah dan kebutuhan yang berbeda dari puluhan klien, kode itu sendiri sangat bervariasi dalam kualitas dari sangat miskin ke kode yang relatif baik.
Saat ini, proyek ini hanya memiliki satu programmer - sendiri. Saat ini saya juga melakukan semua dukungan produk untuk perusahaan kami yang terdiri dari 75 orang. Itu termasuk pemecahan masalah dan pengaturan klien baru dan semua fitur baru yang diperlukan. Plus, kami mencoba untuk menulis ulang semuanya menjadi 100% berbasis Ruby on Rails. Dan kami ingin memasarkan seluruh sistem dalam satu tahun ke depan atau lebih untuk digunakan oleh perusahaan lain.
Saat ini, kami hanya memiliki diri saya sebagai seorang programmer tetapi saya tidak percaya itu sudah cukup. Apakah ada yang punya rekomendasi untuk berapa banyak programmer yang harus memiliki proyek sebesar ini atau bagaimana kita harus menentukan jawaban untuk pertanyaan itu? Terutama mengingat fakta bahwa manajemen ingin produk menjadi kualitas komersial tahun depan?
sumber
Jawaban:
Saya akan mengatakan setidaknya 5 orang. Satu untuk pengujian, satu untuk spesifikasi, dukungan dan dokumentasi dan 3devs. Ada banyak hal yang harus diuji dalam kasus Anda, jadi 50% tester khusus seharusnya tidak masuk akal. Seseorang yang menuliskan persyaratan dan meminta dukungan pelanggan untuk menyiapkan infrastruktur Anda untuk pengujian, dll. Harus ada di sana. Tiga pengembang yang saya rasa cukup rendah untuk proyek seperti ini. Bagian belakang yang besar yang terintegrasi ke banyak sistem pihak ketiga, dan lengkap lengkap dengan banyak laporan khusus. Saya ingin memilikinya.
Apa yang terjadi jika Anda pergi, sakit, berlibur, dll. Satu orang per proyek tidak pernah pintar. Juga tidak baik untuk sendirian karena Anda tidak berevolusi secara profesional tanpa rekan kerja. Saya bekerja cukup sering sendirian, membuat arsitektur baru dan sebagainya, sering kali dalam tim yang terdiri dari 5 pengembang, tetapi saya tidak pernah berevolusi sebanyak ketika saya berkata kepada rekan kerja, mari kita atur ini bersama-sama dan kita mengunci diri kita seminggu, berbicara, berdiskusi dan memilih kerangka kerja. Pemrograman pasangan sangat memberi dan tidak dapat dilakukan dengan satu pengembang, dan siapa yang akan membuat tinjauan kode jika Anda merasa tidak pasti? Jika Anda terjebak, siapa yang akan membantu Anda? Saya hanya akan melakukan proyek satu orang jika itu merupakan bagian dari ruang lingkup yang lebih besar dan dapat meminta sumber daya ahli jika diperlukan.
sumber
Selamat datang di dunia sumber daya yang kerap kali sulit !
Masalahnya bukan pada Ukuran Proyek vs Ukuran Tim. Itu kesalahpahaman yang sangat umum yang sering menyembunyikan masalah lain yang biasanya terkait manajemen. Masalahnya adalah semua tentang Lingkup . Anda perlu memutuskan apa yang bisa Anda capai dengan sumber daya Anda saat ini - alias Anda. Maka Anda perlu memutuskan apakah kapasitas Anda untuk menangani beban kerja cukup untuk menangani tugas dalam kerangka waktu yang telah Anda alokasikan. Dengan demikian kebutuhan proyek Anda harus diidentifikasi dan dicakup.
Ketika Anda memiliki gagasan tentang ruang lingkup persyaratan Anda, Anda dapat lebih mudah menentukan beban kerja yang diperlukan untuk mencapai hasil dalam jangka waktu tertentu. Jika sumber daya Anda cenderung digunakan secara berlebihan, maka Anda akan membutuhkan lebih banyak staf. Jika sumber daya Anda cenderung kurang dimanfaatkan, maka Anda mungkin dapat memindahkan tenggat waktu Anda lebih dekat, atau meningkatkan cakupan proyek Anda.
Jika insting Anda memberi tahu Anda bahwa Anda tidak memiliki cukup staf untuk mengelola proyek, Anda mungkin benar, tetapi Anda perlu memahami mengapa Anda memberi tahu Anda hal ini. Tidak cukup hanya dengan memiliki perasaan. Sebagai gantinya, Anda harus dapat memeriksa masalah secara ilmiah untuk memberikan bukti untuk mendukung naluri Anda, dan Anda harus siap menghadapi kemungkinan bahwa naluri Anda bahkan mungkin salah. Setelah Anda mengumpulkan bukti - Yaitu: mencakup proyek, maka Anda benar-benar perlu untuk duduk bersama manajemen Anda dan membuat kasus untuk mengurangi ruang lingkup proyek, atau meningkatkan sumber daya yang tersedia untuk memastikan keberhasilan proyek, berdasarkan pada bukti yang ada.
sumber
Keberhasilan produk / proyek akan tergantung pada komitmen perusahaan yang membayarnya. Jika mereka akan mempekerjakan lebih banyak programmer / staf pendukung, akan ada penurunan produktivitas yang melekat dari satu programmer, yang tahu harus melatih, mengajar, mengelola, dll. Bukan itu hal yang buruk .. tetapi akan ada menjadi penurunan sebelum peningkatan terjadi .. ada juga kebutuhan untuk analis bisnis, manajer, penjualan, dan dukungan produk setelah itu tersedia secara komersial ..
Hosting aplikasi komersial jauh lebih dari sekadar menciptakan platform yang solid. ada persyaratan dukungan, dukungan teknis, perbaikan bug, pelatihan pengguna, dll.
apakah Anda memiliki prosedur analisis / spek / estimasi yang baik? jika tidak, mulailah sekarang , Anda dapat melakukannya sendiri.
apakah Anda sedang melatih otak Anda saat ini? Jika demikian, bersiaplah untuk bekerja dua kali lebih keras jika Anda diharapkan untuk mengelola proses ini dan terus berkembang (menaikkan hak?) ..
dan inilah jawaban dari pengalaman saya sebelumnya dalam situasi yang sama dalam penetapan harga wilayah California Selatan:
5-6 orang && ~ 500k
1 Pemimpin Pengembang / pengelola pemakai semua topi (~ 100k - 120k)
2 pemrogram Sr (sangat mampu, mandiri) dengan pemahaman dan Keterampilan DB yang baik (2x ~ 80 - 100k)
1 Manajer Proyek untuk berinteraksi dengan Manajemen ($$?) Orang ini juga harus dapat memahami kebutuhan aplikasi, dan mengomunikasikan kebutuhan tersebut secara langsung ke programmer
1? (HTML / UI) pengembang? dengan keterampilan javascript (saya benci pemrograman UI / kode Markup)
1? Orang basis data? namun, sebagian besar programmer yang baik tidak memiliki masalah dalam membuat struktur data yang dapat diskalakan, namun, jika Anda akan masuk ke masalah optimisasi, Anda setidaknya ingin memiliki konsultan
sumber
1 programmer pada basis kode besar dengan semua tanggung jawab untuk mengkonfigurasi, menguji, berkomunikasi, mendukung, mendokumentasikan dan memperbaiki bug tidak akan punya banyak waktu untuk menulis kode baru atau menambahkan fitur (atau bahkan refactoring kode lama).
Hancurkan minggu Anda dengan persentase tugas-tugas wajib ini yang tidak memperluas bisnis dan Anda akan terkejut melihat betapa cepatnya manajemen mempekerjakan bantuan tambahan.
Proyek besar memiliki sejumlah overhead terkait yang tidak akan hilang (terutama jika menerapkan / menguji dengan klien baru sepanjang waktu seperti yang Anda bayangkan). Ini adalah alasan Anda memiliki rotasi dukungan dan dukungan secara umum; jadi beberapa dari mereka di tim punya waktu untuk mengerjakan fitur baru.
Anda mungkin juga ingin melihat buku-buku tentang estimasi perangkat lunak. Buku-buku ini mungkin kedengarannya tidak banyak bicara, tetapi memuat studi kasus menarik dari berbagai bidang dan mendukung klaim mereka dengan bukti.
sumber