Berurusan dengan perkiraan yang mengerikan

63

Sebuah proyek terbaru yang saya kerjakan terbukti sangat diremehkan oleh arsitek. Perkiraan keluar setidaknya 500%.

Sayangnya saya dibawa ke proyek setelah estimasi ditandatangani dengan pelanggan. Sebagai dev senior, saya segera menyadari bahwa spesifikasi fungsional dan teknis. berisi beberapa celah besar dan ketidakpastian.

Akibatnya saya merasa terdorong untuk mengadakan pertemuan darurat dengan direktur bisnis dan teknis untuk memberi tahu mereka kenyataan. Sebagai pengembang pertama dan terutama, saya menemukan ini situasi yang sangat menegangkan dan sulit. "Bisnis" menuduh IT tidak kompeten dan menjadi kurir saya menerima beberapa "peluru".

Pelanggan mengancam untuk membatalkan akun, namun sampai saat ini proyek tersebut masih belum selesai dan saya tidak lagi terlibat secara langsung dengannya.

Arsitek itu orang yang baik secara sosial, tetapi berdasarkan episode ini tidak kompeten atau ada tekanan penjualan / bisnis besar yang mempengaruhi perkiraannya.

Jadi, sebagai programmer, apa pengalaman Anda tentang situasi semacam ini dan bagaimana Anda menyarankan untuk menghadapinya?

Abu
sumber
11
Saya rasa respons Anda adalah buku teks yang benar.
Beberapa jawaban luar biasa di sini!
4
Saya ngeri tentang fakta kalau Anda menelepon dan rapat darurat dengan direktur bisnis dan teknis. Mengapa tidak membahas hal ini dalam proyek terlebih dahulu. Bekerja di lingkungan adalah jika semua orang meningkatkan semuanya lebih mengganggu daripada memiliki perkiraan yang buruk. Jika, sebagai pengembang, mengidentifikasi lubang dalam spesifikasi, (membantu) mengisi lubang, dan memperbarui estimasi dan membiarkan pemimpin proyek menjelaskan situasinya kepada pelanggan.
3
@Bernie, Untuk memperjelas, eskalasi adalah untuk direktur perusahaan (bisnis dan teknis), tidak langsung ke pelanggan. Juga, saya menjelaskan situasinya (seperti yang saya lihat) kepada manajer proyek yang merasa kekhawatiran saya valid dan memutuskan eskalasi diperlukan. Namun dia tahu betul bahwa itu bisa menciptakan situasi "sulit" dan senang membiarkan saya memimpin.
2
Terkadang orang membuat kesalahan estimasi yang tidak akurat. Semua orang membuat kesalahan, itu tidak berarti mereka tidak kompeten atau dipaksa untuk melakukannya.
Angelo

Jawaban:

53

Balasan panjang, tapi hei, saya punya ringkasan di bagian akhir, jadi langsung saja ke ringkasan jika Anda tidak bisa repot membaca semuanya!

Sebagai seorang pengembang saya harus berurusan dengan situasi secara harfiah setiap proyek lain, tetapi tidak sampai saya pindah ke manajemen proyek bahwa saya belajar bagaimana menghadapinya secara efektif. Bagi saya, bertransaksi secara efektif adalah tentang dua hal: mengelola harapan dan memahami cara kerja estimasi.

Mulailah dengan premis bahwa tidak etis untuk memberikan estimasi, berkomitmen pada estimasi atau memberikan indikasi ketepatan estimasi lainnya tanpa bisa melakukan uji tuntas terlebih dahulu. Orang lain mengandalkan kemampuan profesional Anda untuk memperkirakan jumlah pekerjaan yang dibutuhkan, memberikan indikasi yang salah akan merugikan mereka dan bisnis mereka.

Tetapi Anda harus memberikan sesuatu, dalam kehidupan nyata Anda terseret ke pertemuan dadakan atau proyek yang terlambat dan atasan Anda mungkin akan memperjelas bahwa mereka mengharapkan Anda untuk mendapatkan beberapa angka langsung atau mengomentari perkiraan yang mereka berikan. Di sinilah manajemen harapan berperan.

Jelaskan bahwa akan salah jika Anda memberikan angka atau indikasi apa pun tanpa memahami masalahnya dan menghitung sendiri angka-angkanya. Katakan bahwa angka mereka mungkin benar, Anda tidak tahu sebelum Anda melakukan latihan estimasi sendiri. Dan meskipun Anda mungkin memiliki gambaran yang bagus tentang apa yang dibutuhkan di sana dan kapan, katakan bahwa Anda masih perlu waktu untuk menghitungnya. Hanya ada satu perkiraan yang mereka harapkan Anda berikan: kapan Anda akan bisa memberikan perkiraan. Dengan segala cara menyediakan angka itu.

Sebagai pengembang tidak pernah mengambil tanggung jawab untuk (atau memberikan indikasi yang dapat diartikan sebagai penerimaan) estimasi orang lain tanpa dapat meninjau mereka terlebih dahulu. Sebagai seorang manajer proyek, ini adalah masalah yang sama sekali berbeda, karena dengan demikian Anda benar-benar memiliki kendali atas proses estimasi: cara estimasi diperoleh dan ditinjau dan Anda harus bergantung pada orang lain untuk menyelesaikan pekerjaan yang sebenarnya dan Anda perlu membuat yakin mereka berkomitmen.

