Apa yang bisa menjadi kegiatan membangun tim yang baik untuk meningkatkan keterampilan estimasi? [Tutup]

9

Saya menyusun presentasi untuk disampaikan kepada beberapa rekan tim saya (semua pengembang), dan saya ingin memasukkan kegiatan membangun tim singkat yang berfokus pada peningkatan keterampilan estimasi. Adakah yang punya saran atau tahu kegiatan membangun tim yang bisa saya gunakan?

rampok
sumber
2
Meningkatkan estimasi bukanlah sesuatu yang bisa dilakukan dengan aktivitas singkat. Ini harus menjadi upaya jangka panjang untuk melacak estimasi Anda, waktu aktual, dan semacam postmortem untuk menentukan mengapa estimasi dan waktu aktual berbeda. Ini juga merupakan keterampilan yang berkembang seiring waktu - Anda menjadi lebih baik dengan memperkirakan dan belajar dari kesalahan Anda melalui analisis.
Thomas Owens
Apakah kamu punya masalah? Seberapa akurat perkiraan Anda dan haruskah Anda meluangkan waktu untuk memperbaikinya?
JeffO
@ Thomas Owens, saya sadar itu bukan sesuatu yang bisa dilakukan dengan aktivitas singkat. Saya hanya berusaha meningkatkan kesadaran akan pentingnya mengembangkan keterampilan estimasi yang baik. Seharusnya saya lebih spesifik dalam pertanyaan saya.
Rob
2
@ Jeff O, tidak ada masalah - ini adalah karyawan baru, beberapa dengan pengalaman kurang, dan saya ingin membantu mereka mengerjakan estimasi secara umum.
Rob

Jawaban:

8

Lihat Penjadwalan Berbasis Bukti Joel On Software , ini adalah cara yang cukup sederhana bagi orang untuk mengetahui bagaimana perkiraan lebih akurat.

Cara terbaik untuk mempelajari cara memperkirakan adalah memiliki persyaratan, praktik, praktik, dan praktik yang baik. Mengajari mereka hal-hal seperti Penjadwalan Berbasis Bukti akan membantu praktik menjadi lebih efektif, tetapi tidak ada yang dapat menggantikan praktik yang sebenarnya.

Malfist
sumber
Saya memang mencintai saya beberapa EBS (saya pengguna FogBugz yang rajin). Saya tidak berpikir tentang menggunakannya sebagai contoh, - saran yang bagus. Saya akan mengambil beberapa inspirasi darinya.
Rob
6

Berikan contoh masalah menggunakan Minecraft.

Pelanggan membutuhkan piramida step brown yang 20x20 blok. Piramida juga membutuhkan parit dengan lebar setidaknya 10 blok.

Beri mereka 3 menit untuk membuat sketsa WBS sederhana dan perkiraan.

2 menit, katakan bahwa pelanggan berubah pikiran dan mereka membutuhkan piramida 30x30 sekarang. Beri tahu mereka untuk merevisi estimasi mereka di menit yang tersisa.

Pada akhir waktu, suruh mereka untuk meletakkan pensil mereka, dan sekarang katakan bahwa pengembang mulai mengerjakan proyek tetapi klien bingung karena tidak ada jembatan yang melintasi parit.

Beri tahu mereka bahwa jembatan akan membutuhkan waktu X jam untuk berkembang dan minta semua orang yang meremehkan untuk berdiri.

Ini akan mengarahkan titik awal.

