Apa yang harus dilakukan ketika perkiraan waktu salah?

26

Katakanlah Anda memperkirakan waktu untuk sebuah kasus menjadi 3 hari. Dalam dua hari Anda melihat bahwa kasus ini berkembang dan skenario baru bermunculan yang tidak dihitung ketika perkiraan waktu di mana dilakukan. Temuan baru mengarah ke 2 hari ekstra (total 5 hari). Ini adalah masalah umum yang akan Anda hadapi cepat atau lambat sebagai pengembang.

  • Strategi apa yang dapat digunakan ketika Anda akan memberi tahu pimpinan proyek tentang waktu pengiriman yang baru?
  • Seringkali Anda mendapatkan pertanyaan mengapa? Bagaimana Anda memotivasi waktu pengiriman yang baru?

Faktanya adalah bahwa banyak proyek tidak menaruh banyak waktu pada analisis & desain selama SDLC.

EDIT: Dalam proyek yang sangat kompleks, tidak peduli berapa banyak waktu yang Anda pakai untuk Analisis & Desain selalu ada kejutan karena aturan bisnis terlalu kompleks. Namun dalam kasus seperti itu saya percaya pemimpin proyek harus menyadari kompleksitas dan memiliki sikap yang benar ketika kejutan yang tak terduga muncul. Pertanyaannya adalah bagaimana menangani para pemimpin proyek yang tidak memahami kompleksitasnya.

Amir Rezaei
sumber
1
Saya pikir pertanyaan yang lebih baik adalah, apa yang Anda lakukan ketika perkiraan itu benar ? Sebagian besar waktu, itu tidak akan terjadi.
Tim Post
@Tim Posting Anda benar tentang "Sebagian besar waktu, itu tidak akan" Saya ingin memesan.
Amir Rezaei
1
+1 - Terima kasih atas EDIT yang berisi kata-kata bijak. Fakta yang Anda soroti ("" Dalam proyek yang sangat rumit, tidak peduli berapa banyak waktu yang masuk akal untuk Analisis & Desain, selalu ada kejutan karena aturan bisnis terlalu rumit.) "" Sangat benar.
Karthik Sreenivasan

Jawaban:

17

Menyampaikan Berita Buruk

Anda benar-benar harus segera mengangkat masalah ini, namun jika Anda dapat melakukannya dalam skala waktu yang masuk akal (yaitu beberapa jam, tidak lebih) Anda harus melakukan sedikit penilaian dampak sebelum melakukannya.

Seperti halnya semua berita buruk, yang terbaik adalah memberikan informasi terperinci (daripada hanya mengatakan "itu akan terlambat") jadi sediakan banyak / banyak dari:

1) Estimasi / rentang waktu yang direvisi untuk tugas-tugas yang telah tergelincir.

2) Taksiran / rentang waktu yang direvisi untuk tugas-tugas di masa depan yang menurut Anda, mengingat mengetahui bahwa beberapa hal sudah berjalan, mungkin membutuhkan waktu lebih lama.

3) Alasan yang sangat singkat mengapa slippage terjadi (jangan berputar, hanya kebenaran, tetapi jangan terdengar seperti Anda membuat alasan). Dalam hal ini Anda menyatakan "Kami memperkirakan berdasarkan aturan X dan Y tetapi mereka sekarang memasukkan Z yang tidak pernah disebutkan". Dia mungkin dapat menggunakan ini dalam menjelaskan keterlambatan kepada klien dan mendidik mereka tentang pentingnya menjadi teliti sejak awal.

4) Jika alternatif yang memungkinkan untuk membawa hal-hal kembali ke jalurnya (biasanya mengurangi ruang lingkup tetapi mungkin ada opsi lain - bagian lain dari proyek ini mungkin di depan waktu dan mungkin untuk memindahkan tugas di sekitar).

Ingat dengan slippage dampak psikologis / kredibilitas adalah culmulative. Anda mungkin bisa lolos dengan satu tetapi yang kedua akan lebih sulit dan yang ketiga masih lebih keras.

Itulah mengapa poin 2 penting - perbaiki tidak hanya apa yang sudah tergelincir tetapi juga tugas masa depan yang sekarang Anda pikir mungkin memakan waktu lebih lama dari yang diperkirakan semula. Tergelincir terjadi di IT, tidak belajar dari kesalahan Anda adalah dosa yang lebih besar.