Bahkan tidak pernah mengomentari perkiraan tanpa bisa melakukan uji tuntas. Ini etis. Seorang pengacara atau dokter akan membuatnya sangat jelas bahwa mereka tidak dapat memberikan saran apa pun kecuali klien (atau pasien) bermain dengan aturan mereka dan menjalani prosedur penilaian terlebih dahulu. Anda juga memiliki hak untuk memuaskan pertanyaan Anda sebelum memberikan pendapat profesional.

Bagian kedua adalah tentang cara kerja estimasi. Saya menyarankan untuk meneliti berbagai pendekatan untuk melakukan estimasi dan bagaimana proses estimasi bekerja, termasuk industri selain pengembangan perangkat lunak (manufaktur, pasar keuangan, konstruksi). Ini akan memberi Anda ide apa yang bisa diharapkan secara wajar dari bos atau klien Anda dan, anehnya, akan membantu membuat prediksi yang lebih akurat tentang jumlah pekerjaan. Ini akan meningkatkan kemampuan Anda untuk mempertahankan perkiraan Anda dan Anda harus mempertahankan angka setiap kali mereka berbeda dari yang disediakan oleh arsitek atau tenaga penjualan.

Biasanya, cara kerjanya, adalah bahwa perkiraan Anda dipindai pertama kali untuk item yang tampak aneh atau relatif besar. Karena itu bersiaplah untuk membela apa pun dengan nama "non-standar". Juga bagi tugas yang lebih besar sehingga semua tugas memiliki urutan besarnya yang sama, yaitu jika sebagian besar tugas membutuhkan waktu 2 hari dan satu tugas tunggal adalah 10 hari, bersiaplah untuk dilatih.

Menjadi jelas tentang apa yang termasuk dalam setiap tugas, yang terbaik untuk membagi pengujian dev dan unit daripada hanya memiliki dev dan meminta seseorang berasumsi bahwa itu termasuk dokumentasi juga. Tentunya dengan cara ini Anda harus menghasilkan estimasi berbutir cukup baik.

Selanjutnya pengeboran datang. Karena cukup sulit untuk meninjau rincian pekerjaan yang lama, klien atau atasan Anda kemungkinan akan mengadopsi strategi yang berbeda: berkonsentrasi pada bit acak, mereka mungkin tahu sesuatu tentang dan menelusuri sampai mereka berhasil mendiskreditkan seluruh perkiraan atau akan puas dengan Anda jawaban. Kredibilitas seluruh perkiraan mungkin tergantung pada sampel acak! Karenanya sekali lagi, Anda perlu waktu untuk mempersiapkannya dengan hati-hati, hanya memasukkan bit yang relevan, mengecualikan tambahan atau memindahkannya ke bagian "baik untuk dimiliki" dan memikirkan bagaimana Anda akan mempertahankan angka-angka.

Jelas Anda dapat konsisten dalam pendekatan Anda, yaitu memperkirakan berdasarkan fitur, jumlah layar dll atau memiliki campuran pendekatan, tetapi dalam hal apa pun bersiaplah untuk mempertahankan mengapa Anda memilih cara estimasi tertentu. Bersiaplah juga untuk menjelaskan mengapa angka Anda berbeda dari upaya orang lain dalam memprediksi jumlah pekerjaan yang diperlukan.

Pelajari tanda-tanda perkiraan lemah yang jelas:

  • Dipenuhi dengan tugas run-of-the-mill umum, disalin dari templat (perkiraan yang baik khusus untuk tugas yang dihadapi).

  • Perkiraan berbutir kasar (yaitu tugas yang lebih lama dari beberapa hari).

  • Perkiraan dilakukan pada tahap awal proyek atau oleh seseorang yang mungkin tidak memiliki pengetahuan aktual tentang persyaratan atau pekerjaan yang terlibat.

  • Taksiran yang disusun oleh orang selain pelaku sebenarnya

  • Perkiraan yang tidak jelas (tidak jelas apa yang termasuk dan, sama pentingnya, tidak termasuk).

  • Perbedaan substansial dalam urutan besarnya tugas.

Berlatihlah dalam mengevaluasi perkiraan orang lain dan mengebor angka-angka tersebut tanpa mengetahui detail implementasi yang sebenarnya. Ini akan membantu mendukung klaim Anda untuk beberapa waktu tambahan ketika ditekan dengan permintaan untuk mengonfirmasi perkiraan orang lain ketika Anda tidak memiliki bukti kuat.

Untuk meringkas:

  • Jangan berkomitmen untuk perkiraan yang buruk atau apa pun, sebelum Anda memiliki kesempatan untuk melakukan uji tuntas.

  • Jelaskan sejak awal, jangan biarkan orang menganggap itu cara lain dan menafsirkan kesunyian Anda sebagai tanda persetujuan.

  • Ketahui cara berbagai metode estimasi bekerja, aplikasi praktis dan kelebihannya, termasuk pengembangan perangkat lunak luar ini.

  • Bersiaplah untuk mempertahankan perkiraan Anda.

  • Pelajari cara mengevaluasi perkiraan orang lain sehingga Anda tidak harus berkomitmen pada angka yang sangat tidak akurat.

