Saya payah dengan perkiraan. Ketika seseorang bertanya kepada saya berapa lama sesuatu akan terjadi, saya bahkan tidak berani menebak karena saya akan sepenuhnya melenceng. Biasanya saya terlalu optimis, dan mungkin harus melipatgandakan tebakan saya dengan beberapa faktor X besar ...
Bagaimana saya bisa belajar membuat perkiraan yang lebih baik? Itu tidak diajarkan di uni saya, dan meskipun kami memiliki tenggat waktu untuk semua pekerjaan, saya tidak pernah memikirkan berapa lama sesuatu akan terjadi. Yang harus saya lakukan. Demi semua orang (terutama milikku).
project-management
estimation
Gablin
sumber
sumber
Jawaban:
Saya masih tidak hebat dalam hal itu, tetapi saya telah menemukan bahwa melacak berapa lama Anda memperkirakan untuk tugas dan berapa lama Anda benar-benar dapat membantu. Dengan begitu Anda bisa mendapatkan ide yang kuat tentang seberapa jauh Anda biasanya. Perangkat lunak manajemen masalah dengan pelacakan waktu (Jira dalam kasus saya) atau spread sheet dapat sangat membantu dalam hal ini.
Saya pikir lebih dari apa pun itu adalah pengalaman.
sumber
Hukum Murphy Manajemen Waktu: Untuk mencari tahu berapa lama sesuatu akan mengambil, mencari tahu berapa lama harus mengambil dan ganda itu.
Kemudian, naik ke unit waktu berikutnya yang lebih tinggi. Jadi, kami mengalokasikan dua minggu untuk proyek satu hari.
sumber
Anda dapat belajar dengan melakukannya secara kolektif .
Saya menggunakan Poker Perencanaan . Ini teknik berbasis konsensus untuk memperkirakan.
Estimasi Anda harus dilacak dan dibandingkan dengan apa yang telah Anda lakukan secara efektif. Anda akan mendapatkan Velocity .
Setiap kali Anda memperkirakan sesuatu, gandakan dengan kecepatan Anda saat ini untuk mendapatkan estimasi yang akurat .
sumber
Estimasi Perangkat Lunak oleh Steve McConnell (MS Press) adalah bacaan yang bagus.
Hal utama dengan perkiraan perangkat lunak dirangkum sebagai berikut
Ini adalah salah satu alasan saya berpikir mengapa proyek berulang lebih sukses daripada proyek air terjun bertahap besar. Mereka tidak berusaha menyusun rencana selama setahun dengan sedikit informasi selain voodoo kotak hitam tentang apa yang mereka pikir seharusnya. Setiap iterasi, mereka mengestimasi ulang / merencanakan ulang dan memiliki beberapa iterasi terakhir untuk mendasarkan estimasi mereka.
Beberapa hal lain yang perlu diingat:
sumber
Saya terkejut bahwa tidak ada yang menyebutkan teknik estimasi gaya PERT yang dijelaskan dalam The Clean Coder karya Robert Martin . Dalam metode itu, Anda memperkirakan berapa lama untuk 3 skenario: optimis (
O
), nominal (N
), dan pesimistis (P
). Maka durasi yang diharapkan =(O+4N+P)/6
dan Anda mendapatkan standar deviasi(P-O)/6
.Ini sepertinya bekerja dengan cukup baik, dan saya telah menggunakannya beberapa kali ketika manajemen benar-benar peduli tentang berapa lama sesuatu akan terjadi.
Seperti yang telah dikomentari orang lain, saya juga membuat perkiraan dengan memeriksa data historis ("Berapa lama waktu yang diperlukan untuk melakukan hal serupa ini?").
Tetapi metode favorit saya adalah tidak melakukan estimasi waktu sama sekali, dan hanya melakukan estimasi titik dan mendapatkan kecepatan lebih dari iterasi. Jika sebuah tim cukup konsisten dalam mengukur dan menyelesaikan pekerjaan (cerita pengguna), maka Anda menghemat banyak waktu dengan tidak bertanya berapa lama setiap hal akan memakan waktu.
Perkiraan jam sangat sulit untuk mendapatkan yang benar, dan mereka membutuhkan banyak pekerjaan untuk memecah hal-hal menjadi potongan cukup kecil untuk secara efektif mengukur. Dan meskipun itu jarang benar karena ada terlalu banyak variabel dan kita lupa untuk memperhitungkan hal-hal seperti penyakit, liburan, atau bahkan gangguan.
Jika saya harus melakukan estimasi jam, saya mencoba hanya melakukannya untuk tugas-tugas kecil dalam iterasi. Saya mengukur semuanya dalam taksiran setengah hari (4, 8, 12 jam) kecuali saya tahu itu bisa kurang. Tapi saya jarang memperkirakan apapun kurang dari 1 jam.
sumber
Pertama dan paling penting, Anda harus mendefinisikan suatu proses dan menaatinya. Termasuk merevisi rencana di akhir setiap fase proses. Anda juga bisa merevisi prosesnya, tetapi secara tertib.
Kedua, lakukan semacam desain. Desain adalah langkah pertama untuk perencanaan, Anda tidak membangun rumah tanpa gambar.
Ketiga, lacak waktu (upaya). Anda setidaknya harus membedakan:
Pengujian penerimaan, dengan pengguna (termasuk memperbaiki cacat)
Akan bagus jika Anda mengukur upaya perbaikan cacat untuk setiap jenis pengujian, tetapi menambah kompleksitas, sehingga Anda dapat melakukannya nanti.
Keempat, identifikasi item basis utama untuk estimasi. Sebagai contoh:
Kelima, berkorelasi item dasar dan upaya. Sebagai contoh:
Keenam, melacak kinerja dan penyimpangan dari perkiraan untuk setiap proyek. Jadi, Anda dapat menyempurnakan faktor korelasi Anda.
Ketujuh, ulangi dan tingkatkan. Anda akan mendapatkan banyak wawasan hanya pada akhir proyek pertama, pada ketiga Anda akan merasa nyaman merencanakan dan memperkirakan.
Lihatlah http://en.wikipedia.org/wiki/Personal_Software_Process , ini benar-benar berfungsi.
sumber
Setiap kali Anda menemukan masalah estimasi, cobalah untuk membaginya menjadi potongan-potongan kecil. Kemudian lihat apakah Anda sudah melakukan hal-hal yang mirip dengan potongan. Jika sudah, Anda harus sudah memiliki gagasan yang adil tentang berapa lama setiap potongnya. Jika tidak, Anda harus mulai secara aktif melacak waktu yang diambil untuk berbagai jenis tugas. Ini akan membantu Anda dalam estimasi di masa mendatang.
Total waktu yang dibutuhkan akan lebih dari jumlah masing-masing bagian, karena Anda memerlukan waktu untuk integrasi dan pengujian.
Jika Anda belum melakukan hal serupa, Anda mungkin bisa mengandalkan pengalaman orang lain dan mendapatkan perkiraan dari mereka. Jangan anggap ini nilai nominal. Tidak ada yang mengajarkan Anda pengalaman.
Ini seperti menembak target. Tembakan sebelumnya pada perkiraan harus memberi tahu Anda seberapa melencengnya Anda, sehingga Anda dapat memperbaikinya.
sumber
Saya merasa paling mudah untuk melakukan proses pembagian ke tugas-tugas minimal seperti yang disebutkan di atas masing-masing bekerja dan kemudian gandakan perkiraan itu. Lalu saya tambahkan mereka bersama dan tambahkan lima puluh persen. Itu memberi saya perkiraan waktu proyek dalam kondisi ideal. Jika pekerjaan itu praktis akan terjadi secara paralel dengan yang lain itu akan membutuhkan lebih lama. Jika Anda harus menunggu orang lain, perkirakan mereka akan memakan waktu dua kali lebih lama dari yang Anda pikirkan. Menunggu konten, umpan balik, atau informasi lain sering kali jauh lebih lama daripada yang tampak mungkin.
Di mana saya bekerja, kami membuat estimasi kasus / perkiraan kasus / kasus terburuk terbaik untuk setiap langkah proses, yang berguna sebagai panduan dan juga untuk mengevaluasi bagaimana perkiraan Anda bekerja.
Teknik ini tidak pernah begitu penting kecuali bahwa Anda harus mampu melawan godaan programmer untuk meremehkan tugas, tetapi yang penting adalah bersikap konservatif ketika Anda dapat memberikan sesuatu. Jika Anda butuh tujuh minggu untuk membangun sesuatu dan Anda berjanji delapan minggu, Anda bisa datang sedikit lebih awal dan terlihat baik untuk itu atau melakukan beberapa tes tambahan dan yakin akan keandalannya. Jika Anda berjanji enam minggu Anda dapat terlihat buruk bahkan jika itu sama sekali bukan kesalahan Anda. Jika ragu, tebak secara konservatif.
sumber
Anda dapat mencoba untuk membangun rekam jejak dari apa yang merupakan taksiran dan apa yang sebenarnya untuk berbagai tugas untuk membangun cukup dari suatu catatan untuk kemudian mengetahui pengali apa yang dimiliki untuk hal-hal tertentu yang dapat diulang dalam daftar Anda. Memang ini adalah latihan coba-coba tetapi tampaknya berhasil dengan baik bagi saya. Ada juga sesuatu yang bisa dikatakan untuk banyak percobaan sebelum polanya muncul. Ini mungkin mirip dengan banyak jawaban lain yang akan mengatakan bahwa seseorang dapat berkata, "Lakukan saja!" karena itulah bagaimana sebagian besar dari kita mengembangkan keterampilan. Apakah menyakitkan untuk melihat betapa salahnya seseorang ketika membuat perkiraan? Ya, tetapi jika perkiraannya membaik maka semua orang pada akhirnya bisa bahagia.
sumber
Jika Anda dapat menguraikan proyek menjadi tugas-tugas yang lebih kecil dan melakukan perkiraan untuk itu, Anda akan lebih akurat secara keseluruhan. Tugas apa pun yang lebih besar dari beberapa hari harus dirinci lebih lanjut. Jika Anda tidak dapat memecahnya lebih jauh daripada Anda mungkin memiliki kesenjangan persyaratan. Jika Anda harus melakukan estimasi back-of-the-serbet untuk persyaratan satu baris dengan baik ... tidak ada yang bisa sangat membantu Anda. Sayangnya banyak toko bekerja dengan cara ini hampir sepanjang waktu.
sumber
Daripada menulis buku tentang itu, saya hanya akan menawarkan sedikit saran tentang cara menggunakan metode estimasi "mogok":
Hancurkan tugas Anda menjadi tugas-tugas komponen yang lebih kecil. Perkirakan setiap tugas sebaik mungkin.
Tambahkan tugas untuk perencanaan dan desain (yang mencakup apa yang Anda lakukan sekarang.) Perkirakan.
Jika Anda belum memilikinya, tambahkan tugas untuk "menyatukan tugas." Tugas ini mungkin tampaknya tidak bermanfaat pada awalnya. Namun, ketika Anda menggunakan metode estimasi "jebol" ini, selalu ada hal-hal yang memakan waktu untuk melakukan itu "jatuh di antara tugas" dan bahwa "menyatukan tugas-tugas." Yang ini bisa sulit untuk diperkirakan. Mencoba yang terbaik.
Tambahkan tugas untuk pengujian dan dokumentasi. Tugas Anda mungkin tidak memerlukan banyak pengujian dan dokumentasi, tetapi Anda setidaknya harus meluangkan sedikit waktu untuk memikirkannya.
Jumlahkan taksiran tugas untuk mendapatkan taksiran keseluruhan.
Silakan gandakan estimasi total dengan dua ††. Ini akan memberi Anda waktu pengisi untuk:
Dan yang terakhir, tetapi tidak kalah pentingnya, jangan takut untuk membuat sketsa perkiraan untuk diri Anda yang mungkin benar-benar salah. Kadang-kadang hanya membuat sketsa semuanya, tidak peduli seberapa berpotensi sangat tidak akurat, dapat membantu Anda memulai di jalur untuk mendapatkan pengertian yang lebih baik untuk apa yang terlibat.
†† Ketika Anda mendapatkan pengalaman yang semakin banyak, "faktor fudge" ini dapat disesuaikan dengan gaya pribadi Anda, dan lingkungan kerja Anda.
sumber
Formula yang berfungsi saat bekerja untuk diri saya sendiri:
lakukan penguraian todo's ke 1 - 4 jam granularity. Saya menemukan bahwa saya biasanya akurat dengan ini
the 'unknowns factor': Kalikan dengan faktor 2 yang dinaikkan ke jumlah yang tidak diketahui. Yaitu jika Anda ingin mengembangkan aplikasi couchdb, tetapi sekarang tahu apa-apa tentang javascript dan http .. tambahkan 2 ^ 2 sebagai faktor mult.
context-switch-factor: kelipatan 1,5 jika Anda akan bekerja di lingkungan yang sempurna (di rumah di sudut studi dll), atau 2,5 jika Anda akan bekerja di lingkungan yang tidak sempurna (kantor / tempat ramai dll)
Saya menemukan ini berada dalam +/- 20% dari waktu yang sebenarnya diambil !!
sumber
Pelajari bias Anda sendiri. Jika taksiran terakhir Anda terlalu rendah dengan faktor dua, lain kali, gandakan taksiran awal Anda. (Tentu saja, hukum Hofstadter membuatnya sulit untuk melakukan itu dengan benar ...)
Itu juga selalu merupakan ide yang baik untuk mengingat berapa banyak pekerjaan yang dibutuhkan setelah rilis awal dari pekerjaan sebelumnya, dan menambahkannya ke perkiraan berikutnya. Misalnya, tugas terakhir Anda membutuhkan waktu 2 bulan untuk diselesaikan, tetapi setelah ditayangkan, dukungan, perbaikan terbaru, dan perubahan tambahan dikenakan biaya satu bulan lagi, jadi, perkirakan waktu berikutnya 3 bulan untuk tugas yang sama.
sumber
Untuk pembuka, baca "Ekonomi Rekayasa Perangkat Lunak", oleh Barry Boehm, dan "Proyek Perangkat Lunak Pengendali", oleh Tom DeMarco. Setelah Anda membaca dan mencerna keduanya, baca "Perkiraan Biaya Perangkat Lunak Dengan COCOMO 2", oleh Barry Boehm.
Untuk apa yang harus saya katakan selanjutnya, itu akan membantu Anda BANYAK untuk mengambil kelas probabilitas dan statistik, bahkan buku resep dasar.
Tidak ada perkiraan yang sempurna. Ada beberapa kemungkinan datang lebih awal, dan beberapa kemungkinan datang terlambat. Model COCOMO rinci asli Boehm memberikan prediksi yang ternyata berada dalam 30% dari hasil aktual, lebih baik dari 60% dari waktu. Itu jauh lebih baik daripada yang biasa ketika dia menulis dan menerbitkan buku itu.
Ketika Anda mengambil tebakan terbaik Anda (dan hanya itu perkiraannya), Anda menyertakan probabilitas tersebut. Jika Anda menarik perkiraan, Anda meningkatkan kemungkinan bahwa Anda akan datang terlambat. Jika Anda meningkatkan taksiran, Anda meningkatkan kemungkinan bahwa Anda akan datang lebih awal atau selesai tepat waktu. Berapa banyak Anda menariknya atau membiarkannya mengontrol bagaimana probabilitas berubah, dan harus selalu bergantung pada hukuman karena awal atau terlambat. (Masukkan cerita horor di sini - dan sudah ada BANYAK dari mereka selama bertahun-tahun!)
DeMarco membahas hal ini sampai batas tertentu. Dia juga menunjukkan bahwa ada "wilayah mustahil": beberapa jadwal terlalu ketat untuk dibuat, tidak peduli apa pun jenis kepahlawanan yang dicoba.
sumber