Apakah estimasi waktu sama dengan janji di Scrum?

10

Jika perkiraan bukanlah janji, maka sebagai pemilik produk bagaimana saya bisa mengirimkan proyek saya tanpa mengetahui berapa lama?

Apakah tim Scrum bekerja lebih efisien jika kita memperlakukan perkiraan waktu sebagai janji?

Berapa banyak penelitian (persiapan, upaya untuk memahami masalah) dalam sebuah cerita yang cukup untuk menghasilkan perkiraan yang tepat?

Bagaimana dengan masalah teknis yang tidak terduga (masalah yang benar-benar dapat mengacaukan perkiraan awal Anda) yang muncul setelah Anda memperkirakan pekerjaan Anda?

daehaai
sumber
apakah Anda bertanya kepada ScrumMaster Anda sebelum bertanya di sini? Karena kedengarannya seperti belum. Mempercayai SM Anda mungkin memiliki dampak yang lebih baik pada proyek Anda daripada menjawab pertanyaan-pertanyaan itu.
xsace
Pertanyaannya adalah untuk mendapatkan ide tentang pandangan orang di luar tim. Saya tidak mengatakan 'ini' adalah masalah dengan pendekatan kami. Saya mencoba menempatkan diri saya pada posisi Product Owner. Saya membaca tentang perkiraan! = Menjanjikan dan berpikir jika tidak, lalu bagaimana Anda mengukur? FYI kita diskusikan. :)
daehaai

Jawaban:

15

Estimasi bukanlah janji yang terukir di atas batu. Mereka adalah tebakan terbaik yang dapat dilakukan tim tentang upaya yang diperlukan untuk menyelesaikan tugas / cerita.

Dalam menjawab pertanyaan Anda "sebagai pemilik Produk bagaimana saya bisa mengirimkan proyek saya tanpa waktu sebagai referensi?", Jawabannya adalah Anda dapat dan harus memiliki waktu sebagai referensi (yaitu Anda akan merilis pada tanggal tertentu). Apa yang tidak Anda miliki adalah ruang lingkup persis yang akan berada dalam pengiriman.

Perhatikan bahwa apa yang saya katakan adalah benar untuk setiap metodologi yang Anda gunakan untuk mengarahkan pengembangan Anda. Perbedaan antara Scrum dan metodologi lainnya (seperti Air Terjun), adalah bahwa dalam Scrum fakta ini diakui, dan diperhitungkan. Apa yang akan Anda lakukan, sebagai PO, adalah memprioritaskan ruang lingkup Anda, dan memastikan bahwa tim, pada saat tertentu adalah:

  1. Mengerjakan fitur yang tidak terkirim (baca: berharga) yang paling penting (tugas, persyaratan, kisah pengguna)
  2. Telah berhasil menyelesaikan setiap fitur yang lebih penting daripada yang sedang mereka kerjakan (ini mengacu pada Definisi Selesai : Setiap cerita yang selesai diuji, diterima, bebas bug, dan fitur-lengkap).

Setelah itu, Anda sekarang dapat mengirim, atau mengirimkan, dengan mudah, mengetahui bahwa pada saat tertentu , produk terbaru adalah produk terbaik yang dapat dikirimkan. Ini berarti bahwa pada tanggal komitmen rilis asli Anda, Anda akan memberikan produk terbaik.

Tentu saja, ini tidak menjanjikan bahwa itu akan terdiri dari setiap cerita yang Anda minta dari tim untuk dikembangkan, tetapi Anda tahu bahwa yang tidak lengkap yang tersisa tentu saja yang paling tidak penting, yang dapat dengan mudah disampaikan di kemudian hari.

Juga, perkiraan yang dibuat oleh tim akan semakin lebih baik, memungkinkan Anda untuk memiliki gagasan awal yang solid tentang apa ruang lingkupnya pada akhir rilis. Anda akan dapat mengirimkan produk padat yang baik tepat waktu, dengan beberapa fitur tambahan yang tidak terlalu penting beberapa minggu kemudian (tentu saja Anda dapat memperkirakan kapan itu akan terjadi).

Adapun jumlah penelitian yang diperlukan - ada hukum pengembalian yang semakin berkurang di sini. Jika Anda membagi cerita Anda cukup kecil, maka sedikit riset harus memberi Anda perkiraan yang cukup dekat. Jika Anda salah, maka Anda akan mengubah sprint berikutnya dan perkiraan akan lebih baik. Dalam 3-4 sprint, secara rata-rata, Anda harus memiliki gagasan yang bagus tentang berapa banyak ruang lingkup yang dapat dikirimkan oleh tenggat waktu (atau berapa lama waktu yang dibutuhkan untuk menyelesaikan ruang lingkup).

Batu Assaf
sumber
5

Ketika Anda memperkirakan poin cerita dalam Scrum, Anda harus cukup tahu untuk dapat mulai menulis fitur tersebut. Perkiraan ini tidak diharapkan sepenuhnya akurat, inti dari metodologi pengembangan Agile adalah bahwa mereka mengakui bahwa Anda tidak dapat secara akurat memprediksi berapa lama pengembangan akan berlangsung.