Vlad Gudim
sumber
Saran: gaya yang baik (setidaknya dalam penulisan koran ;-) adalah untuk menempatkan ringkasan terlebih dahulu, dan kemudian menindaklanjuti dengan detail / latar belakang pendukung.
Ini jawaban yang bagus dan sangat membantu. Salah satu jawaban terbaik pada SO.
Alex Angas
27

Mustahil untuk memprediksi masa depan. Membutuhkan prediksi ("perkiraan") hanya meminta masalah. Semua orang melakukannya, dan semua orang salah.

Penilaian Anda "oleh 500%" mungkin sama salah dengan perkiraan arsitek. Lagi pula, "... sampai saat ini proyek ini masih belum selesai ..." Tidak ada fakta yang tersedia di sini.

Tidak ada yang tahu jawaban "benar". Dan sampai selesai, tidak ada yang akan tahu.

Dan bahkan setelah itu selesai, estimasi "asli" (dengan atau tanpa kontrol perubahan) mungkin tidak berkorelasi dengan apa pun yang sebenarnya dicapai.

Memperkirakan adalah jebakan - ini adalah permainan yang dicurangi. Anda tidak bisa menang, Anda tidak bisa mencapai titik impas dan Anda bahkan tidak bisa keluar dari permainan.


Sunting

Berurusan dengan perkiraan buruk; Perkiraan "warisan" yang tampak salah .

Itu ada. Anda tidak setuju dengan perkiraan orang lain. Entah mereka menghilangkan sesuatu yang Anda anggap perlu; mereka memiliki ruang lingkup pekerjaan yang berbeda dari yang Anda miliki, atau mereka memiliki tingkat produktivitas yang berbeda. Juga, jika perkiraan lebih dari sekadar upaya, mereka memiliki basis biaya yang berbeda. Semuanya bisa diperdebatkan. Jadi sengketa detail yang mengarah ke perkiraan. Jangan membantah angka keseluruhan - tidak ada informasi nyata dalam ringkasan. Sengketa perincian individual yang mendukung estimasi. Cari tahu apa yang mereka pikirkan.

Asumsi Anda sama salahnya dengan asumsi mereka. Kemungkinan yang sama.

Saat Diminta Untuk Memperkirakan .

  1. Anda akan salah.

    1. Mereka berbohong tentang ruang lingkup pekerjaan.

    2. Anda tidak tahu produktivitas tim.

    3. Apa pun teknologi baru yang terlibat telah disalahpahami.

  2. Anda tidak bisa hanya melempar bantalan untuk menutupi hal-hal ini secara acak. Anda sebenarnya tidak tahu dan tidak memiliki dasar untuk "memperkirakan". Itu hanya menebak. Lupakan saja.

Aturan 1: Karena kamu hanya menebak, tebak sedikit demi sedikit.

Pertanyaan mendasar dalam situasi "memperkirakan" tidak memprediksi masa depan. Anda tidak dapat melakukan itu dengan akurasi selama periode waktu lebih dari satu atau dua minggu. Batasi prediksi Anda ke cakrawala waktu di mana Anda memiliki pengetahuan rinci langsung dan langsung. Misalnya, rilis berikutnya.

Pertanyaan mendasarnya adalah - biasanya - pengambilan keputusan dari pihak pembeli atau pelanggan Anda. Pertanyaannya bukan "berapa biayanya?" - itu tidak lengkap. Pertanyaannya adalah "apakah investasi akan sepadan?" Pertanyaan sebenarnya lebih pada garis "apa rasio biaya / manfaat" dan "kapan kita harus berhenti belanja karena lebih banyak investasi tidak akan menghasilkan lebih banyak pengembalian?" Itulah pertanyaan sebenarnya.

Aturan 2: Mendukung pembuat keputusan dengan informasi faktual.

Kebanyakan orang lebih baik dilayani dengan pendekatan Agile. Rilis pertama - satu bulan dari sekarang - akan memakan waktu 5 orang × 4 minggu dan itu akan menghasilkan fitur X yang memperbaiki kerugian $ 1 juta / hari dan fitur Y yang memperbaiki peluang hilang $ 200 ribu / minggu. Anda memiliki pengetahuan terperinci tentang apa yang Anda lakukan, sehingga prediksi ini masuk akal. Rilis setelah itu agak kabur.

Rilis satu tahun dari sekarang sejauh ini di masa depan bahwa setiap prediksi hanya dalam angka acak. Jangan memusingkan detail apa pun lebih dari 6 bulan di masa depan, cukup gunakan aturan praktis yang sederhana.

Ketika mereka bertanya apa TCO itu, Anda harus jujur. "Total biaya terjadi ketika Anda berhenti membayar untuk pengembangan. Sampai Anda berhenti membayar, Anda akan selalu dikenai biaya."

Pertanyaan sebenarnya adalah "masalah apa yang Anda coba perbaiki?" atau "peluang baru apa yang Anda kejar?" dan "apa nilainya?"

Aturan 3: Buat perangkat lunak lebih murah dari masalah yang seharusnya dipecahkan.

Jika Anda tidak tahu masalahnya dengan baik, perkiraan akan disesuaikan agar sesuai dengan persepsi. Coba hindari ini.


Tentang Probabilitas . Kecuali untuk penyakit atau kecelakaan yang melemahkan, tidak ada bagian dari pengembangan perangkat lunak yang diatur oleh probabilitas aktual. "Risiko" hanyalah manajemen yang buruk. Secara umum dalam bentuk "kami tidak memperhitungkan kompleksitas kebutuhan bisnis A atau teknologi B". Lebih sering dari bentuk "karena kami belajar lebih banyak tentang masalah atau teknologi, kami mengubah jadwal" yang dihukum sebagai "ruang lingkup creep".