Mencegah Harus Memberikan Berita Buruk

Ada dua skenario di sini: pertama, Anda tidak melakukan perkiraan sendiri dalam hal ini tidak banyak yang dapat Anda lakukan selain mendorong untuk terlibat dalam perkiraan di putaran waktu berikutnya.

Kedua, Anda memang melakukan estimasi sendiri dalam hal ini Anda perlu melihat bagaimana melakukan estimasi yang lebih baik. Bagi saya, frasa kunci dalam pertanyaan adalah "selalu ada kejutan karena aturan bisnis terlalu rumit" .

Dengan hormat, jika itu selalu terjadi, itu seharusnya tidak mengejutkan . Jika Anda hanya mendapatkan setengah dari aturan bisnis maka Anda harus mengasumsikan bahwa dalam perkiraan Anda dan memungkinkan untuk merayap fitur.

Anda dapat melakukan ini dengan meningkatkan taksiran untuk aturan yang Anda miliki (ini berfungsi tetapi Anda tidak mendidik siapa pun tentang apa yang sebenarnya terjadi), tetapi lebih baik menyatakan dengan perkiraan Anda "Secara historis aturan yang kami dapatkan adalah versi yang disederhanakan dari apa yang sebenarnya mereka inginkan. Aturan yang mereka nyatakan akan memakan waktu 3 hari untuk diimplementasikan, namun kami harus mengizinkan 3 hari kontingensi untuk aturan yang belum disebutkan tetapi kemungkinan akan ditemukan selama pengembangan dan pengujian. "

Jika PM mempertanyakan hal ini maka Anda perlu mengingatkannya tentang semua waktu itu memang benar (dengan contoh - sulit untuk berdebat contoh) dan juga dengan lembut menyarankan bahwa ia berkepentingan untuk memberikan tepat waktu dan juga waktu Anda, jadi bukankah demikian? lebih baik bersikap konservatif?

Tetapi intinya: jika Anda selalu meremehkan karena faktor tertentu (dalam hal ini fitur merayap) maka angka itu menjadi perkiraan Anda.

Jon Hopkins
sumber
2
+1 "Seperti semua berita buruk, yang terbaik adalah memberikan informasi terperinci" Namun semua orang tidak memahami detail / kompleksitas masalah.
Amir Rezaei
@ Amir - Saya telah menambahkan sedikit lebih banyak, meskipun sebagai orang yang memahami kompleksitas, kebenaran sederhananya adalah bahwa Anda bertanggung jawab untuk menjelaskannya. Mereka tidak akan belajar cara lain.
Jon Hopkins
Poin bagus! "dengan contoh - sulit untuk memperdebatkan contoh" & "dengan lembut menyarankan bahwa adalah kepentingannya untuk memberikan tepat waktu". Mengenai "jika itu selalu terjadi, itu seharusnya bukan kejutan", masalahnya adalah bahwa waktu tambahan untuk kejutan tidak konstan. Jadi Anda mungkin tidak mengambil rata-rata, karena mereka cenderung memiliki variasi besar.
Amir Rezaei
+1 "Ingat dengan selip, dampak psikologis / kredibilitas bersifat kumulatif."
Karthik Sreenivasan
16

Estimasi berbasis waktu adalah perkiraan tentang masa depan, dan itu akan selalu gagal dalam jangka panjang. Ini adalah pertarungan sia-sia yang tidak bisa kau menangkan.

Hentikan estimasi dalam beberapa hari dan mulai gunakan estimasi relatif sebagai gantinya. Ini adalah contoh sederhana:

  1. Tetapkan angka untuk setiap tugas. Tugas terberat mungkin 10 dan tugas termudah 1.
  2. Mulai pemrograman untuk menyelesaikan tugas Anda.
  3. Setelah satu minggu, hentikan pekerjaan Anda dan jumlah angka semua tugas selesai. Katakanlah Anda berakhir dengan 14. Itu kecepatan mingguan Anda.

