Pertanyaan yang harus Anda tanyakan pada diri Anda adalah bagaimana penjual tahu bahwa fitur tersebut akan dikenakan biaya x hari kerja pengembang. Mengingat bahwa bahkan manajer proyek yang baik dengan pengalaman profesional bertahun-tahun sering tidak dapat mengatakan hal itu, data seperti itu berasal dari tenaga penjualan yang tampaknya sangat ... spekulatif .
Menurut pengalaman saya, penjual biasanya tidak membuat perkiraan, tetapi tebak tentang berapa banyak yang terlalu banyak untuk manajemen atau pelanggan: jika manajemen siap untuk membayar 50 orang-minggu kerja, tetapi benar-benar akan menolak 75 orang-minggu, mari kita katakan bahwa fitur tersebut akan memakan waktu 70 man-minggu sementara siap untuk melakukan negosiasi ulang (sesuatu yang tidak mungkin untuk perkiraan nyata) hingga 55 man-minggu.
Di satu sisi, Anda memiliki perkiraan yang dilakukan oleh para pakar TI yang mengatakan sesuatu seperti:
Menurut audit khusus ini, kami menghabiskan $ 8.000 per hari menggunakan teknologi yang sudah ketinggalan zaman dibandingkan dengan proyek serupa dengan ukuran yang sama yang menggunakan teknologi yang lebih baru. Tampaknya juga perlu 50 hingga 80 man-minggu untuk memigrasi seluruh basis kode; selama ini, tidak akan ada fitur baru yang dirilis. Ada juga risiko 10% bahwa bermigrasi komponen tertentu dapat mengakibatkan 20-30 minggu kerja tambahan.
Di sisi lain, Anda memiliki dugaan yang dilakukan oleh salesman, berdasarkan pada leverage mereka ketika bernegosiasi dengan orang yang mereka butuhkan untuk meyakinkan.
Ini semua tentang seberapa besar pengaruh Anda di perusahaan Anda. Komunikasi adalah kunci di sini, dan di sinilah salesman biasanya menang atas profesional TI ketika datang untuk menjelaskan manfaat fitur untuk manajemen (atau pelanggan).
Perhatikan bahwa jika di masa lalu, perkiraan Anda cukup tepat, Anda mendapatkan reputasi dan pengaruh. Jika perkiraan Anda selalu salah, manajemen mungkin akan mengabaikan proposal Anda.
Adapun perkiraan, sangat sulit untuk membuat yang berharga di sini, karena ada sejumlah besar parameter untuk dipertimbangkan. Diantara yang lain:
Apakah Anda benar-benar tahu seberapa terampil tim Anda di C # dibandingkan dengan VB6? Apakah ini berdasarkan pengukuran aktual atau hanya tebakan?
Sudahkah tim ini mengembangkan proyek besar dalam C #? Apakah mereka tahu alat yang harus mereka gunakan (IDE, debugger, profiler, dll.)? Apakah Anda memerlukan lisensi tambahan (yang, di dunia Microsoft, berarti ribuan dolar per mesin)?
Apakah proyek saat ini benar-benar jelas dan Anda dapat menjamin bahwa tidak akan ada kejutan ketika bermigrasi? Apakah langsung menulis ulang semuanya , setiap fitur, atau akankah ada kejutan?
Apakah Anda memiliki infrastruktur yang mendukung C #? Bagaimana dengan integrasi berkelanjutan? Bagaimana dengan server build Anda? Panduan gaya? Catur statis?
Dalam produksi, apakah server (jika ini adalah aplikasi web) atau PC pelanggan (jika ini adalah aplikasi desktop) dapat menjalankan versi .NET Framework yang Anda harapkan untuk digunakan?
Tetapi yang paling penting adalah untuk mengetahui mengapa Anda ingin menulis ulang semuanya. Apa masalah yang Anda coba selesaikan melalui penulisan ulang? Hilangnya produktivitas? Bagaimana Anda mengukurnya? Bagaimana Anda menunjukkan hilangnya produktivitas ini bagi manajemen?
Setelah Anda menunjukkan bahwa Anda membuang-buang, katakanlah, $ 8 000 per hari karena VB6 (yang berarti Anda akan menghemat $ 8 000 per hari setelah Anda bermigrasi ke C #), bagaimana Anda menjelaskan manfaat memegang setiap pengembangan fitur baru dan fokus pada penulisan ulang yang lengkap? Apa manfaatnya dibandingkan dengan penulisan ulang progresif tempat Anda memigrasikan komponen Anda dalam potongan kecil satu per satu, sementara mengirimkan fitur baru?