Tidak ada kemungkinan mempelajari hal-hal dan mengubah ruang lingkup. Itu suatu kepastian.

Tentang Perencanaan . Ada "perencanaan" dan ada "memperkirakan". Merencanakan apa yang akan dibangun adalah satu hal, paling baik disajikan sebagai daftar periksa atau grafik ketergantungan. "Memperkirakan" upaya yang diperlukan didasarkan pada faktor-faktor yang tidak diketahui.

"Perencanaan" adalah manajemen yang baik.

"Memperkirakan" membutuhkan pengetahuan yang tidak diketahui. Untuk "memperkirakan upaya" secara akurat, Anda harus memiliki tingkat wawasan kode sumber ke dalam produk dan Anda harus tahu orang mana yang akan mengetikkan kode sumber itu dan kesalahan apa yang akan dilakukan individu. Karena Anda tidak dapat mengetahuinya, estimasi apa pun pasti salah. Dan seringkali salah poin dari menyesatkan dan karenanya tidak berguna.

Jika estimasi keluar sebesar 500% dan proyek masih berjalan, berapa nilainya?

Tidak ada Yang dilakukannya hanyalah membuat orang tidak bahagia. Tapi proyek tetap berjalan.

Karena tidak ada yang bisa melihat masa depan, mendapatkan estimasi yang tepat tidak berarti apa-apa. Jadikan bermanfaat, bantu orang membuat keputusan.


Pertahankan cakrawala singkat. Memberikan nilai secepat mungkin. Buat rencana yang memungkinkan pelanggan untuk membatalkan proyek kapan saja dan masih memiliki nilai.

Jangan biarkan rencana itu menjadi satu-satunya "kebenaran suci" dalam proyek tersebut. Fungsi yang dapat dikirim bersifat sakral. Segala sesuatu yang lain harus berubah seiring perubahan yang disampaikan.

Jangan biarkan rencana melampaui nilai yang diciptakannya.

S.Lott
sumber
500% itu dari awal proyek hingga minggu ini. Ini akurat, itu kecuali proyek berlanjut selama beberapa bulan lagi dalam hal ini 1000% mungkin lebih akurat;)
1
Apa pun cara "setidaknya 500%" masih akurat!
Jon Skeet
1
@ Ash: ini yang saya katakan: berhenti mengkhawatirkannya. Proyek berjalan dengan perkiraan buruk karena perkiraan JANGAN MASALAH. Semua perkiraan mengerikan. Mereka salah. 500% Anda masih dianggap remeh, karena itu Anda salah. Semua orang salah. Ini adalah permainan yang tidak bisa kamu menangkan.
S.Lott
1
@Totophil: estimasi tidak diperlukan. Ini hanya diinginkan, dan hanya di beberapa lingkaran. Pertanyaan ini adalah semua bukti yang diperlukan bahwa proyek berjalan dengan perkiraan yang salah dan tidak berguna. Jika estimasi tersebut BUKAN merupakan faktor penentu dalam proyek, nilai apa yang dimilikinya?
S.Lott
1
@ Ash: Dalam hal ini, "seluruh dunia" MENGABAIKAN perkiraan dan tetap melanjutkan. Fakta-fakta dalam kasus ini menunjukkan bahwa perkiraan itu tidak masalah. Kesehatan seseorang TIDAK boleh di telepon - perkiraan adalah permainan bodoh. Dulu saya jijik, sekarang saya coba geli.
S.Lott
20

Jika tidak ada cukup waktu, tidak ada cukup waktu. Lagipula tidak ada solusi ajaib untuk menyelesaikan proyek. Menurut pendapat saya, Anda telah melakukan apa yang bisa Anda nyatakan. Ternyata mereka harus menemukannya dengan cara yang sulit. Begitulah biasanya. Semoga arsitek dan manajemen telah belajar dari kesalahan mereka dan tidak melakukannya lagi. Jika ini bisnis seperti biasa ketika manajemen terlalu bodoh untuk mendengarkan argumen Anda dan mengambil tindakan yang tepat maka mungkin ide yang baik untuk mencari proyek lain atau perusahaan lain.

"Pengembang adalah pengrajin, dan hal terburuk yang dapat kamu lakukan untuk pengrajin adalah menyuruhnya mengirimkan produk jelek." Kutipan terkenal dari suatu tempat tapi saya tidak ingat dari mana.

TomHastjarjanto
sumber
Ya, saya pikir manajemen sedikit terkejut ketika saya datang kepada mereka dan menjelaskan realitas situasi (saya punya metrik dan bukti untuk mendukung ini). Masih saya pikir itu akan memiliki beberapa manfaat untuk "waktu berikutnya".
Saya setuju jika Anda menjelaskan kenyataan mereka akan mengingat Anda untuk proyek-proyek berikutnya dan menghargai komentar Anda :)
Shoban
Kutipan bagus! Saya menemukan artikel ini softwarebyrob.com/2006/10/31/… yang mungkin merupakan sumbernya.
Bill Karwin
6