Minggu depan, ulangi prosesnya lagi. Saya yakin kecepatan Anda akan berubah, tetapi tidak banyak. Setelah beberapa minggu dengan ini, kecepatan Anda seharusnya cukup stabil dan itulah yang kami tuju. Sekarang Anda dapat mulai membuat rencana dengan percaya diri. Pilih tugas yang meringkas kecepatan Anda dan PM Anda bisa yakin itu akan selesai seperti yang dijanjikan. Itulah bagaimana Anda harus menangani para pemimpin proyek Anda.

Martin Wickman
sumber
Bisakah Anda memberi contoh bagaimana Anda melacak ukuran tugas? Apakah Anda membuat tabel dengan jenis tugas (seperti "buat formulir baru", "tambahkan metode ke layanan web X") atau apakah ini lebih merupakan firasat?
ngeri
Bandingkan saja dengan tugas yang telah Anda perkirakan dan selesaikan sebelumnya.
Martin Wickman
+1 - "Perkiraan berbasis waktu adalah perkiraan tentang masa depan, dan itu akan selalu gagal dalam jangka panjang. Ini pertarungan sia-sia yang tidak bisa Anda menangkan." Ini adalah pertama kalinya saya belajar tentang perkiraan relatif dan jelas merupakan makanan untuk dipikirkan. Terima kasih.
Karthik Sreenivasan
Ide yang brilian! Saya pasti akan mengeksplorasi ini lebih jauh.
meetpd
3

Segera setelah Anda melihat perkiraan salah, Anda perlu menaikkan bel alarm. Beri tahu mereka yang mengharapkan pengiriman tentang keterlambatan.

Minta bantuan dari rekan setim jika memungkinkan. Pastikan Anda masih menghadirkan perangkat lunak berkualitas tinggi.

Jalan pintas kemungkinan besar akan lebih membahayakan pada akhirnya, dan semua orang yang terlibat harus mengetahui hal ini. Atau setidaknya harus dijelaskan kepada mereka.

Morten
sumber
3

Ini terjadi begitu sering sehingga tidak ada mananger proyek berpengalaman akan membuat banyak dari itu. Jujur saja dan jangan membuat estimasi baru terlalu optimis; ketika Anda melihatnya akan memakan waktu lebih lama, katakan saja. Jangan katakan "Saya butuh sedikit waktu lagi" setiap hari.

Anda harus menjelaskan kepada manajer: apakah perkiraan itu salah sejak awal atau apakah keadaan yang merugikan (menghabiskan satu hari berburu bug) merupakan alasan penundaan? Pada kasus pertama, ada sesuatu yang salah dengan proses estimasi, mungkin terlalu optimis atau naif. Dalam kasus kedua, ini merupakan kasus untuk buffer yang diharapkan dimasukkan dalam rencana proyek.

pengguna281377
sumber
2

Selalu menjaga pemangku kepentingan yang relevan untuk mengetahui kemajuan Anda, termasuk (terutama!) Fakta bahwa perkiraan Anda terlalu optimis. Mereka tidak akan bahagia, tetapi mereka akan tahu di mana proyek itu benar-benar berdiri dan dapat merencanakannya.

Idealnya daftar fitur Anda sudah MoSCoWed - Harus, Harus, Bisa, Tidak.

Saat Anda menuju overrun, potong kaleng, lalu pilih Shoulds. Potong fitur sehingga Anda dapat mengirim tepat waktu: proyek Anda biasanya tidak hidup dalam isolasi, dan Anda melewati tanggal rilis berarti proyek hilir sekarang juga akan melampaui jadwal mereka.

Idealnya Anda hanya memiliki ~ 60% Musts. Jika Anda harus memotong yang Anda dalam kesulitan yang sangat dalam (mengalami overrun yang sangat serius), dalam hal ini Anda harus mengambil jalan pintas.

Pastikan Anda memberikan waktu yang cukup pada diri Anda setelah pelepasan untuk membersihkan kekacauan yang terjadi dengan memotong sudut!