maple_shaft
sumber
2
Saya suka ini, tetapi jika Anda tidak terbiasa dengan Minecraft, saya tidak yakin bagaimana Anda bisa membuat perkiraan yang masuk akal. Bagaimana Anda menghitung waktu yang diperlukan untuk membangun piramida step brown?
Rob
1
@ Thomas Owens, saya pikir titik maple_shaft adalah untuk mengesankan pada pengembang pentingnya menemukan jenis persyaratan tersebut. Sebagai seorang konsultan, secara pribadi saya telah melihat banyak contoh hal-hal yang sangat jelas yang seharusnya diminta oleh pengguna, tetapi tidak, karena mereka tidak menyadari bahwa itulah yang mereka butuhkan. Saya dan pengembang saya semuanya adalah konsultan, dan dalam situasi kami saat ini, kami tidak memiliki kemewahan insinyur persyaratan yang baik, itulah sebabnya saya mencoba membantu mendorong mereka agar menanyakan pertanyaan penemuan jenis-jenis klien mereka untuk membantu meningkatkan estimasi mereka .
Rob
2
@ unforgiven3 Tapi itu tidak ada hubungannya dengan estimasi. Pekerjaan rekayasa persyaratan mungkin jatuh ke pengembang, tetapi Anda hanya dapat mendasarkan perkiraan Anda dari persyaratan yang diketahui. Meningkatkan kemampuan Anda untuk menganalisis, memverifikasi, memvalidasi, dan menemukan persyaratan terpisah dari meningkatkan kemampuan Anda untuk memperkirakan berapa lama waktu yang dibutuhkan untuk melakukan tugas. Persyaratan berubah, karenanya estimasi berubah, tetapi tidak mungkin untuk memperkirakan apa yang tidak Anda ketahui dan Anda tidak seharusnya berusaha.
Thomas Owens
1
@ Thomas Owens, saya setuju bahwa tidak mungkin untuk memperkirakan apa yang tidak Anda ketahui - yang merupakan poin saya - Anda perlu menemukan persyaratan untuk fitur dan memvalidasi asumsi tentang hal itu sebagai prasyarat untuk membuat perkiraan yang layak. Saya setuju, meskipun, setelah beberapa pertimbangan, bahwa itu adalah terlepas dari meningkatkan kemampuan seseorang untuk memperkirakan - mungkin memfokuskan kegiatan pada menemukan persyaratan akan lebih berguna segera daripada kegiatan estimasi. Poin bagus - mereka pasti membuat saya berpikir bahwa mungkin saya fokus pada keterampilan yang salah untuk ditingkatkan.
Rob
1
@ unforgiven3 Seorang insinyur yang baik harus selalu berusaha memperbaiki keduanya. Saya sudah dalam posisi di mana saya tidak ditugaskan dengan persyaratan engineering, tetapi saya diberikan spec yang memiliki apa yang saya lihat adalah masalah di dalamnya. Memiliki keterampilan untuk melihatnya dan mengajukan pertanyaan yang tepat sangat penting bagi siapa pun yang mengembangkan perangkat lunak, dan itu perlu dikerjakan. Namun, ketika saya memperkirakan, saya selalu mendasarkan perkiraan saya pada spesifikasi, bahkan jika ada pertanyaan. Saya hanya meninggalkan jendela yang lebih besar untuk kesalahan (memberikan peluang 75% bukannya 85%, atau memberikan jendela yang sedikit lebih besar).
Thomas Owens
1

Saya sarankan generator labirin / pemecah untuk poin-poin berikut:

  • Sangat menyenangkan untuk dilakukan
  • Anda tidak dapat memikirkan semua kasus untuk pertama kalinya
  • Hal-hal yang menghasilkan dan memecahkan cukup komplementer
  • Ini mencakup dari back-end dengan penghematan data ke front-end dengan pemuatan data
  • Banyak poin dapat diberikan kepada orang-orang: spesifikasi file, tampilan, generasi, penyelesaian, optimasi, pengujian dll ...
Whiskas
sumber
1

Anda dapat memainkan "Berapa lama waktu yang Anda butuhkan untuk menulis ini?" permainan. Mirip dengan sekelompok orang yang menyombongkan diri tentang bagaimana mereka dapat mengemudi ke Las Vegas dalam waktu X jam (di mana angka X biasanya berkurang dengan masing-masing pembual sampai seseorang mengklaim mereka dapat melakukannya dalam waktu kurang dari satu jam). Jadi untuk coders: Keluarkan tujuan sederhana dan lihat apa yang dikatakan masing-masing individu dan apakah ada konsensus oleh kelompok atau pendapat menonjol. Berapa lama waktu yang Anda butuhkan untuk menulis hello world? Apa artinya "menulis", apakah itu berarti "menjalankan" dan "menguji" juga? Apakah perlu lingkungan simulasi terlebih dahulu? Di platform mana dan lintas-kompiler dan alat apa yang sudah diinstal dan siap? dll. "Hello world" mungkin membutuhkan waktu 4 hari untuk "menulis" pada platform tertanam (instal alat, siapkan platform,

Setelah tim selesai memutuskan berapa lama tujuan mungkin, kemudian mengukur berapa lama sebenarnya (mungkin bukan untuk tujuan yang disarankan tetapi untuk yang serupa di dunia nyata) atau mengingat proyek sebelumnya dengan tujuan yang sangat mirip. Bandingkan taksiran dengan yang sebenarnya. Sangat membesar-besarkan kesalahan antara estimasi dan aktual dan menerbitkan kesimpulan untuk semua.

Jonathan Cline IEEE
sumber