Kejujuran harus selalu dihormati. Saya berada di ujung penerima "visi arsitek", dan ketika pengembang datang kepada saya dengan berita mengerikan bahwa seluruh solusi tidak akan berfungsi, kami pergi ke unit bisnis dan melakukan percakapan yang mengerikan. Pengembang kemudian datang dengan perkiraan baru yang terdiri dari 80% dari fungsionalitas, tetapi ia disampaikan tepat waktu dan sesuai anggaran.

Unit-unit bisnis dimenangkan oleh fakta bahwa pengembang berbicara jujur ​​kepada mereka, mengakui kedatangan singkat perusahaannya, dan bekerja seperti anjing untuk disampaikan. Kami memiliki orang ini bekerja untuk kami selama 7 tahun terakhir karena dia selalu jujur.

Seluruh skenario sangat jarang - sebagian besar unit bisnis berpikir Anda bodoh karena tidak dapat melakukan. Anda perlu mencari pelanggan yang tidak beroperasi dengan cara ini, karena Anda akan mendapatkan lebih banyak dengan mereka dalam jangka panjang daripada yang Anda coba untuk menyenangkan para cretin yang hanya ingin memperlakukan Anda seperti orang brengsek.

Dalam hal arsitek yang tidak tahu bidangnya, hindari mereka seperti wabah. Saya memiliki seorang mentor yang biasa memperkuat dengan saya dengan cara yang kasar - "Ini. Bukan. Untuk. Berlatih!" Dia akan mentolerir kesalahan hanya jika Anda membuatnya lebih awal, memperbaikinya, dan tidak pernah melakukannya lagi. Perusahaan yang memungkinkan orang yang tidak berpengalaman, teknis, dalam posisi dengan pelanggan karena mereka dapat "berkomunikasi" layak keluar dari bisnis.

David Robbins
sumber
5

Saya pernah menghadapi situasi ini. Sebuah proyek kehabisan jadwal ini karena bisnis mengubah persyaratan dan ada kesenjangan komunikasi dan manajemen senior menginginkan proyek di proyek tepat waktu. Untuk membuatnya lebih buruk, seorang pria yang mengerjakan proyek ini ditarik keluar untuk mengisi celah lain yang lebih diprioritaskan.

Tim saya menghabiskan malam untuk menyelesaikan proyek. Suatu malam sekitar pukul 3 pagi di pagi hari (saya bekerja 19 jam penuh) saya mengirim email kepada manajer saya untuk melakukan sesuatu tentang hal itu.

Hari berikutnya kami mengadakan pertemuan (Just the dev guys). Seluruh tim datang pada akhir pekan dan menguji proyek bahkan sebelum itu selesai. Tidak banyak orang yang bergabung dengan tim dalam melakukan perbaikan cepat. Akhirnya kami dapat menyelesaikan proyek dengan upaya seluruh tim (Bukan hanya tim proyek). Kami mengikuti proses yang sama untuk proyek lain.

Seluruh tim (bahkan jika mereka tidak terlibat dalam proyek) menguji aplikasi dan membantu dalam perbaikan bug cepat.

Catatan: Tim saya terdiri dari sekitar 25 orang yang sekali lagi memiliki sub tim yang mengerjakan berbagai proyek.

Satu-satunya saran saya adalah "Bicaralah dengan Manajer. Beri tahu mereka dengan tegas bahwa proyek tidak dapat disampaikan tepat waktu. Juga berikan mereka alternatif. Manajer selalu berharap bayi akan dikirimkan tepat waktu, apa pun yang terjadi :)"

Shoban
sumber
5

Sementara bisnis tidak sering menyukai kebenaran bahwa hal-hal memakan waktu lebih lama dari yang diharapkan, mereka lebih suka dirangkai lebih sedikit. Semakin cepat Anda memberi tahu seseorang berapa lama waktu yang dibutuhkan, semakin cepat setiap orang dapat merencanakan keadaan. Meskipun ini awalnya bisa menjadi waktu yang sulit, dalam jangka panjang akan lebih mudah. Lakukan dengan benar untuk yang kedua kalinya dan bangun dalam keadaan darurat.

Miles D
sumber
4

Izinkan saya menekankan satu poin kunci ketika berurusan dengan manajemen Anda: manajer menghargai solusi.

Jika Anda harus pergi ke manajemen Anda dengan masalah (mis. Perkiraan itu sangat tidak realistis), bekerja keras terlebih dahulu untuk memasukkan alternatif cara mengatasi situasi. Misalnya, Anda dapat melakukan analisis Pareto (aturan 80/20) untuk memahami nilai sistem, Anda dapat membuat kasus yang diprioritaskan untuk memotong fitur (setidaknya dari rilis pertama) untuk berkonsentrasi pada mereka yang memiliki nilai bisnis maksimum, Anda dapat mencari alternatif (proyek sumber terbuka, dll.) yang merupakan pengganti yang memadai untuk bagian khusus sistem, dll.

Tidak ada keraguan bahwa tas seberat lima pon tidak akan menampung dua puluh lima kilogram pasir, tetapi bagian dari membantu manajemen Anda menyerap pesan tidak menyenangkan Anda adalah bukti bahwa Anda adalah sekutu yang terlibat.

joel.neely
sumber
Itu sangat dekat dengan apa yang sebenarnya saya lakukan. Saya terus mencoba untuk mengambil sudut pandang pelanggan dalam diskusi dengan manajemen untuk memastikan mereka tahu mengapa saya melihat ini adalah masalah seperti itu. Baik untuk memvalidasi, daripada MB.
3