Frank Shearar
sumber
4
+1 @Frank Poin bagus tentang "Potong fitur sehingga Anda dapat mengirim tepat waktu". Masalahnya di sini adalah bahwa saya bukan pemimpin proyek.
Amir Rezaei
@ Amir Dalam hal ini pelanggan Anda (sudah) pemimpin proyek Anda. Anda berkata, "Saya ketinggalan. Saya bisa memotong fitur ini, atau fitur itu. Apa yang harus saya lakukan?"
Frank Shearar
@ Frank Karena kita melakukan Scrum, dan case dipindahkan dari backlog ke sprint, itu sepertinya dituliskan di batu untuk PM untuk mengurangi case. Namun pengalaman PM mungkin tidak memiliki masalah seperti ini.
Amir Rezaei
Saya tidak suka MoSCoW. Satu-satunya yang pintar dengan itu adalah akronim. Simpan saja tugas Anda dalam tumpukan prioritas.
Martin Wickman
1
@Martin mengangkat bahu "Harus" berarti "jika Anda tidak mengirim fitur ini, Anda tidak memiliki apa-apa". Itu informasi yang berbeda dengan jaminan simpanan yang diprioritaskan, yaitu "fitur mana yang Anda inginkan terlebih dahulu?" Anda masih memiliki jaminan simpanan prioritas dengan MoSCoW.
Frank Shearar
2

Estimasi proyek adalah judi, sederhana dan sederhana. Tidak ada hadiah tanpa risiko.

Jika manajer tidak memahami ini, itu adalah hal pertama yang akan saya jelaskan.

Pertanyaannya adalah, siapa yang menanggung risiko?

Jika Anda memiliki kontrak harga tetap, maka Anda menanggung risikonya.

Jika waktu dan bahan, maka dia menanggung risiko.

Jadi, ketika memperkirakan, penting untuk memahami bahwa Anda menebak, dan Anda perlu memiliki gagasan seberapa tidak pasti perkiraan itu, dan siapa yang menanggung risiko.

Mike Dunlavey
sumber
1

Saya percaya strategi terbaik adalah terus - menerus memperbaiki estimasi Anda . Saya tahu, saya katakan: pertanyaan Anda entah bagaimana salah tempat.

Membaca Memperkenalkan Penemuan yang Disengaja oleh Dan North Saya sampai pada kesimpulan bahwa menempatkan upaya estimasi dalam fase awal sama dengan membuat prediksi tepat ketika ketidaktahuan Anda tentang masalah dan domain berada pada level maksimal. Hadapi itu, Anda tidak dapat memprediksi apa yang tidak pasti, terutama jika itu masih belum diketahui .

Metodologi tangkas memecahkan masalah ini dengan memecah masa hidup proyek menjadi beberapa bagian (sprint, di Scrum), dan mengulangi estimasi (cerita ukuran) setiap minggu. Setiap minggu, apa yang Anda ketahui tentang masalah diperbaiki, dan begitu juga perkiraannya.

Bagi saya, estimasi tidak bisa benar atau salah. Itu hanya bisa semakin disempurnakan . Estimasi bukanlah komitmen. Itu sebabnya disebut estimasi.

Yang terbaik yang dapat Anda lakukan ketika Anda terlambat (dan juga ketika Anda "berisiko untuk mengirim di muka", karena masalahnya sama: Anda telah memperkirakan dengan buruk) adalah untuk meningkatkan dan menyampaikan fakta kepada pelanggan sesegera mungkin. Ini disebut manajemen risiko. Semakin cepat Anda memberikan umpan balik, semakin efektif kesalahan balasannya. Biasanya itu berarti bahwa, jika Anda memiliki bukti Anda tidak dapat memberikan segalanya, Anda harus berbicara dengan pelanggan Anda, katakan padanya Anda hanya dapat memberikan 70% komitmen dan biarkan dia memutuskan apa yang memiliki nilai bisnis lebih untuknya dan harus digunakan terlebih dahulu .

Saya menulis tentang itu di sini Estimasi salah, tolong! Saya terlambat! Potong fitur dan hentikan air terjun!

Arialdo Martini
sumber
1

Ini disebut taksiran karena merupakan tebakan yang berpendidikan. Ini bukan deskripsi yang sempurna tentang masa depan, dan saya memiliki sedikit kesabaran untuk orang-orang yang memperlakukan perkiraan perangkat lunak seperti itu. Pada akhirnya, banyak hal akan memakan waktu lebih lama dari yang Anda harapkan, dalam kasus yang jarang terjadi mereka mungkin membutuhkan urutan lebih banyak waktu. Ini terjadi bahkan pada programmer terbaik di dunia. Bagaimana mungkin seorang manajer berharap itu tidak terjadi pada Anda? Jika manajer Anda tidak memahaminya, dia tidak memiliki banyak pengalaman. Jika dia pura-pura tidak memahaminya untuk menerapkan tekanan jadwal, dia tidak masuk akal.

