Untuk menangani estimasi tingkat tugas dan pelaporan waktu, saya telah menggunakan (secara kasar) teknik yang dijelaskan Steve McConnell di Bab 10 Estimasi Perangkat Lunak. Khususnya, ketika tiba saatnya bagi saya untuk membuat estimasi tingkat tugas (tepat sebelum pengkodean dimulai pada suatu proyek), saya menentukan tugas pada tingkat yang cukup granular sehingga, jika memungkinkan, saya tidak memiliki tugas dengan titik tunggal, 50 % -perkiraan kepercayaan lebih dari empat jam. Dengan begitu, proses estimasi tugas membantu membangun perangkat lunak sambil membantu saya untuk tidak melupakan tugas selama estimasi. Saya menghasilkan serangkaian jam yang memungkinkan untuk setiap tugas juga, dan menggunakan perhitungan statistik yang dijelaskan McConnell bersama dengan data akurasi historis saya, saya dapat menghasilkan perkiraan pada tingkat kepercayaan lain jika diinginkan. Saya merasa metode ini telah bekerja cukup baik untuk saya. Kami harus memasukkan tugas dan taksirannya ke TFS untuk pelacakan, jadi saya menggunakan taksiran dengan persentase kepercayaan yang saya perintahkan untuk digunakan.
Namun, saya tidak yakin apa yang harus dilakukan ketika saya lupa tugas, atau saya akhirnya harus melakukan pekerjaan yang tidak termasuk dalam salah satu tugas yang saya perkirakan. Tentu saja, mencoba menghindari situasi ini adalah yang terbaik, tetapi bagaimana cara saya menjelaskan tugas yang terlupakan / diubah? Saya ingin memiliki data historis terbaik yang saya bisa untuk membantu saya dengan perkiraan masa depan, tetapi saat ini, saya pada dasarnya hanya menghitung apakah saya membuat estimasi kepercayaan-50% dan apakah saya membuatnya di dalam perkiraan rentang.
Saya akan dengan senang hati menjelaskan apa yang saya minta jika perlu - beri tahu saya apa yang tidak jelas.
sumber
Jawaban:
Buku Waltzing With Bears: Mengelola Risiko Proyek Perangkat Lunak (oleh DeMarco dan Lister, penulis Peopleware) memiliki pendekatan hebat untuk ini. Inilah reinterpretasi saya:
Buat perkiraan "semuanya berjalan dengan sempurna". Tentu saja, semuanya jarang berjalan dengan sempurna, sehingga memiliki kemungkinan kejadian yang rendah, katakanlah 0,1 persen. Dengan kata lain, hanya satu proyek dalam seribu akan berjalan sesuai rencana. Inilah yang kebanyakan orang gunakan sebagai "perkiraan" mereka yang jelas-jelas gila.
Sebaliknya, kita harus menganggap estimasi sebagai distribusi probabilitas. Estimasi "dunia sempurna" ini adalah titik paling kiri pada distribusi probabilitas estimasi.
Selanjutnya buat perkiraan "jika semuanya berjalan seperti itu untuk proyek serupa seperti ini". Perkiraan ini membantu Anda mengambil "tampilan luar" ( http://wiki.lesswrong.com/wiki/Outside_view ), keluar dari kekeliruan perencanaan ( http://wiki.lesswrong.com/wiki/Planning_fallacy ).
Selanjutnya buat perkiraan "Saya 90% yakin kita akan selesai X". Sangat, sangat yakin maksudmu 90% yakin. Dengan kata lain, Anda mengharapkan waktu lebih lama dari perkiraan ini hanya sekali untuk setiap sepuluh proyek yang Anda lakukan.
Kami sekarang dapat menggunakan estimasi pertama Anda sebagai estimasi probabilitas 0,1% dan yang kedua sebagai estimasi probabilitas 50% (musim sesuai selera) dan yang ketiga sebagai estimasi 90% Anda, yang akan memberi Anda kurva yang bagus.
Katakanlah perkiraan 0%, 50%, dan 90% Anda adalah 1 Mei, 1 Juni, dan 1 Agustus, maka kurva perkiraan Anda akan terlihat seperti ini:
Perhatikan bagaimana pertumbuhan probabilitas melambat seiring waktu. Jika seseorang meminta Anda untuk memperkirakan 99,9% dalam skenario ini, itu mungkin 1 Januari tahun berikutnya.
sumber
Dalam sebuah kata - kemungkinan.
Kontingensi adalah jumlah yang Anda tambahkan untuk "hal-hal lain" - hal-hal yang tidak dapat Anda perhitungkan di tempat lain dalam taksiran Anda. Apakah SMc membahasnya dalam Perkiraan Perangkat Lunak? Saya tidak ingat dan salinan saya sedang bekerja (saya sedang liburan menjawab ini - betapa sedihnya saya) ...
Ngomong-ngomong, secara umum ada tiga macam kemungkinan yang saya sarankan untuk melihat:
1) Kontinjensi spesifik risiko - yaitu di mana Anda mengidentifikasi risiko tertentu dan menambahkan sejumlah waktu tertentu untuk menutupi potensi kelebihan beban yang terkait dengannya. Hal pertama yang menjadi jelas di sini adalah apa risikonya - itu adalah sesuatu yang mungkin terjadi, yang akan berdampak negatif pada proyek, yang berada di luar kendali Anda .
Bagian terakhir ini sangat penting - ini bukan hanya "hal-hal yang memakan waktu lebih lama dari yang saya kira", ini adalah "modul penjadwalan pihak ke-3 yang telah kami katakan kepada kami bahwa kami harus menggunakannya karena standar perusahaan mungkin tidak sesuai dengan tugas". Cara Anda menghitung berapa banyak risiko kontingensi untuk ditambahkan adalah persentase peluang risiko yang mungkin terjadi dinyatakan sebagai desimal (jadi 50% = 0,5), kali dampak dari risiko itu (jadi dalam contoh mengatakan Anda perlu menulis CRON secara manual pekerjaan daripada menggunakan penjadwal dan ini akan memakan waktu 10 hari, jumlah ini adalah 10 hari).
Jadi, jika ada kemungkinan 50% risiko Anda akan terjadi, dan itu akan membutuhkan upaya 10 hari untuk menyelesaikannya jika ada, Anda tambahkan 5 hari. Tambahkan semua nilai untuk semua risiko yang diidentifikasi pada proyek dan tambahkan ke total.
2) Sial Terjadi Kontingensi - Deskripsi terbaik yang pernah saya dengar untuk itu, meskipun tidak elegan. Ini proyek IT, sial terjadi. Tidak pernah berjalan seperti yang Anda pikirkan, semuanya akan lebih lama, terlewatkan dan seterusnya. Secara umum, Kontingensi SH akan berada di antara 10% (minimum absolut) dan 25% (meskipun bisa lebih tinggi) dengan 15% tentang tipikal, tingkat pasti tergantung pada tingkat ketidakpastian dan risiko umum (pos tujuan bergerak, persyaratan tidak pasti, dan sebagainya) ).
Jika PM Anda tidak menerima Kontinjensi SH (dan itu mungkin, ia mungkin tidak memiliki pengalaman proyek TI atau menjadi optimis buta), maka tambahkan saja ke semua jumlah individu. Jika dia tahu apa yang dia lakukan, dia akan memiliki log risiko sendiri dan mencintaimu karena memikirkan hal-hal ini. Tentu saja jika dia memiliki kualifikasi PM apa pun (seperti PRINCE2) dia akan mengetahuinya.
3) Ubah Kontinjensi - Di sinilah Anda cukup yakin bahwa klien akan meningkatkan perubahan tetapi tidak ingin itu menjadi titik pertikaian. Tambahkan X hari atau X% dan itu dimasukkan ke dalam pot untuk perubahan yang ditimbulkan pelanggan. Ada dua cara untuk mengatasinya: baik Anda memberi tahu mereka tentang hal itu dan itu milik mereka untuk dibelanjakan atau Anda tidak memberi tahu mereka tentang hal itu.
Cara pertama adalah yang terbaik tetapi membutuhkan pelanggan yang berpendidikan dan berpikiran adil - hal-hal diklasifikasikan sebagai perubahan dan dia dapat menghabiskan potnya sesuai keinginan (berdasarkan pada Anda memperkirakan hal-hal yang muncul).
Cara kedua yang Anda sebutkan itu adalah perubahan tetapi tidak terlihat membebankan biaya tambahan padanya. Anda harus mencatat semua hal yang Anda habiskan sehingga jika itu sampai ke titik bahwa habis dan Anda harus kembali ke pelanggan dan meminta lebih banyak waktu atau uang dan mereka berkata "tunggu sebentar, saya ' m membayar bla bla bla "Anda dapat menunjukkan semua hal yang telah mereka ubah yang belum Anda tetapkan sebagai tanda bahwa Anda tidak sepenuhnya tidak masuk akal. Itu tidak selalu berhasil tetapi hampir selalu memperkuat tangan Anda dalam diskusi.
Tidak satu pun dari ketiga hal itu yang secara khusus membahas hal-hal yang telah Anda lupakan, tetapi saya pikir di antara mereka Anda akan mengisi banyak celah yang Anda miliki.
sumber
Ketika ditanya perkiraan untuk suatu tugas, berikan perkiraan high-end untuk tim dan miliki estimasi low-end untuk diri sendiri, melakukan itu Anda akan selalu punya waktu setelah tugas diselesaikan untuk mengerjakan sesuatu yang Anda mungkin lupa untuk menyebutkan di tempat pertama.
sumber
Apakah Anda khawatir bahwa dengan menambahkan tugas tambahan, Anda akan condong keakuratan historis Anda? Atau apakah Anda berpikir bahwa tidak termasuk tugas tambahan akan condong keakuratan?
Saya pikir untuk proyek terbaik, tugas harus dimasukkan ke dalam sistem pelacakan. Saya yakin pimpinan proyek akan dapat menawarkan penjelasan yang sesuai kepada manajemen untuk perbedaan ...
sumber