Anda mungkin tertarik pada artikel IEEE ini yang telah saya blogkan sebelumnya. Berikut adalah highlightnya.

  • Salah satu pendorong terbesar kegagalan proyek adalah estimasi yang terlalu optimis.
  • Salah satu alasan besar mengapa perkiraan terlalu rendah adalah terlalu banyak tekanan dari atas untuk disampaikan lebih awal.
  • Yang lainnya adalah ruang lingkup creep selama implementasi tanpa kunjungan ulang dari perkiraan.
Glenn
sumber
3

Pertama saya akan berbicara dengan arsitek yang bersangkutan, secara informal, dan memeriksa daftar masalah Anda dengan perkiraannya, dan mencoba meyakinkannya di mana masalahnya, dan perbedaan waktu yang harus mereka selesaikan.

Kemudian saya akan mencoba dan pergi ke manajer lini / manajer proyek Anda dan mendiskusikannya dengan mereka.

Pada akhirnya, arsitek memberikan ESTIMASI, sehingga mereka dapat berubah, dan kadang-kadang dalam jumlah besar, sehingga selama mereka disadari, sehingga mereka dapat membuat rencana alternatif, seperti meluncurkan produk di fase, mengurangi fungsionalitasnya atau cara lain.

Pada akhirnya, setelah Anda melakukan hal di atas, itu bukan lagi tanggung jawab Anda.

Anda seharusnya tidak langsung pergi ke klien, atau bos arsitek, ini hanya mempromosikan perasaan buruk, dan hampir selalu Anda akan disalahkan.

Bravax
sumber
Ya, tetapi estimasi tunggal harus selalu diberikan dengan angka kasus terburuk / terbaik. Jika dia mengatakan yang terbaik: 5 minggu, terburuk: 4 bulan, saya tidak akan mengeluh apa-apa. Fakta bahwa kasus terburuknya (bagian penting) sebenarnya keluar oleh 500% adalah hal yang mengkhawatirkan.
Tentu saja itu mengkhawatirkan, tetapi ia mungkin ditekan untuk memberikan satu nomor. (Manajer proyek tertentu bersikeras untuk itu.) Ruang lingkup proyek bisa saja berubah, atau sejumlah hal lainnya. Atau seperti yang Anda katakan, dia mungkin memberikan perkiraan yang buruk. Terlepas dari tidak ada gunanya membakar jembatan.
Bravax
1
Jelas ada tekanan, namun sebagai Arsitek, ini adalah bagian dari pekerjaan.
2

Hal terbaik yang dapat Anda lakukan adalah belajar dari perkiraan buruk Anda (bukan milik Anda pribadi, dalam hal ini). Satu hal yang harus dipelajari adalah jangan pernah membiarkan orang lain selain orang yang mengimplementasikan ide-ide tersebut memperkirakan berapa lama waktu yang dibutuhkan. Kecepatan pemrogram dapat bervariasi berdasarkan urutan besarnya, sehingga memperkirakan untuk orang lain hampir tidak mungkin.

tidak terlihat
sumber
2

Di masa lalu saya harus berurusan dengan manajer Proyek yang memangkas estimasi untuk memenuhi angka yang menurut departemen penjualan akan dibayar pelanggan. Manajer berpendapat bahwa lebih baik memohon pengampunan daripada meminta izin.

Inilah sebabnya mengapa pengembang telah belajar untuk memperkirakan estimasi mereka, karena mereka tahu mereka akan dipotong oleh manajer mereka. Jadi, jika Anda menggandakan perkiraan dan menambahkan 30%, Anda memiliki peluang bagus untuk mendapatkan jadwal yang masuk akal.

Pelanggan selalu menginginkannya lebih murah, dan jika Anda datang kepada mereka dengan perkiraan yang masuk akal, mereka akan menolaknya dan meminta Anda memotong biayanya atau mereka berjalan. Tetapi, jika Anda terlalu tinggi, mereka hanya akan berjalan tanpa diskusi ("Kami akan mempertimbangkannya dan kembali kepada Anda").

Ini adalah permainan harapan terkelola.

Erik Funkenbusch
sumber
Halo, lingkaran setan. Ketika Anda mengatakan "kami membutuhkan 6 bulan" dan masih selesai dalam 3 untuk kedua kalinya, PM cerdas akan mulai memotong estimasi Anda menjadi dua.
jmucchiello
2

Masalahnya bukan bahwa perkiraan aslinya keluar - itu karena manajemen tidak percaya Anda.

Cara terbaik untuk membuat manajemen mengambil keputusan adalah dengan:

  1. Uraikan masalah dengan bukti untuk mendukungnya; dan
  2. Berikan beberapa solusi bagi mereka untuk dipilih (dalam urutan dari yang paling disukai hingga yang paling disukai).

Untuk (1) menerapkan Scrum dan melacak aktual terhadap perkiraan cerdik bekerja dengan baik untuk mendukung klaim Anda.

Untuk (2) salah satu opsi saya adalah "Mengembangkan Daftar Fitur yang Diprioritaskan dengan klien (alias Product Backlog dalam istilah Scrum)". Ini akan sulit dalam harga tetap atau organisasi yang sangat birokratis, tetapi itu mungkin .

