Beberapa saran dari sisi gelap dari orang yang belajar dengan cara yang sulit.
Persyaratannya tidak jelas. Tidak ada yang melakukan analisis mendalam tentang semua implikasinya.
Jangan lakukan estimasi pada saat ini. Orang tidak memperkirakan berapa banyak tentara yang dibutuhkan untuk memenangkan pertempuran tanpa petunjuk tentang jumlah musuh. Perkiraan dibuat setelah pengintaian. Ini kecuali kamu sudah melawan musuh ini.
Fitur baru mungkin akan mematahkan beberapa asumsi yang Anda buat dalam kode Anda dan Anda segera mulai memikirkan semua hal yang mungkin harus Anda refactor.
Ini adalah tanggung jawab Anda untuk dipertimbangkan kecuali Anda mengharapkan orang lain memiliki keahlian tentang bidang ini.
Anda memiliki hal-hal lain untuk dilakukan dari penugasan sebelumnya dan Anda harus membuat estimasi yang memperhitungkan pekerjaan lain itu.
Sama seperti di atas, bahkan untuk pekerjaan tak terduga yang dibuat oleh rekan tim jorok di sebelah Anda dengan prosedur pengujian yang hampir tidak ada yang menyebabkan kode Anda salah bahwa Anda tidak dapat memprediksi dengan sempurna sebelumnya. Ini adalah ramalan cuaca.
Definisi 'selesai' mungkin tidak jelas: Kapan akan dilakukan? 'Selesai' seperti dalam pengkodean yang baru saja selesai, atau 'selesai' seperti pada "pengguna menggunakannya"?
Memahami persyaratan pengguna-akhir di sini, berpikirlah seperti pengguna. Jangan lakukan apa yang teman-teman Anda lakukan jika mereka memperkirakan sesuatu telah "dilakukan" hanya karena beberapa fungsionalitas dasar dengan alur kerja barebones yang tidak dapat ditoleransi oleh pengguna adalah apa yang mereka anggap sebagai "selesai" . Pikirkan itu dari sudut pandang pengguna, karena hanya klien yang Anda buat perkiraan akan mengerti. Perkirakan terhadap persyaratan pengguna-akhir yang lengkap, bukan menuju persyaratan teknis barebone. Dan sadari bahwa klien Anda yang meminta perkiraan akan benar-benar tidak akurat di sini tentang bagaimana mereka mengatakan sesuatu dan memahami aspek teknis dari apa yang Anda katakan.
Tidak peduli seberapa sadar Anda akan semua hal ini, kadang-kadang "kebanggaan programmer" membuat Anda memberi / menerima waktu yang lebih pendek dari yang semula Anda bayangkan. Khususnya ketika Anda merasakan tekanan tenggat waktu dan harapan manajemen.
Jangan lakukan ini! Anda terdengar seperti pekerja keras yang memotivasi diri sendiri dan mungkin orang yang mudah menyerah pada paksaan.
Masalahnya di sini adalah ini: katakanlah Anda dan Joe membuat perkiraan waktu untuk tugas yang sama (tetapi antara dua karyawan yang terpisah, tidak mengetahui kedua perkiraan pada satu waktu). Anda memperkirakan dengan berani, "satu minggu" . Tidak apa-apa menurut Anda, Anda akan bekerja lebih dari 100+ jam seminggu, lembur tanpa bayaran. Sekarang Anda terlambat tiga hari.
Sementara itu, Joe memperkirakan 5 bulan. Anda pikir ini konyol, Anda pikir Anda bisa melakukannya dalam satu minggu. Berapa banyak pekerjaan Joe? 10 jam seminggu? ... kecuali dia selesai tepat waktu tepat 5 bulan.
Tebak siapa yang dianggap sebagai bajingan? Itu benar, kamu. Joe tampak seperti pekerja hebat, Anda tampaknya tidak bisa diandalkan sekarang. Tidak masalah bahwa Anda mungkin telah mencapai hasil yang lebih baik dalam ~ 7% dari waktu yang Joe gunakan. Yang penting adalah Anda libur 3 hari dari perkiraan satu minggu.
Jangan pernah salah memperkirakan sisi ketatnya. Kesalahan di sisi perkiraan yang lebih longgar. Ada reputasi yang harus Anda bangun di perusahaan Anda, dan itu tidak akan didasarkan pada panjang perkiraan Anda hampir sebanyak keakuratan estimasi Anda. Mudah untuk akurat dengan perkiraan yang terlalu lama, Anda hanya mendapatkan lebih banyak waktu untuk menyelesaikan masalah dan menyelesaikannya dengan lebih baik. Perkiraan yang terlalu singkat tidak meninggalkan ruang bernapas sama sekali, Anda akan bertemu dengan putus asa atau Anda sedang kacau.