Adakah klien yang berpikir tentang memperkirakan biaya pengangkutan proyek dari bahasa A ke bahasa B. Apa cara terbaik untuk mengumpulkan permintaan proposal untuk melakukan ini?
Adakah klien yang berpikir tentang memperkirakan biaya pengangkutan proyek dari bahasa A ke bahasa B. Apa cara terbaik untuk mengumpulkan permintaan proposal untuk melakukan ini?
Jawaban:
Jika tujuannya hanya untuk mereproduksi satu aplikasi persis ke dalam bahasa baru, saya sarankan Anda membicarakan hal itu dengan klien Anda. Porting adalah salah satu hal yang paling berbahaya yang dapat Anda lakukan karena semua orang kebiasaan yang datang karena mereka diimplementasikan dalam Bahasa A dapat diandalkan oleh pengguna akhir, dan tiba-tiba Anda harus menciptakan mereka di Bahasa B . Hal-hal buruk. Belum lagi porting adalah biaya yang benar-benar hangus yang mereka tidak pernah bisa berharap untuk pulih.
Saya akan menyarankan memperlakukan proyek seperti yang lain dan mengumpulkan persyaratan dan memperkirakan seolah-olah aslinya tidak ada. Anda mungkin akan menemukan bahwa pengguna akhir memiliki perspektif baru tentang produk sejak menggunakannya. Jika Anda akan menulis ulang, mungkin lebih baik.
Jika Anda sudah memiliki basis kode Perl, Anda tahu jumlah baris kode (LOC). Lihat apakah Anda dapat menemukan perbandingan ekspresif antara Perl dan Bahasa B. Inilah salah satu contohnya.
Katakanlah Bahasa B adalah Java. Kemudian LOC yang ditebak waktunya untuk port akan menjadi sekitar empat kali LOC dari yang asli (ekspresifitas 6 berbanding 1,5).
Kemudian gunakan sesuatu seperti perangkat lunak Construx Estimate dalam mode LOC untuk memperkirakan berapa lama Anda (dan berapa banyak orang yang diperlukan).
Itu akan memberi Anda perkiraan biaya dan waktu rata-rata, serta beberapa gagasan tentang seberapa besar kemungkinan Anda akan melampaui batas.
Jika Anda sudah mahir di Bahasa B dan telah menjalankan beberapa proyek terukur di dalamnya, Anda dapat menggunakan perangkat lunak Construx Estimate untuk mengkalibrasi untuk tim Anda.
Joels artikel paling populer , 'Things You Should Never Do' mengatakan itu yang terbaik: Mereka melakukannya dengan membuat kesalahan strategis terburuk yang dapat dilakukan oleh perusahaan perangkat lunak:
Mereka memutuskan untuk menulis ulang kode dari awal.
Jika Anda akhirnya menulis ulang, tulis ulang dengan benar dan jangan hanya porting:
Menurut saya, ini akan memakan banyak waktu. Anda lebih baik yakin itu sepadan. Coba ambil bagian dari kode dan porting. Lipat gandakan berapa lama waktu yang dibutuhkan oleh rasio baris kode yang Anda portingkan dengan total baris kode. Ini akan memberi Anda angka rata-rata, yang asli akan lebih tinggi oleh beberapa mulitple yang paling mungkin.
Secara efektif Anda menulis aplikasi lagi dari awal tetapi memiliki persyaratan yang ditentukan dalam bahasa lain, itu tidak sepele.
Saya pikir pertama dan terutama, Anda harus benar-benar mempertimbangkan apakah ini pilihan yang baik. Apa keuntungan menggunakan bahasa B daripada bahasa A?
Saya pikir IBM memiliki penyelidikan yang mengatakan bahwa programmer menulis, rata-rata, 100LOC per jam. Masih ada lebih banyak pengembangan daripada itu, tetapi arsitektur lama masih direncanakan. Katakanlah 50% akan menulis kode, karena programnya masih direncanakan, kan? (Bisa jadi Anda memiliki program terstruktur dan Anda ingin yang berorientasi objek dan itu akan menjadi tugas yang lebih besar).
Tetapi jika seseorang akan menulis 100LOC / jam, bagi jumlah LOC saat ini dalam sistem dan kalikan dengan penjualan rata-rata seorang programmer dan kalikan dengan 2. Ini mungkin memberikan perkiraan kasar. Jangan menganggap angka yang Anda dapatkan sangat serius. (bahkan lebih baik, jangan menganggapnya serius sama sekali). Apa yang ingin Anda lakukan tergantung pada cara banyak hal untuk mengukur, seperti:
Itu tergantung pada berapa banyak waktu yang Anda miliki. Beberapa opsi:
Dalam dunia yang ideal, saya akan mengusulkan kepada klien bahwa mereka membayar tugas investigasi untuk mencakup satu bulan pekerjaan untuk membiarkan Anda membuat prototipe apa yang akan Anda lakukan. Itu memberi mereka pilihan untuk berhenti dan tidak maju jika biayanya terlalu besar. DAN, Anda masih dibayar untuk pekerjaan yang Anda lakukan.
Hanya ada satu cara untuk mendapatkan perkiraan yang layak untuk tugas perangkat lunak. Tugaskan staf yang tersedia untuk melakukan bagian tugas yang kecil namun dapat diuji dari tugas SEPENUHNYA, dan lihat berapa lama waktu yang dibutuhkan. Pisahkan pekerjaan yang tersisa menjadi sebanyak mungkin kasus penggunaan, dan minta staf yang sama memperkirakan setiap iterasi dibandingkan dengan pekerjaan yang sudah dilakukan. Jangan meminta mereka untuk memperkirakan waktu, minta mereka untuk memberitahu Anda bagaimana membandingkannya dengan iterasi pertama. Ini akan memberi Anda estimasi terbaik untuk sisa proyek.