Bagaimana saya menjelaskan tugas yang diubah atau dilupakan dalam suatu taksiran?

10

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.

Andrew
sumber
1
Lipat gandakan dengan 3 ( programmers.stackexchange.com/questions/41004/... )
blueberryfields
Saya pikir saya perlu memberikan contoh bagaimana saya melakukan perhitungan ini serta masalah yang saya coba selesaikan. Saya tidak punya waktu saat ini, tetapi saya akan segera melakukannya sesegera mungkin.
Andrew
Dalam scrum Anda tidak memberikan perkiraan waktu; Anda memberi poin cerita, yang memberi orang lain ide. Anda juga tidak melakukan bottom-up. Anda tidak perlu - kecepatannya tidak jelas.
Pekerjaan
@ Bob Kami bukan toko scrum saat ini. Juga, tidak seperti apa yang disarankan oleh penjawab lain, saya telah menemukan sejauh ini bahwa perkiraan bottom-up telah meningkatkan akurasi estimasi saya, terutama dengan sangat mengurangi jumlah tugas yang terlupakan selama estimasi tingkat tugas.
Andrew
@blueberryfields - mengalikan hanya dengan 50% sudah cukup, setidaknya di perusahaan dengan banyak tingkat hierarki, di mana masing-masing menambahkan faktor perkiraan sendiri yang berlebihan.
mouviciel

Jawaban:

6

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:

     100 |                                  ......
         |                        ..........
% chance |                ........
of being |          ......
  done   |      ....
         |   ...
         |...
       0 +-----------------------------------------
          \           \           \           \
           May 1st     June 1st    July 1st    August 1st

Perhatikan bagaimana pertumbuhan probabilitas melambat seiring waktu. Jika seseorang meminta Anda untuk memperkirakan 99,9% dalam skenario ini, itu mungkin 1 Januari tahun berikutnya.

Benji York
sumber
Terima kasih atas jawabannya. Metode yang saya gunakan sudah memungkinkan saya untuk melakukan apa yang Anda usulkan, tetapi juga memperhitungkan (secara tidak langsung, dengan menggunakan persentase akurasi historis) keberhasilan masa lalu saya dengan perkiraan saya untuk menghasilkan persentase- perkiraan percaya diri yang diinginkan. Namun, yang saya tanyakan adalah bagaimana memasukkan tugas yang tidak terjawab ke dalam keakuratan historis ketika keakuratannya pada dasarnya dihitung dengan apakah saya menyelesaikan tugas dalam kisaran yang saya gunakan untuk perkiraan awal saya.
Andrew
@Andrew, jika saya memahami Anda dengan benar, "tugas yang terlewatkan" dihitung dengan kemungkinan kurang dari 100% untuk dilakukan pada waktu tertentu. Jika Anda telah melakukan banyak proyek seperti yang sekarang, kurva Anda akan dengan cepat miring dari 0% menjadi (katakanlah) 90%. Itu karena Anda memiliki kepercayaan diri yang tinggi karena ada beberapa tugas yang terlewatkan. Jika Anda memiliki kepercayaan diri yang rendah, maka kemiringan akan jauh lebih bertahap. Itu berlaku untuk alasan apa pun, bukan hanya tugas yang dilupakan, tetapi faktor risiko lainnya juga.
Benji York
Ya, tugas yang terlewatkan memang tercakup dalam agregat oleh rentang tingkat tugas, yang menjadi tingkat kepercayaan yang saya berikan. Saya menghitung level-level itu menggunakan metode yang diusulkan McConnell dalam Bab 10 Estimasi Perangkat Lunak, seperti yang saya katakan sebelumnya. Saya terutama bertanya-tanya bagaimana saya menjelaskan tugas-tugas yang hilang atau berubah ini dalam pelaporan jam TFS serta bagaimana memasukkan jam-jam ini ketika menghitung akurasi historis saya.
Andrew
5

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.

Jon Hopkins
sumber
Terima kasih atas jawaban Anda. Anda meningkatkan poin menarik. Saya sudah memasukkan ketiga item ini dalam berbagai cara dalam perkiraan saya. Jenis pertama Anda, saya temukan, biasanya dapat diartikulasikan dan dikaitkan dengan satu tugas atau lebih. Tipe kedua baru saja dimasukkan ke dalam perkiraan rentang tingkat tugas saya: Saya tidak diizinkan memiliki item tambahan untuk itu (kami telah memperdebatkannya, dan untuk saat ini, itu adalah kebijakan tim kami). Untuk yang ketiga, klien internal menerima bahwa perubahan akan meningkatkan taksiran kami, dan klien eksternal secara tertulis, jadi kami tidak seharusnya mempertimbangkan perubahan.
Andrew
Mengenai apakah McConnell menangani kontinjensi, salinan saya juga sedang bekerja, jadi saya harus memeriksa. Saya pikir apa yang saya tanyakan adalah bagaimana menjelaskan tugas yang hilang / berubah ketika menghitung data riwayat untuk menginformasikan perkiraan berikutnya serta di mana menentukan jam di TFS, karena tugas kontingensi biasanya tidak diperbolehkan dalam grup kami.
Andrew
0

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.

Rachel
sumber
Terima kasih atas jawabannya. Rentang yang saya buat lakukan, secara keseluruhan, cenderung memberi saya cukup waktu untuk menambahkan tugas yang terlupakan tanpa melewatkan perkiraan untuk keseluruhan proyek. Pertanyaan saya lebih banyak berbicara tentang menggunakan informasi ini dalam prosedur perhitungan yang saya gunakan dari buku McConnell.
Andrew
0

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 ...

TGnat
sumber
Aku bisa menunggu sampai besok dan memberitahumu secara langsung. :) Saya lebih peduli tentang ketidakakuratan riwayat jika tugas tambahan tidak termasuk. Jelas, melewatkan tugas selama estimasi tugas adalah "kehilangan" tentang akurasi - tetapi angka akurasi mana? Yang sebenarnya saya gunakan dalam arti kuantitatif adalah apakah kinerja tugas saya yang sebenarnya untuk setiap tugas berada dalam kisaran yang diprediksi. Ukuran lainnya, yang lebih kualitatif, adalah seberapa sering saya memenuhi perkiraan 50% -percaya diri saya. Terlalu jauh di atas atau di bawah 50%, dan saya harus menyesuaikan "penilaian ahli" untuk perkiraan 50% di masa depan.
Andrew