Menetapkan harapan realistis untuk tenggat waktu

15

Saya seorang pemimpin teknologi untuk tim kecil. Salah satu tugas utama di piringku adalah berkomunikasi dengan klien. Satu hal yang saya rasa sangat sulit adalah berurusan dengan tenggat waktu karena mereka diamanatkan oleh klien dan saya sering tidak berkonsultasi.

Biasanya, interaksi mengikuti pola berikut. Klien datang dengan fitur yang ingin mereka tambahkan, Fitur X. Fitur X akan terlihat bagus di rilis aplikasi minggu depan yang berjarak sekitar 6 hari kerja. Pada titik ini, permintaan fitur perlu melalui persetujuan dan seringkali ada dependensi lain yang perlu ditangani. Akhirnya, N hari kemudian, permintaan fitur mengalir ke tim saya. Bahkan jika batas waktu asli (yang ditetapkan oleh manajer non-pengembang) dapat dicapai, itu tidak lagi. Tim saya disalahkan, merasa kecil hati dan ada suasana kekalahan secara keseluruhan , saya merasa kecil hati dan kalah.

Jelas proses keseluruhan rusak. Sayangnya, tidak banyak yang bisa saya lakukan karena saya tidak dalam posisi berkuasa di sini. Pendekatan saya saat ini adalah dengan lembut mengingatkan klien tentang tanggal mulai kami versus tenggat waktu, ruang lingkup Fitur, dll. Ini terasa seperti saya membuat alasan.

Apakah kalian pernah dalam situasi yang sama? Apa yang telah / belum berhasil untuk Anda?

Delapan puluh delapan
sumber
13
Meninggalkan. Kamu tidak bisa menang Manajemen Anda tidak melindungi Anda, oleh karena itu mereka tidak peduli dengan Anda. Meninggalkan.
Christopher Mahan
4
"Tapi ini terasa seperti aku membuat alasan."? Mengapa? Fakta adalah fakta. Apa yang Anda "permisi"?
S.Lott
Kami tidak bekerja di kotak hitam. Ketika tim disfungsional hanya ada begitu banyak yang bisa dilakukan oleh pengembang rendahan yang tidak berdaya.
P.Brian.Mackey
2
@EightyEight: Teknik "line-out" tidak menjelaskan apa pun. Baik Anda atau tim (atau mungkin keduanya). Tapi line-out tidak membantu siapa pun mengerti apa pertanyaan Anda adalah . Boleh saja menghapus barang yang tidak benar atau tidak relevan.
S.Lott

Jawaban:

13

Anda benar-benar perlu berbicara dengan atasan Anda tentang ini dan menetapkan beberapa aturan dasar:

  • Batas waktu bukanlah batas waktu kecuali Anda berkomitmen untuk itu.
  • Perkiraan bukan merupakan perkiraan kecuali Anda memberikannya, dan kemudian merupakan "perkiraan" bukan tenggat waktu yang sulit.

Coder Bersih Robert Martin memiliki bab yang sangat bagus tentang bagaimana mengkomunikasikan hal ini kepada atasan Anda. Bukan salah Anda jika tim penjualan membuat komitmen yang mustahil.

Ketika Anda mendapatkan fitur baru, ANDA memperkirakannya dan menggunakan PERT sehingga Anda memiliki distribusi probabilitas. "Saya harus menyelesaikannya dalam 4 hari tetapi mungkin diperlukan sebanyak 8". Tetap ditempatmu. JANGAN PERNAH menegosiasikan estimasi dengan salesman, Anda akhirnya akan melakukan hal yang mustahil.

Setelah beberapa kali pengulangan tentang hal ini, penjual diharapkan akan dibuat bosan untuk terlihat bodoh dan akan menyesuaikan perilaku untuk "Saya akan memeriksa dengan tim pengembangan dan melihat kapan kita bisa menyelesaikannya" daripada janji bahwa Anda akan berakhir pemecahan.

mcottle
sumber
1
+1 - pengembang / orang yang tahu apa yang sebenarnya terlibat tidak terlibat dalam perkiraan berteriak gila gila gila: /
elwyn
2
'... janji yang akhirnya kau langgar.' - Jangan pernah lupa, dan secara teratur ingatkan orang-orang yang tidak dapat Anda ingkari janji yang tidak Anda buat, termasuk yang dibuat atas nama Anda.
mattnz
"Batas waktu bukanlah batas waktu kecuali jika Anda berkomitmen untuk itu." Saya sangat menyukai itu sehingga saya hanya men-tweetnya. ;)
Bob Horn
10

