Menurut pengalaman pribadi saya, itu persis kebalikan dari apa yang dikatakan Pemdas : dengan latihan, saya baru mengerti bahwa sama sekali tidak mungkin untuk memperkirakan berapa banyak waktu yang dibutuhkan suatu tugas. Pada awal karir saya dalam pengembangan perangkat lunak, saya sering memberikan perkiraan seperti "45 hari", "lima minggu", dll., Kemudian berusaha sangat keras untuk menyelesaikannya tepat waktu. Beberapa tahun kemudian, saya mulai memberikan perkiraan yang kurang tepat seperti "sekitar satu bulan", "lima hingga tujuh minggu", dll. Sebenarnya, saya mencoba untuk tidak memberikan perkiraan apa pun, atau meminta pelanggan untuk memberikan perkiraannya sendiri atau tenggat waktu atau saya memberikan perkiraan sekasar mungkin.
Mengapa begitu sulit untuk memiliki perkiraan? Karena hampir mustahil untuk mengetahui bagaimana seluruh kode sumber akan ditulis sebelum benar-benar menulisnya, dan karena pekerjaan Anda bergantung pada hal-hal acak ketika orang lain bekerja, motivasi Anda, dll. Berikut adalah daftar yang lebih rinci dari alasan yang mungkin:
Tidak mudah untuk mengetahui apa sebenarnya yang diperlukan untuk melakukan suatu produk, dan terutama bagaimana melakukannya . Sangat sering saya memulai beberapa bagian aplikasi, daripada, setelah berhari-hari bekerja, mengerti bahwa pendekatan pertama saya salah, dan bahwa ada cara yang lebih baik dan lebih cerdas untuk melakukan sesuatu.
Beberapa masalah mungkin timbul . Misalnya, jika, untuk memulai pekerjaan Anda, Anda harus menginstal pada server Anda SQL Server yang mewah dan instalasi gagal dan dukungannya tidak ada, Anda mungkin menghabiskan waktu berminggu-minggu untuk menyelesaikan masalah ini.
Persyaratan seringkali tidak cukup jelas , tetapi setelah membacanya di awal, Anda mengira begitu. Kadang-kadang Anda dapat memahami bahwa berarti 'A', dan, setelah mulai menerapkannya, Anda akan melihat bahwa mereka mungkin berarti 'B'.
Pelanggan suka mengubah persyaratan mereka tepat ketika Anda baru saja menyelesaikan bagian yang bersangkutan , dan mereka benar-benar tidak mengerti mengapa Anda meminta dua minggu lagi dan $ 2000 untuk melakukan perubahan kecil , karena mereka tidak melihat bahwa perubahan kecil ini mengharuskan untuk mengubah hal-hal lain, yang perlu mengubah orang lain, dll.
Anda tidak dapat memperkirakan motivasi Anda . Ada hari-hari ketika Anda dapat bekerja berjam-jam dan berhasil dengan baik. Ada beberapa minggu ketika, setelah menulis sepuluh baris kode, Anda beralih ke Programmer StackExchange, dan menghabiskan berjam-jam membaca dan menjawab pertanyaan.
Keadaan menjadi sangat buruk ketika perkiraan Anda bergantung pada orang lain . Misalnya, dalam satu proyek 2 bulan saya harus menunggu seorang desainer untuk melakukan pekerjaannya untuk menyelesaikan sendiri. Perancang ini membutuhkan waktu 3 bulan sebelum memberikan sepotong omong kosong yang tidak dapat digunakan. Tentu saja proyeknya terlambat.
Perkiraan Anda juga tergantung pada pelanggan Anda . Saya memiliki pelanggan yang menghabiskan waktu berminggu-minggu sebelum menjawab surat mereka. Ini benar-benar dapat mempengaruhi jadwal Anda ketika Anda harus menunggu jawaban mereka (misalnya jika Anda meminta mereka untuk memenuhi persyaratan).
Apa yang bisa kau lakukan?
Berikan jadwal yang lebih besar . Jika Anda pikir Anda bisa melakukan pekerjaan itu dalam dua minggu, katakan Anda akan mengirimkannya dalam satu bulan.
Menjadi jelas . Jika Anda mengandalkan perancang, pengembang lain, dll., Katakan itu. Alih-alih mengatakan "Saya akan mengirimkan produk dalam tiga bulan", katakan "Saya akan mengirimkan produk dalam dua bulan setelah perancang akan memberi saya file PSD."
Jelaskan bahwa jika persyaratan berubah setiap hari, proyek tersebut tidak akan dikirimkan tepat waktu.
Iris jadwal Anda . Memberikan bagian dari proyek besar tepat waktu lebih mudah.
Jangan pernah memberikan perkiraan saat Anda menggunakan produk yang tidak Anda kenal dengan baik atau, terutama, ketika Anda akan mengerjakan kode sumber orang lain: Anda tidak akan pernah bisa memprediksi seberapa buruknya kode sumber dan berapa banyak waktu yang akan Anda habiskan memahami dan menyalin-menempelkannya ke The Daily WTF.