Tahap di mana Anda membuat komitmen untuk menyampaikan adalah ketika Anda menerima cerita dari jaminan produk menjadi Sprint. Anda berjanji untuk menyampaikan kisah-kisah itu dalam sprint.

Jika Anda membuat komitmen ini, ini berarti Anda bersedia melakukan beberapa jam tambahan jika sepertinya Anda tidak akan memenuhi janji Anda. Pada kenyataannya, beberapa cerita akan memakan waktu lebih lama dari yang Anda pikirkan dan yang lain akan memakan waktu lebih sedikit dari yang Anda pikirkan.

Ketika tim telah melakukan estimasi yang cukup, mereka akan menjadi lebih baik.

Anda mungkin juga ingin melihat ...

The Clean Coder (Book) - ada bab dalam buku ini berjudul "The Language Of Commitment" dan juga bab tentang memperkirakan, yang benar-benar membuka mata.

Kanban - Kanban lebih dari gaya tarik pengembangan berjalan - ada juga kombinasi Scrum dan Kanban disebut "Scrumban", yang menarik dari kedua ide.

Fenton
sumber
"Jika kamu membuat komitmen ini, ini berarti kamu bersedia melakukan beberapa jam tambahan ..." Tidak mungkin. Penafsiran kata komitmen inilah yang menyebabkan kata tersebut dihapus dari Scrum . Jika Anda menemukan bahwa Anda mungkin tidak memperkirakan penyelesaian semua item yang dipilih, bicarakan dengan PO dan buat rencana baru. Saran seperti inilah yang menyebabkan siklus tak berujung di bawah estimasi dan mendorong kecepatan yang lebih tinggi sebagai tujuan dalam-dan-dari dirinya sendiri.
Ryan Cromwell
@RyanCromwell - itulah perbedaan antara taksiran dan komitmen. Jika Anda memperkirakan sesuatu, harus ada pemahaman bahwa mereka membuat lebih banyak waktu, atau lebih sedikit waktu. Jika Anda berkomitmen untuk menyelesaikan suatu pekerjaan maka Anda harus memahami bahwa itu adalah reputasi profesional Anda yang dipertaruhkan.
Fenton
2

Tidak.

Jumlah semua perkiraan pada setiap tugas yang diselesaikan dalam sprint disebut velocity . Velocity didefinisikan sebagai "jumlah poin yang diselesaikan per sprint" di mana 'point' adalah unit yang diperkirakan oleh tim Anda.

Jadi kecepatannya memberi tahu Anda berapa banyak tim Anda dapat menghasilkan dalam sprint berikutnya, dengan asumsi mereka menggunakan metode yang sama untuk memperkirakan dan tim stabil.

Dan itulah bagaimana Anda bisa yakin apa yang dapat disampaikan tim tanpa harus membuat janji acak.

Martin Wickman
sumber
1

Estimasi upaya adalah alat untuk perkiraan. Prakiraan bukanlah komitmen atau jaminan. Ramalan dievaluasi ulang secara berkelanjutan untuk memperhitungkan pengetahuan baru dan harus mencakup kemungkinan alternatif seperti variasi optimis dan pesimistis.

Kami maju melihat Agile. Komitmen tidak menambah nilai pada perencanaan organisasi daripada perkiraan.

Sangat merekomendasikan Mike Cohn's Agile Estimating and Planning

Ryan Cromwell
sumber
1

Jika perkiraan bukanlah janji, maka sebagai pemilik produk bagaimana saya bisa mengirimkan proyek saya tanpa mengetahui berapa lama?

Anda tidak bekerja dengan satu perkiraan besar, tetapi dengan banyak perkiraan kecil di tingkat cerita. Banyak kesalahan estimasi di tingkat cerita rata-rata keluar. Anda tidak dapat menjanjikan konten dan tanggal. Anda dapat, bagaimanapun, cukup yakin bahwa bagian atas jaminan simpanan akan dirilis (sebagai alternatif, memiliki tanggal yang cukup akurat - tetapi tidak tetap - pada saat seluruh jaminan simpanan dapat dikirimkan).

Apakah tim Scrum bekerja lebih efisien jika kita memperlakukan perkiraan waktu sebagai janji?

Tidak. Itu mengarah pada perkiraan pengantongan pasir dan mengubah grafik kecepatan / burndown menjadi data yang tidak berguna - yang mencegah tim untuk meningkat.

Berapa banyak penelitian (persiapan, upaya untuk memahami masalah) dalam sebuah cerita yang cukup untuk menghasilkan perkiraan yang tepat?