Apakah kalian pernah dalam situasi yang sama? Apa yang telah / belum berhasil untuk Anda?

Kebanyakan yang berhasil adalah berbicara kebenaran kepada kekuasaan.

Kumpulkan fakta. Sajikan fakta. Biarkan pelanggan untuk belajar (atau tidak belajar) dengan kecepatan mereka sendiri.

Tim saya disalahkan, merasa kecil hati dan ada suasana kekalahan secara keseluruhan.

Mengapa tim Anda sadar akan kesalahannya? Jika pelanggan melewati Anda dan berbicara langsung dengan tim, Anda dianggap tidak efektif, dan perlu mencari tahu alasannya.

Tim Anda harus tahu tentang "kesalahan" atau kurangnya kesalahan. Mereka seharusnya hanya membangun perangkat lunak, dan Anda harus berkomunikasi dengan pelanggan tentang apa yang Anda lakukan dan kapan Anda melakukannya.

Pelanggan harus --- akhirnya --- tumbuh untuk memahami prosesnya. Dibutuhkan banyak pengulangan untuk menghentikan kebiasaan buruk. Kesepakatan yang bagus.

S.Lott
sumber
+1 "berbicara kebenaran kepada kekuasaan." Bisakah Anda mengklarifikasi? Saya suka pernyataan "bodoh" menyalahkan. Saya berharap saya bisa menemukan perusahaan yang menghentikan semua jari menunjuk tanpa berpikir.
P.Brian.Mackey
"Kumpulkan fakta. Sajikan fakta". Saya pikir itu sudah jelas. Apa lagi yang bisa dikatakan?
S.Lott
Saya rasa saya mengerti sekarang. Saya tidak pernah mendengar istilah itu sebelumnya.
P.Brian.Mackey
3
"Hentikan semua jari sembarangan yang menunjuk". Itu tidak bisa dihentikan. Tetapi peran pemimpin tim adalah untuk melindungi tim dari yang terburuk.
S.Lott
Klien tidak berbicara langsung dengan anggota tim saya, tetapi ketidakpuasan dengan pekerjaan seseorang cenderung menyaring apa pun yang terjadi. Mungkin saya harus mengganti "Saya" untuk "tim". Kedengarannya aku berada di jalan yang benar. Terima kasih atas komentar anda
EightyEight
5

Saya sudah dalam situasi yang tepat ini dan itu tidak menyenangkan. Namun, satu pendekatan yang saya lakukan adalah dengan cermat mencatat pekerjaan yang sedang dalam pengembangan. Ketika tugas datang, Anda mengingatkan klien, manajemen atau manajer proyek bahwa pekerjaan lain akan tergelincir karena sekarang ini telah menjadi prioritas mereka (kadang-kadang itu bisa membuat mereka menebak-nebak dan kemudian Anda terus mendorong agar batas waktu diperpanjang).

Kalau tidak, saya kira Anda perlu mencoba dan terus memalu pahat itu ke dinding batu yang merupakan manajer proyek / pelanggan liason / manajemen / salesman yang berurusan dengan klien dan menyetujui tenggat waktu ini. Saya sering memalu fakta bahwa jika mereka setuju bahwa sesuatu akan memakan waktu 5 hari untuk dilakukan, maka mereka jelas berbicara tentang perkembangan 5 hari yang berarti dibutuhkan 5 hari dari saat Anda mendapatkannya (bukan ketika mereka menutup telepon bersama dan kemudian menghabiskan dua hari berikutnya menyusun kata mewah doc).

Namun, karena Anda yang memimpin pengembangan, keputusan apa pun seperti ini tidak relevan jika tidak berkonsultasi dengan Anda sejak awal.

Anda juga perlu mencoba dan melindungi tim Anda dari ini sebanyak yang Anda bisa. Meskipun sulit, mereka harus dijauhkan dari politik klien / manajemen sebanyak yang mereka bisa. Jika ini bukan masalahnya, lebih banyak memalu kepala diperlukan.

Pada dasarnya, saya tidak menikmatinya dan tidak peduli seberapa keras saya memukul proses tidak menjadi sempurna. Namun saya berhasil memperbaiki keadaan.