Pendekatan terbaik adalah yang paling jelas. Segera setelah Anda memiliki gagasan yang jelas bahwa suatu fitur akan memakan waktu lebih lama dari yang diharapkan, diskusikan dengan manajer Anda. Sering ada cara untuk melanjutkan yang akan menyelesaikan masalah Anda dan manajer Anda. Artinya, bagian dari fitur yang memperlambat segalanya mungkin relatif tidak penting atau mudah dimodifikasi dengan cara yang memungkinkan kemajuan yang lebih cepat. Apa pun masalahnya, jangan digertak menjadi perkiraan optimis kedua.

PeterAllenWebb
sumber
0

Biarkan semua tim mengetahuinya dan mencoba menemukan solusi. Saya merekomendasikan 3 solusi, dari prioritas tinggi ke rendah:

Sebuah. Cobalah untuk menemukan hot-fix sementara, atau quick-around

b. Pekerjaan yang bisa Anda lakukan, lakukan yang terbaik. Setelah menunjukkan bagian pekerjaan Anda yang sangat baik kepada klien, mintalah bantuan mereka: kami bisa melakukan ini, tetapi ada beberapa masalah, dan itu mungkin memperlambat produktivitas pekerjaan Anda ... Mungkin Anda bisa bertanya kepada mereka apakah ada permintaan yang tidak perlu / fitur yang dapat dijatuhkan, atau dikurangi.

Usulkan pendekatan alternatif untuk masalah mereka, mungkin ide yang bagus.

c. Bekerja lembur

Hoàng Long
sumber
Saya memperbarui pertanyaan saya. Adalah pemimpin proyek yang akan diberitahu.
Amir Rezaei
Saya tidak begitu mengerti. Anda adalah pemimpin proyek, atau hanya seorang programmer?
Hoàng Long
0

Pilihan:

  • Memotong fitur
  • Potong kualitas (tinggalkan perbaikan bug untuk nanti)
  • Meningkatkan produktivitas
    • Temukan dan hapus pemblokir
    • Istirahat / istirahat
    • Potong waktu pribadi / tidur
    • Dapatkan lebih banyak tenaga kerja
    • Dapatkan alat yang lebih baik
    • Latihan
    • Tingkatkan motivasi
      • Makanan gratis
      • [Janji] kenaikan gaji / promosi / liburan / bonus / dll.
      • Ancaman
      • Memperbaiki kondisi kerja (perangkat keras, furnitur, dll.)
      • Ubah lingkungan - bekerja dari kedai kopi atau memindahkan seluruh tim ke tempat yang dingin - pondok gunung atau rumah danau?

sumber
1
Perlu dicatat bahwa setiap kata dari itu adalah jawaban JANGKA PENDEK untuk pertanyaan "apa yang harus dilakukan ketika estimasi waktu salah". Terutama, ancaman meningkatkan motivasi secara singkat , dan kemudian memiliki dampak sebaliknya.
Dan Ray
Saya setuju bahwa ancaman mengisap, meskipun saya yakin mereka bekerja untuk beberapa orang dan dalam beberapa situasi, terutama jika Anda berencana membiarkan mereka pergi.
0

Ini adalah masalah umum :)

Salah satu pendekatan yang lebih sederhana adalah menambahkan buffer ke setiap estimasi yang Anda lakukan, karena masalah yang tidak terduga selalu terjadi. Ukuran buffer tergantung pada ukuran tim dan ketidakpastian teknologi dan masalah itu sendiri.

Tim yang lebih besar memiliki lebih banyak orang yang mungkin sakit dan lebih sedikit orang yang tahu "segalanya".

Teknologi baru selalu lebih berisiko daripada yang sudah Anda ketahui.

Dan ketika Anda melihat bahwa Anda tidak akan selesai pada tanggal perkiraan, komunikasikan lebih awal dengan para pemangku kepentingan. Mungkin Anda dapat memprioritaskan ulang barang atau menunda fitur tertentu setelah berbicara dengan pelanggan / pemangku kepentingan.

Patrick Cornelissen
sumber