Semoga itu bisa membantu!

Fuzzy Purple Monkey
sumber
2

Saya (karena saya yakin hampir semua orang yang kode) berempati. Perusahaan terakhir saya cukup buruk tentang hal ini - orang-orang penjualan akan masuk dan menjual proyek, dan kemudian Anda masuk, melihat perkiraan, dan hanya tertawa.

Seperti yang disebutkan Tomh - hanya ada begitu banyak waktu dalam sehari. Bahkan jika kamu tidak tidur.

Tiga hal, saya pikir.

Sebagian besar waktu Anda hanya perlu mengelola harapan klien dan menjadi transparan . Bersikaplah jujur ​​dengan apa yang dapat Anda lakukan dan tunjukkan apa yang telah Anda lakukan - semuanya. Hal ini terutama benar jika Anda menyerahkan persyaratan yang terlalu kasar (seperti yang disebutkan Totophil.) Jika mereka dapat melihat jumlah pekerjaan yang harus Anda lakukan, mereka dapat melihat seberapa buruk perkiraan itu. Jika mereka melihat produktivitas dan kemajuan, itu lebih penting daripada apa pun dalam pengalaman saya.

Saya pikir selain mengelola harapan dan transparan dalam beban kerja Anda, hal besar lainnya adalah manajemen ruang lingkup . Ada area besar antara menjadi anal / ofensif menjadi nazi lingkup dan menutupi ujung ekor Anda sendiri. Ketika seseorang menginginkan fitur atau fungsi tambahan ini - setujui! Dan kemudian berikan mereka perkiraan yang relatif akurat tentang berapa banyak waktu yang akan ditambahkan ke proyek (atau rilis berikutnya.) Sisi positif dari ini tidak hanya tidak menjejalkan diri Anda ke dalam 80 jam seminggu lagi - Anda mendapatkan beberapa catatan dalam perkiraan itu juga untuk kemungkinan menyusul yang lain.

Semoga berhasil!

brian welch
sumber
Anda menginginkan tenaga penjualan yang agresif, karena yang tidak agresif itu tidak berguna. Manajemen perlu menjaga apa yang mereka janjikan. Saya dulu bekerja untuk perusahaan yang gagal mengendalikan janji untuk pekerjaan kustom, dan ada hubungan kausal di sana.
David Thornley
1

Jangan pernah mengambil apa pun tanpa melihat atau memahaminya. Jika pelanggan, atau pelanggan Anda sendiri tidak bersedia membayar Anda sebanyak itu, mereka tidak mengatur Anda untuk berhasil.

Ini (dan sering) adalah kegagalan untuk memahami detail, data, dan bagaimana mereka berinteraksi di seluruh aplikasi yang sedang dibangun. Asumsi dibuat alih-alih mengajukan pertanyaan, menemukan jawaban, dan menyelesaikan semuanya.

Satu hal yang sering saya katakan kepada klien saya adalah, jika Anda akan menggantung saya, setidaknya biarkan saya menggantung diri dengan tali saya sendiri, atau menembak saya dengan senjata dan peluru saya sendiri, bukan seseorang lain.

Memiliki pintu putar orang yang mencoba menyelesaikannya akan jauh lebih buruk pada akhirnya bagi mereka.

Perencanaan yang tidak realistis, buruk, dan pandangan ke depan yang kurang baik mungkin merupakan sinyal dari masalah besar organisasi dalam hal mana Anda sebaiknya membiasakan diri dengannya, atau melanjutkan.

Jas Panesar
sumber
1

Pertama, pertimbangkan kemungkinan bahwa Anda melebih-lebihkan ruang lingkup proyek. Tenaga penjualan dan arsitek cenderung membesar-besarkan solusi mereka. Jangan menganggapnya nilai nominal; mereka mungkin mengharapkan Anda menghasilkan kurang dari yang mereka janjikan pada pelanggan.

Apa yang akan saya lakukan di sini adalah mengambil jumlah waktu yang saya miliki, dan menghabiskannya sebaik mungkin. Mencari tahu prioritas pelanggan dan memenuhi itu. Sembilan dari sepuluh kali, pelanggan akan senang prioritas utamanya telah dipenuhi, dan mengabaikan 80% dari pekerjaan yang belum dilakukan.

Hal terakhir yang ingin Anda lakukan adalah mengadakan pertemuan darurat dan menuduh orang jahat. Kamu bilang:

"biarkan mereka tahu kenyataan"

tetapi kenyataan hanyalah sebuah opini! Tenang, lakukan pekerjaan Anda, dan habiskan modal politik Anda untuk hal-hal yang penting bagi Anda . Suka, promosi, lebih banyak uang, lebih banyak liburan.

Bos Anda memperdagangkan promosi untuk Anda bekerja sangat keras pada pelanggan masuk akal. Anda akan rusak atas nama pelanggan tidak.

Andomar
sumber
Apakah Anda serius mengatakan bahwa membuat janji kepada pelanggan dan kemudian berasumsi bahwa kita memiliki fleksibilitas untuk menghasilkan lebih sedikit, apakah akan berhasil dengan baik? Realitas bukanlah "pendapat" ketika Anda benar-benar dapat membandingkan di mana perkiraan mengatakan kita akan dibandingkan dengan apa yang sebenarnya terjadi.
1