dreza
sumber
3

Satu-satunya hal yang mungkin dapat Anda lakukan adalah berbicara dengan pelanggan. Cukup jelaskan apa yang terjadi seperti yang Anda lihat, jelaskan semua risiko dan sebagainya. Saya memiliki situasi yang sama dan saya benar-benar marah. Bahkan sekarang, ketika saya bertanggung jawab untuk semua estimasi teknis, saya sering mendengar - kami ingin itu dilakukan pada hari Senin. Saya hanya mengatakan - Anda tidak akan mendapatkannya, mari kita bahas apa yang sebenarnya ingin Anda miliki pada hari Senin, dan kemudian sering tampak bahwa semua fitur penting cukup mudah untuk diterapkan dan hari Senin benar-benar baik-baik saja. Semua fitur lain kemudian dijadwalkan untuk rilis nanti.

Masalahnya adalah - pelanggan kebanyakan tahu nilai bisnis untuk fitur tersebut, tetapi tidak menyadari kompleksitasnya. Cukup diskusikan dan klarifikasi. Selalu.

Andrey Agibalov
sumber
Jangan pernah menerima tenggat waktu "... hari Senin". Itu hanya berarti para devs akan menghabiskan akhir pekan coding jika kotoran itu mengenai kipas. Gunakan hari Jumat sebagai tenggat waktu atau, lebih baik lagi, hari Rabu.
sbi
2

Ini adalah awal yang baik bahwa Anda mengingatkan klien bahwa tanggal mulai Anda lebih lambat dari tanggal mereka meminta fitur. Anda juga perlu berbicara dengan siapa pun yang melakukan pembicaraan awal dengan klien untuk mendapatkan perincian tentang fitur tersebut sehingga mereka dapat memberi tahu klien kapan batas waktu yang lebih baik. Karena Anda sudah berkomunikasi dengan klien, Anda bisa mengatakan "jadi siapa di Dept. Y yang menyetujui tenggat waktu ini?"

Jika mereka tidak akan membiarkan Anda terlibat dalam pembicaraan atau mereka mengatakan kepada Anda untuk diam dan mengambil tenggat waktu yang mereka setujui, Anda dapat mengingatkan mereka bahwa itu akan terlihat lebih baik untuk seluruh perusahaan jika tim Anda tepat waktu, dan cara untuk mencapai itu adalah mendapatkan input Anda pada tenggat waktu.

FrustratedWithFormsDesigner
sumber
2

Perbaiki arus informasi.

  • Jika Anda seharusnya berkomunikasi dengan klien, paksa semua pemangku kepentingan proyek (termasuk klien) untuk berinteraksi langsung dengan Anda, selalu .

Sedihnya, kekuasaan sebagian besar diambil oleh Anda sendiri daripada diberikan kepada Anda oleh orang lain.

Ando
sumber
1
Ya, seperti itulah yang akan terjadi. Meskipun, jika Anda melakukan itu, Anda mungkin akan dipecat dan mendapatkan banyak rasa hormat dari beberapa orang yang bekerja dengan Anda, dan dari beberapa pelanggan (yang mungkin sakit dan lelah dengan manajemen perusahaan Anda juga).
Christopher Mahan
2

Salah satu tugas utama di piringku adalah berkomunikasi dengan klien. Satu hal yang saya rasa sangat sulit adalah berurusan dengan tenggat waktu karena mereka diamanatkan oleh klien dan saya sering tidak berkonsultasi.

Jika Anda seharusnya bertanggung jawab untuk berkomunikasi dengan klien, mengapa Anda tidak berkonsultasi tentang penjadwalan (dan penganggaran) sehingga Anda dapat mengkomunikasikan informasi ini antara orang-orang yang bertanggung jawab untuk mereka dalam organisasi Anda dan rekan-rekan mereka di sisi klien? Saya pikir memperbaiki masalah ini akan sangat bermanfaat bagi Anda, tim Anda, dan proyek Anda.

Klien datang dengan fitur yang ingin mereka tambahkan, Fitur X. Fitur X akan terlihat bagus di rilis aplikasi minggu depan yang berjarak sekitar 6 hari kerja. Pada titik ini, permintaan fitur perlu melalui persetujuan dan seringkali ada dependensi lain yang perlu ditangani. Akhirnya, N hari kemudian, permintaan fitur mengalir ke tim saya. Bahkan jika batas waktu asli (yang ditetapkan oleh manajer non-pengembang) dapat dicapai, itu tidak lagi.