Tergantung seberapa besar Anda peduli dengan presisi. Anda dapat menghabiskan berminggu-minggu mempersiapkan setiap perkiraan dengan hati-hati, atau memberikan perkiraan niat baik cepat dan harapan kesalahan rata-rata. Cara pertama adalah mengatur kegagalan, karena memperkirakan sesuatu yang belum pernah Anda lakukan sebelumnya benar-benar sulit, dan rekayasa perangkat lunak adalah semua hal yang belum pernah Anda lakukan sebelumnya.

Secara pribadi, saya tidak berpikir ada banyak manfaat dari mencoba untuk mendapatkan perkiraan yang sangat akurat. Apa yang saya coba lakukan adalah memastikan perkiraannya cukup akurat - yaitu saya tidak melewatkan sesuatu yang dapat menyebabkan cerita menyimpang dari perkiraannya dengan urutan besarnya. (Lihat poin berikutnya).

Bagaimana dengan masalah teknis yang tidak terduga (masalah yang benar-benar dapat mengacaukan perkiraan awal Anda) yang muncul setelah Anda memperkirakan pekerjaan Anda?

Iterasi kecil. Backlog yang dipesan. Cerita kecil. Hal-hal berbahaya adalah apa yang Anda tidak tahu Anda tidak tahu. Kurangnya keahlian pada suatu masalah akan menghasilkan perkiraan yang buruk, tetapi Anda dapat menyesuaikan dengan memperoleh keahlian (lebih banyak elaborasi) atau mengikuti perkiraan yang 'cukup baik' - itu semua tentang manajemen risiko.

ptyx
sumber
1

Jika perkiraan bukanlah janji, maka sebagai pemilik produk bagaimana saya bisa mengirimkan proyek saya tanpa mengetahui berapa lama?

Ini adalah salah satu kesalahpahaman terbesar tentang Scrum. Pertanyaan "Berapa lama proyek saya akan berlangsung?" mengasumsikan bahwa Anda dapat menentukan, pada titik waktu tertentu, persis apa yang diperlukan proyek untuk menyelesaikannya. Tetapi seluruh gagasan tentang Scrum adalah bahwa ia mengakui bahwa hal-hal yang Anda pelajari tentang suatu proyek, ketika Anda mengerjakan proyek, akan mengubah definisi proyek.

Cara paling umum untuk mendefinisikan suatu proyek adalah dengan membuat daftar fitur yang akan dimilikinya. Biasanya, proyek selesai ketika semua fitur telah diimplementasikan. Tetapi bagaimana jika, ketika Anda mengerjakan suatu proyek, Anda menyadari bahwa 5 fitur yang diidentifikasi pada awal tidak akan dibutuhkan, tetapi ada 7 fitur yang dipikirkan orang dalam 6 bulan pertama yang benar-benar harus dimasukkan? Apa yang dilakukan untuk pertanyaan tentang berapa lama?

Faktor lain adalah bahwa hal-hal yang Anda pelajari akan mengubah pemahaman Anda tentang bagaimana menerapkan fitur-fitur tertentu, dan ketika Anda semakin dekat untuk mengimplementasikan setiap fitur, perkiraan Anda akan berubah. Secara pribadi, saya akan menolak menempatkan estimasi numerik pada apa pun yang tidak mendekati cakrawala implementasi - mungkin menggunakan perkiraan deskriptif seperti "kecil", "kecil", "menengah", "besar" dan "besar" atau "epik". Maka Anda tidak menyiratkan akurasi yang lebih besar dari yang dapat Anda perkirakan.

Sejujurnya, "Berapa lama waktu yang dibutuhkan?", Tidakkah bisa dijawab lebih dari, "Apa yang akan terjadi jika sudah selesai?". Akuntan dan pebisnis tradisional membenci ini, itulah sebabnya sangat sulit untuk menjauh dari Air Terjun di beberapa organisasi.

Itu juga mengapa Anda perlu banyak berbicara tentang kecepatan dan metrik dengan sebutir garam. Proyek perangkat lunak memiliki semacam Prinsip Ketidakpastian Heisenberg yang dibangun di dalamnya, dan jika Anda menghabiskan terlalu banyak waktu untuk pengukuran fine tuning, Anda hanya akan berakhir dengan omong kosong yang sangat tepat.

Jadi tidak, perkiraan bukanlah janji. Itu perkiraan. "Janji" adalah komitmen yang dibuat oleh Tim untuk menyelesaikan sejumlah fitur atau cerita tertentu dalam Sprint tertentu.

Perkiraan tersebut perlu cukup akurat untuk memungkinkan Tim mengidentifikasi berapa banyak fitur (atau cerita) yang dapat dimasukkan ke dalam Sprint dengan pas. Yang lebih penting daripada ketepatan dalam perkiraan adalah konsistensi, karena Tim akan mempelajari berapa nilai pekerjaan perkiraan yang dapat mereka masukkan ke dalam Sprint, bahkan jika pekerjaan yang sebenarnya ternyata biasanya dua kali lebih banyak dari yang mereka perkirakan. Selama secara konsisten mati, mereka akan dapat merencanakan.

Dave
sumber