Satu hal yang perlu diingat adalah bahwa perkiraan tidak termasuk cakupan creep atau keterlambatan yang tak terhindarkan (atau masalah yang didasarkan pada klien yang tidak memberi Anda apa yang mereka katakan akan dilakukan seperti file informasi dalam format tertentu).

Kami telah belajar untuk mendorong kembali perkiraan dan / atau tanggal jatuh tempo setiap kali salah satu dari hal ini terjadi. Tambahkan fitur baru, dapatkan estimasi baru dan tanggal jatuh tempo baru. Gagal memberikan informasi yang diperlukan pada tanggal yang disepakati, dapatkan tanggal jatuh tempo yang baru. Berikan informasi tetapi buatlah itu tidak lengkap atau salah atau dengan cara lain selain dari apa yang dijanjikan, kirim perkiraan baru dan tanggal jatuh tempo, ubah persyaratan fitur yang disepakati, dapatkan perkiraan baru dan tanggal jatuh tempo. Berhentilah mengerjakan proyek karena klien ingin Anda mengerjakan prioritas yang lebih tinggi, kirim tanggal jatuh tempo yang baru (dan mungkin perkiraan baru karena akan ada waktu mengejar ketinggalan jika proyek menunggu lama).

Jika perkiraan awal datang dari luar kelompok pengembangan dan mereka tidak sepakat, maka ketika Anda mendapatkannya, siapkan perkiraan Anda sendiri (pada tingkat terperinci dari semua tugas yang Anda pikir akan miliki - pada tingkat yang jauh lebih tinggi detail dari perkiraan yang Anda berikan) dan segera berikan rantai itu dan tanyakan apa yang harus Anda potong agar memenuhi estimasi yang Anda berikan.

Jika jawabannya tidak apa-apa, desak klien untuk diberitahu tentang perkiraan baru, sekarang kita telah melihat masalah ini secara lebih mendalam. Jika manajemen masih bersikeras bahwa klien hanya akan membayar selama X jam, tanyakan kepada mereka siapa yang akan membayar sisa jam pengembangan karena pekerjaan yang dijelaskan kepada Anda tidak dapat dilakukan dengan kurang dari perkiraan Anda. Bisa jadi perusahaan itu mau menerima pukulan dan membayar sendiri waktunya.

Jika mereka tidak mau mengambilnya dari keuntungan mereka dan mereka tidak akan memberi tahu klien mereka membutuhkan lebih banyak waktu dan perusahaan tidak akan mendukung perkiraan rinci staf pengembangan atas penjualan '"apa yang kami pikir pelanggan akan lakukan dalam untuk memenangkan estimasi "proyek, Anda sedang dalam proyek mars kematian dan taruhan terbaik Anda adalah keluar secepat mungkin. Anda dapat menunjukkan bahwa klien akan lebih bahagia mengetahui proyek akan memakan waktu lebih lama sesegera mungkin daripada yang Anda akan lakukan ketika Anda menghabiskan 50 jam yang mereka setujui untuk membayar dan bahkan tidak mendekati penyelesaian dengan 500 yang benar-benar Anda butuhkan. Ingatkan mereka bahwa perkiraan yang terlalu optimis adalah salah satu prediktor terbesar kegagalan proyek. Ini tidak akan bekerja dengan jenis perusahaan ini, tetapi mungkin pada akhirnya akan meresap jika Anda mengulanginya cukup banyak.

HLGEM
sumber
Nasihat yang bagus dan praktis. Langkah-langkah terperinci dan alternatif selalu lebih baik daripada "berhenti saja, itu jahat". Sebenarnya seluruh diskusi perkiraan mengingatkan saya pada steve-yegge.blogspot.com/2009/04/… yang baik , bagian yang dimulai dengan "Hari 1: (eksekutif)".
0

Saya juga akan mempertimbangkan penyempurnaan estimasi akun. Maksud saya "seperti yang saya lihat sekarang proyek ini akan memakan waktu X man-jam". Setelah 20-30% saya akan menaksir ulang dan seterusnya.

Bagaimanapun bagaimana pengunduh file melakukan estimasi? Itu terus-menerus memperbaikinya.

Andrei Rînea
sumber
0

Saya pikir tidak cukup penaksir tidak cukup menekankan fakta "Estimasi adalah Anda meminta saya untuk melakukan matematika dan menebak untuk memprediksi masa depan dengan cara yang bermanfaat" dan "Komitmen yang kami buat benar-benar terpisah dari matematika yang kami lakukan untuk membuat perkiraan; Kita dapat setuju untuk melakukan sejumlah pekerjaan bodoh, menyetujui hal-hal yang kita lihat tidak mungkin kita selesaikan, tetapi tidak ada yang benar-benar mengubah matematika dari solusi "dan" Kita dapat melakukan metodologi pengembangan yang bukan raksasa sejumlah fitur A akan dilakukan berdasarkan tanggal B yang membuat kegagalan jauh lebih kecil kemungkinannya "

Untuk banyak perkiraan ditulis dalam bahasa negosiasi. Mereka perlu ditulis dalam bahasa matematika dan berbicara tentang ketidakpastian matematika .

Estimator tidak dapat melakukan apa pun untuk membuat kenyataan tunduk pada kehendak pebisnis keluar bernegosiasi. Satu-satunya tugasnya adalah membuat mereka berhenti berusaha.

pengguna17263
sumber