Sistem penjadwalan ini tampaknya aneh, untuk sedikitnya.

Dalam pengalaman saya, klien masuk untuk rilis tertentu. Mereka mungkin mengirimkan daftar fitur dan perubahan yang mereka inginkan dan kapan pun mereka inginkan, dan kemudian bernegosiasi dengan tim yang membangun perangkat lunak. Atau mereka mungkin memberikan daftar fitur yang diprioritaskan kepada tim pengembangan, dan tim pengembangan memberikan perkiraan kapan mereka dapat mengirimkan berbagai set fitur. Ada varian lain juga.

Tapi satu hal yang belum pernah saya lihat diizinkan adalah seorang pelanggan dapat mengubah rilis begitu terlambat dalam permainan, terutama tidak seminggu lagi dari rilis. Tampaknya tidak tepat untuk menempatkan desainer, pengembang, dan penguji di bawah tekanan semacam itu. Jika Anda melakukan pengembangan berulang, jika ini merupakan fitur prioritas tinggi, pastikan untuk menambahkannya ke bentuk jaminan simpanan dan bawa sesegera mungkin. Jika ini bukan fitur prioritas tinggi, mereka pasti tidak membutuhkannya selama rilis ini dan dapat menunggu sampai yang berikutnya.

Saya akan merekomendasikan pengaturan beberapa aturan dasar yang mengakomodasi tim desain, pengembangan, pengujian, dan pengiriman Anda serta pelanggan Anda untuk fitur pembekuan, pembekuan kode, dan pengiriman. Letakkan ini secara tertulis, dapatkan komitmen dari semua orang, dan patuhi itu. Jika Anda beranjak satu kali, Anda akan diharapkan untuk menekuk lebih banyak, dan Anda akan kehilangan kendali proses.

Sayangnya, tidak banyak yang bisa saya lakukan karena saya tidak dalam posisi berkuasa di sini.

Anda mungkin tidak sendirian. Tapi sepertinya desainer dan / atau pengembang dan / atau penguji Anda berada di bawah banyak tekanan untuk memenuhi jadwal. Anda harus duduk bersama atasan Anda sebagai sebuah tim dan menjelaskan situasinya. Pertama, buat organisasi Anda untuk berkomitmen pada perbaikan dalam proses, kemudian bekerja dengan klien untuk mendapatkan dukungan mereka tentang bagaimana hal-hal akan bekerja.

Ini terasa seperti saya membuat alasan.

Ketika Anda mulai membuat alasan, mungkin sudah saatnya untuk Melakukan Percakapan Sulit atau Pembicaraan Penting . Saya akan merekomendasikan salah satu dari dua buku itu. Membaca mereka telah membantu meningkatkan keterampilan komunikasi saya, terutama ketika Anda harus menghadapi situasi sulit di mana ketegangan tinggi di semua sisi.


Untuk menjawab beberapa jawaban lainnya.

Sedihnya, kekuasaan sebagian besar diambil oleh Anda sendiri daripada diberikan kepada Anda oleh orang lain.

Saya tidak tahu ke mana Andrea akan pergi dengan ini. Ya, Anda perlu memperbaiki arus informasi. Tetapi Anda perlu bekerja dengan PM dan klien untuk memastikan bahwa semua orang tahu apa yang (saya asumsikan, bagaimanapun) disepakati pada awal proyek. Jika pengaturan, untuk alasan apa pun, tidak berhasil, kunjungilah kembali dan sebarkan kembali pekerjaan dan peran kepada orang-orang yang lebih cocok untuk mereka.

Anda tidak mengambil kekuatan atau melawan kekuatan, tetapi Anda bekerja dengannya, mencoba menjinakkannya dan membuatnya berfungsi untuk semua orang.

Masalahnya adalah - pelanggan kebanyakan tahu nilai bisnis untuk fitur tersebut, tetapi tidak menyadari kompleksitasnya. Cukup diskusikan dan klarifikasi. Selalu.

Kutipan dari loki2302 ini cukup tepat. Salah satu pekerjaan Anda sebagai insinyur perangkat lunak adalah memastikan bahwa orang yang tepat mengetahui hal-hal seperti betapa sulitnya tugas itu, berapa lama waktu yang diperlukan, dan jenis pilihan dan risiko apa yang ada dalam melakukan sesuatu. Sebagai komunikator utama untuk tim Anda, menyampaikan informasi ini dari organisasi Anda kepada pelanggan Anda, secara teori, adalah pekerjaan Anda.

Thomas Owens
sumber
2

Temukan forum untuk mendekati siapa pun yang menetapkan tenggat waktu ini. Biarkan mereka tahu bahwa mereka dapat berkonsultasi dengan Anda dan menyajikan sesuatu yang lebih realistis. Alternatifnya adalah: Anda dapat memberi tahu klien itu tidak akan terjadi atau mereka dapat memberi tahu klien.

Anda dapat mempresentasikannya sebagaimana Anda dapat melakukannya dalam X jumlah hari setelah tim Anda mulai mengerjakannya. Mungkin itu kebingungannya? Itu adalah kesalahan jujur ​​kecuali itu terjadi berulang-ulang. Maka itu hanya diabaikan.

Saya menduga tim Anda telah memenuhi tenggat waktu ini di masa lalu.

JeffO
sumber
2

Sayangnya ini endemik di industri kami, begitu banyak agensi digital / perangkat lunak yang tidak tahu apa-apa tentang pekerjaan dalam atau persyaratan perusahaan mereka. Banyak yang hanya peduli dengan uang tunai cepat. Seperti yang banyak dikatakan sebelumnya jika Anda tidak memberikan perkiraan atau tenggat waktu, maka beri tahu manajemen. Bagaimana mungkin untuk mengirimkan karya teknis x waktu tanpa perkiraan dari orang teknis yang mengetahui jadwal tim pengembangan.

Jika semuanya gagal, pergi.

Nickz
sumber
1

Berikan kepada Manajer Proyek / Bos / Klien perkiraan dan jadwal Anda yang dapat dicapai, minta dia untuk mengonfirmasi rencana Anda, atau cari tahu apa yang dia ingin Anda kerjakan terlebih dahulu, lalu berjalan pergi - jangan melibatkan atau menghiburnya dengan cara apa pun.
Jika dia kembali dengan rencana proyek yang tidak mencerminkan perkiraan Anda, balas kembali kepadanya, dengan pernyataan, "Saya tidak menegosiasikan perkiraan." dan pergi.

Pastikan Anda memiliki banyak dokumentasi CYA. Jelaskan kepada semua orang yang terlibat bahwa Anda menyimpan dokumen-dokumen ini. Saya telah mengirim catatan tersebut ke alamat surel pribadi saya dan mengirimkannya ke bos saya, yang sangat berhasil.

mattnz
sumber
1

Inilah pendekatan yang harus dianggap konstruktif alih-alih menunjuk jari. Saya tidak menuduh Anda tentang ini, hanya mengatakan itu tidak cocok untuk memiliki alasan dengan orang lain yang bersalah terlepas dari kebenaran tuduhan itu.

Setelah ini terjadi, lakukan post mortem untuk menghitung berapa lama waktu yang dibutuhkan untuk menyelesaikan proyek, atau akan selesai jika Anda telah menyelesaikannya. Kemudian hitung berapa jam sumber daya yang Anda miliki sejak Anda memiliki cukup informasi dan lampu hijau untuk mengerjakannya. Ubah angka-angka ini menjadi berapa banyak programmer tambahan yang diperlukan untuk memenuhi tenggat waktu.

Sekarang, berbicaralah dengan bos Anda di bawah ini:

Kami memiliki X jam kerja yang tersedia antara tanggal mulai proyek Y dan batas waktu Z.
Proyek ini membutuhkan jam kerja X + C untuk diselesaikan.
Ada persyaratan turnaround serupa pada proyek lain.
Kami akan membutuhkan Q programmer tambahan untuk mencapai kapasitas yang dibutuhkan untuk memenuhi harapan.
... tentu saja, jika anggarannya terbatas, mungkin kita dapat bekerja dengan Manajer Proyek untuk membangun lebih banyak waktu dalam perkiraan mereka sehingga kami dapat membuat janji terlalu rendah dan pengiriman berlebih (pastikan untuk menggunakan berbicara manajemen usang)

JohnFx
sumber