Saya mengambil alih proyek yang agak rumit sebagai satu-satunya pengembang / manajer proyek dan penguji pada tahun lalu.
Pada bulan November tahun lalu ada batas waktu untuk beberapa fungsionalitas baru akan dikirimkan.
Sistem yang saya ambil yang seharusnya siap digunakan jauh dari siap.
Duduk dengan salah satu pengguna pelanggan kami ia datang dengan fitur dan persyaratan baru yang diperlukan. Meskipun fitur yang mereka minta diimplementasikan, dia berpendapat itu tidak seperti apa yang mereka tentukan dalam persyaratan.
Jadi saya harus kembali ke papan gambar dan melakukan perubahan besar pada sistem.
Janji demi janji, ini adalah kesalahan saya sendiri, saya melewatkan tenggat waktu berikutnya karena berbagai alasan: perencanaan yang terlalu optimis atas nama saya, anak-anak yang sakit dan berbagai masalah pribadi lainnya.
Dan ada juga kegagalan di sisi pelanggan: hanya menguji ketika saya mengawasi bahu mereka dan seterusnya.
Kemarin kami sepakat bahwa kami ditayangkan jika pengguna mereka menyetujui aplikasi.
Tentu saja beberapa masalah muncul dan sekarang hari ini, ketika saya mencoba menelepon pelanggan kami, dia menutup telepon dan belum membalas email saya.
Ini benar-benar membuat saya lelah, jam dan waktu yang dihabiskan sejauh ini melebihi jam kerja normal dan telah mengambil korban bagi keluarga saya juga
Jelas ada hal-hal dalam situasi ini yang khusus untuk proyek ini, tetapi saya tidak berpikir pola keseluruhan (beberapa masalah kecil, yang menyebabkan kerusakan proyek) jarang terjadi.
Apa yang akan Anda lakukan dalam skenario serupa?
Jawaban:
EDIT: Pada membaca ulang ini terdengar agak keras, itu tidak dimaksudkan seperti itu. Hal-hal yang Anda gambarkan adalah umum dan biasanya disebabkan oleh faktor-faktor yang sepenuhnya dapat dipahami (dan kemudian diperburuk oleh upaya Anda untuk membantu). Ngomong-ngomong, jika dianggap kasar, maaf, itu bukan menunjuk jari, itu hanya mencoba untuk mengatakan "ini adalah apa yang tampaknya salah, dan ini adalah bagaimana menghadapinya".
Apa yang tampaknya terjadi dari apa yang Anda katakan adalah:
Dan, akibatnya, proyek ini gagal.
Poin pertama saya adalah bahwa Anda harus berhenti melakukan apa yang telah Anda lakukan sejauh ini (yang tampaknya dilakukan secara optimis, dengan asumsi bahwa jika Anda terus melanjutkan semuanya akan berhasil). Itu tidak bekerja selama 3 bulan terakhir, mengapa Anda pikir itu akan berfungsi sekarang?
Pada dasarnya masing-masing masalah ini harus diatasi ketika muncul, berurusan dengan gejala (misalnya tenggat waktu yang terlewat) dan akar penyebab (misalnya rencana itu terlalu optimis). Karena ini tidak terjadi (tidak jarang), Anda sekarang berada dalam posisi di mana ada beberapa masalah yang harus dihadapi.
Dalam pengalaman saya ketika sebuah proyek berjalan jauh di luar jalur dengan cara ini, hal terbaik yang harus dilakukan adalah membuat semua orang terlibat kembali dan menetapkan kembali persyaratan dan tanggung jawab dan menyetujui kembali rencana (realistis) berdasarkan ini dan seterusnya.
Klien Anda perlu:
Konfirmasikan persyaratan dengan jelas dan tidak ambigu. Ini mungkin sebagai spesifikasi, mungkin sebagai daftar penyimpangan dari apa yang saat ini diterapkan, namun harus lengkap dan tidak ambigu dan dikomunikasikan secara tertulis.
Terima fase uji yang menjadi milik mereka untuk dikelola pada akhirnya mereka akan melaporkan semua cacat. Ini akan menjadi apa yang akan Anda lawan. Mereka mungkin juga perlu menerima bahwa akan ada setidaknya satu fase pengujian berikutnya untuk menguji ulang bug yang AKAN keluar dari yang pertama.
Kamu butuh:
Secara realistis menilai persyaratan, memperkirakan pekerjaan secara akurat (termasuk kemungkinan yang masuk akal) dan menyusun rencana untuk mewujudkannya. Kuncinya adalah akurat. Jika Anda pikir itu akan turun buruk kemudian sulit, rencana disatukan untuk membuat orang bahagia yang tidak mencerminkan kenyataan tidak memberikan perangkat lunak.
Sampaikan rencana ini.
Dalam hal menghubungi klien lagi, saya akan merekomendasikan Anda mengumpulkan pendekatan yang diusulkan di sepanjang garis ini, menyatakan mengapa dan mengirimkannya kepadanya. Saat ini dia ingin tahu bagaimana keadaan akan menjadi lebih baik dan itulah yang perlu Anda sampaikan kepadanya jika Anda akan membangun kembali hubungan.
sumber
Hal terbaik untuk dilakukan adalah berkomunikasi secara terbuka dan terus terang tentang kegagalan Anda sendiri dan dengan ramah meminta agar Anda dibebaskan dari kewajiban Anda.
Ini tidak akan membantu Anda atau pelanggan untuk menunjukkan semua kegagalan mereka, dan Anda akan merasa lebih baik tanpa kewajiban membebani Anda.
Ambil pengalaman ini sebagai kelas yang menyakitkan di sekolah pukulan keras, dan bersiaplah lebih baik untuk pelanggan berikutnya.
sumber
Saya terjebak dalam situasi seperti ini sebelumnya.
Bisnis mereka perlu ini dilakukan, dan Anda telah melanggar janji demi janji. Anda harus berhenti membuat janji yang terlalu optimistis. Ketika saya sudah berada dalam situasi ini, sangat sulit bagi saya untuk mendapatkan kembali kredibilitas dengan pelanggan . Ketika Anda bekerja dalam bisnis, reputasi Anda sangat penting. Jika Anda akan membuat taksiran, Anda harus melakukannya. Jika anak-anak / keluarga Anda sakit di masa depan, apakah ada seseorang untuk membantu merawat mereka seperti pasangan atau keluarga lain? Terlihat bergerak menuju masa depan "tanpa alasan".
Dia menginginkan hasil, bukan alasan. Dia menutup telepon karena dia tidak ingin mendengar alasan lain. Apa yang dapat Anda lakukan untuk mengembalikan proyek ke jalur yang benar? Apa yang dapat Anda lakukan untuk menyelesaikan proyek ini? Bagaimana Anda terlibat dalam proyek ini?
Jika saya jadi Anda, saya akan menghabiskan waktu hari ini untuk menyiapkan dokumentasi untuk menyerahkan proyek ini kepada orang berikutnya.
Saya sudah dalam situasi seperti ini juga. Di masa depan, jangan pernah menghabiskan energi yang signifikan untuk menggambarkan ini kepada pelanggan karena kedengarannya seperti Anda adalah tukang emas. Mengapa orang sebelumnya meninggalkannya dalam kondisi yang belum selesai?
Ini adalah salah satu bagian paling menyakitkan dari proyek terbaru saya terjebak seperti Anda. Pakar materi pelajaran (yang pensiun musim panas ini) tidak mendokumentasikan apa pun, jadi sebagian besar bug dihasilkan dari ingatanku yang tidak sempurna tentang percakapan dengan orang ini. Ditambah lagi, dia sudah terbiasa menyimpan semua barang rahasia untuk menjadikan dirinya sangat diperlukan, dan kebiasaan itu sangat sulit baginya untuk menggoncang 2 tahun terakhirnya di pekerjaan.
Kegagalan kritis lainnya adalah bahwa tidak ada lingkungan pengujian. Untuk tahun lalu, semua kode yang akan diuji dipromosikan langsung ke produksi di mana kode tersebut akan QAed oleh pengguna akhir.
Situasi terakhir adalah bahwa agen federal ini tidak memiliki anggaran untuk mempekerjakan siapa pun, dan saya menyelesaikan proyek ini untuk menyelamatkan teman saya dari tuntutan. Pada akhirnya, mereka membiarkan saya pergi (yippie!) Dan menggunakan seseorang yang bekerja pada proyek yang berbeda (belum didanai). Lebih dari satu tahun terlambat sebelum saya terlibat, dan meskipun mereka menggandakan anggaran mereka untuk proyek tersebut, anggaran itu diambil pada saat saya terlibat.
Ke depan, Anda harus belajar melakukan perkiraan yang lebih baik. Sesuatu seperti buku harian yang direkomendasikan di PSP ( buku ). Proyek ini gagal. Juga, Anda mungkin ingin mendiskusikan hal-hal dengan teman-teman pribadi Anda, apakah ada di antara mereka yang memiliki keterampilan dan bandwidth untuk membantu Anda dalam masalah seperti ini di masa depan? Lain kali Anda berada di atas kepala Anda, akankah Anda mengulangi kegagalan ini atau adakah sesuatu yang dapat Anda lakukan untuk mengurangi kegagalan di waktu berikutnya?
sumber
Jika Anda telah menulis perangkat lunak yang akan digunakan / diterapkan oleh pelanggan, pelanggan memiliki tanggung jawab untuk membayar perangkat lunak tersebut dan menanggapi permintaan. Kedengarannya sangat seperti klien telah mencuci tangan masalah ini, jadi kecuali Anda siap untuk pergi ke pengadilan atas masalah ini, Anda mungkin hanya akan mengambil yang ini di kursi.
Anda perlu memiliki dokumentasi, kontrak, persyaratan tertulis, tenggat waktu, pengiriman, dan kekurangan. Jika Anda dapat menunjukkan bahwa Anda melakukan uji tuntas dalam memenuhi kontrak dan pelanggan tidak, maka Anda memiliki sesuatu. Jika Anda tidak bisa maka itu hanya "Dia bilang dia akan membayar saya untuk melakukan ini, jadi saya melakukannya, dan sekarang dia tidak akan membalas telepon saya."
Rekomendasi saya kepada Anda adalah untuk menghubungi sekretaris / asisten pelanggan ini / apa pun yang Anda bisa untuk menjadwalkan pertemuan tatap muka dengannya. Jangan buang waktunya, jangan bertele-tele. Katakan padanya bahwa Anda menghargai kesempatan yang diberikannya kepada Anda untuk mengerjakan proyek ini, dan bahwa Anda menyadari ada beberapa kekurangan dalam harapan. Jangan menutupi masalah dengan alasan atau argumen quid-pro-quos. Mereka hanya akan membuat Anda berdua marah dalam jangka panjang dan tidak membuat Anda apa-apa.
Tanyakan kepada pelanggan tindakan apa yang diperlukan untuk mendapatkan gulungan ini seperti yang diinginkannya. Pertimbangkan kemampuan, status, ketersediaan, segalanya Anda. Jujurlah pada dirimu sendiri. Apa pun yang Anda dapatkan sejauh biaya / waktu / dll, GANDAKAN TI. Jika itu tidak termasuk dalam area kompromi, maka Anda perlu memotong umpan dan berpisah.
Ini mungkin kesimpulan yang sudah pasti karena kedengarannya seperti pelanggan dibunyikan cukup klakson, tetapi dapat diubah menjadi pengalaman belajar. Sepertinya Anda perlu banyak persiapan ekstra dalam berbagai hal terkait kontrak semacam ini:
Hal terakhir yang bisa saya rekomendasikan untuk masa depan adalah jujur pada diri sendiri. Jika Anda tidak dapat memenuhi persyaratan klien secara profesional maka jangan berusaha. Ketika saya memanggil tukang ledeng untuk memperbaiki wastafel saya yang bocor, saya tidak ingin mendengar tentang anak-anaknya yang sakit atau bagaimana dia tidak sadar bahwa memperbaikinya akan memakan waktu 7 jam. Saya ingin itu diperbaiki. Saya akan membayar untuk waktu tambahan jika dia bisa menunjukkan kepada saya bahwa itu perlu dan bukan hanya dia mengacaukan pipa saya. Pelanggan Anda memiliki harapan. Jika Anda berjanji 1 Mei, lakukan pada 1 Mei. Jika ada sesuatu dari klien yang menghalanginya, dapatkan secara tertulis bahwa tanggal tersebut akan didorong kembali karena permintaan klien. Dapatkan secara tertulis. Jika ada sesuatu di pihak Anda, perbaiki. Jika Anda tahu itu akan menyebabkan masalah dan batas waktu tidak akan dipenuhi, jujur dan akui saja. Kemudian bersiaplah untuk menawarkan potongan harga.
sumber
Saya telah berada dalam situasi yang sama persis. Saya memiliki pelanggan yang menginginkan lebih dari yang bisa saya berikan dan mengubah harapan setiap minggu. Pada awalnya itu adalah pekerjaan yang sederhana tetapi banyak hal yang harus diselesaikan ... Saya kehilangan banyak tidur dan sangat mempengaruhi aspek-aspek lain dalam hidup saya.
Hal terbaik yang dapat Anda lakukan hanyalah mematikannya dan melanjutkan. Kadang-kadang proyek yang gagal terjadi dan yang terbaik bagi kedua belah pihak untuk mengenali tanda-tanda dan menangkapnya lebih awal. Begitu mulai memasuki kehidupan pribadi Anda, itu sudah terlalu jauh.
Belajarlah darinya dan cobalah untuk tidak mengulangi. Anda akan jauh lebih bahagia.
sumber
Tanyakan pelanggan apa yang mereka inginkan. Jika itu termasuk dalam kontrak ini, lakukan itu, kalau tidak renegosiasikan kontrak. Apa pun cara Anda, pastikan Anda memiliki pemahaman yang jelas tentang apa yang sebenarnya diinginkan oleh pelanggan dalam dokumen yang mereka tanda tangani sehingga mereka tidak dapat kemudian mengatakan bahwa Anda melewatkan sesuatu yang diinginkan.
sumber
Faktor kunci di sini, seperti yang saya lihat, adalah bahwa persyaratannya tidak disetujui.
Saya tidak tahu bagaimana tagihan Anda. Jika itu adalah kontrak harga tetap, dengan persyaratan yang fleksibel, Anda mungkin tidak memiliki jalan lain. Jangan pernah menandatangani kontrak di mana Anda dibayar jumlah X tanpa persetujuan tertulis yang kuat tentang apa yang seharusnya Anda pasok. Jika Anda harus melakukan sesuatu seperti ini, buat proyek ini dibagi menjadi beberapa fase, dan jangan lakukan fase N +1 sampai fase N ditutup (jika tidak benar-benar dibayar). Selalu tentukan tanggung jawab pelanggan dan juga tanggung jawab Anda.
Dalam hal ini, pendahulu Anda tampaknya menerima persyaratan tambahan tanpa negosiasi ulang kontrak. Itu buruk. Jika suatu proyek memenuhi persyaratan yang disepakati, penambahan itu harus dinegosiasikan sebagai bagian dari perubahan kontrak. Anda tidak perlu membebankan biaya lebih banyak, tetapi jelas dalam hal ini tenggat waktu perlu diatur ulang.
Anda dapat memiliki persyaratan yang fleksibel, selama Anda tidak memiliki harga tetap atau tanggal penyelesaian.
Masalah estimasi Anda tipikal dalam industri, tetapi cobalah untuk belajar dari mereka. Masalah yang tidak terduga akan muncul cukup sering, jadi jangan pernah memberi angka pada siapa pun mengenai perkiraan kasus terbaik.
sumber
Anda memerlukan proses yang lebih baik , Agile Metodologi, khususnya SCRUM, menawarkan transparansi yang lebih baik, interaksi pelanggan yang dipaksakan dengan menjadikan pelanggan sebagai pemegang pasak dan anggota tim serta penguji sebagai anggota tim, semua orang menjadi bertanggung jawab atas pengiriman tidak hanya pengembang.
Ini memungkinkan siklus pengiriman yang lebih pendek, dengan cara itu ketika Anda akan ketinggalan dan tenggat waktu hanya 1 atau 2 minggu Sprint dan Anda dan pelanggan sama-sama tahu Anda akan melewatkannya jauh sebelum akhir Sprint.
Jika Anda akan gagal, karena Anda hanya merencanakan Sprint tunggal 1 hingga 2 minggu, Anda gagal dengan cepat, kecil bukannya terlambat dan besar.
SCRUM juga membuat penerimaan final atas pengiriman menjadi tanggung jawab Pemilik Produk (pelanggan) yang berarti jika mereka terus mengubah persyaratan dan apa yang tidak transparan bagi semua orang yang menyebabkan keterlambatan dan didokumentasikan dengan sangat baik.
Semakin banyak hal yang 100% selesai dan diuji dan diterima sebelum fitur baru dikerjakan. Bayangkan Anda memiliki daftar 100 fitur. Apa yang akan membuat pelanggan lebih senang?
80% dari fitur terpenting 100% selesai, teruji, dan diterima sebagai bebas bug?
atau
100% dari semua fitur 80% selesai, belum diuji dan bermasalah?
Proses seperti SCRUM memaksa pelanggan (Pemilik Produk) untuk memprioritaskan fitur untuk Anda, sehingga Anda hanya memberikan apa yang mereka minta untuk Sprint saat ini. Pekerjaan paling penting bagi Pemilik Produk diselesaikan terlebih dahulu, hal-hal lain yang kurang penting mungkin tidak akan pernah selesai, tetapi pada keputusan pelanggan yang tidak berharga.
sumber
Belajarlah darinya. Saran terbaik yang saya dapatkan tentang memberikan perkiraan waktu adalah: menghitung apa yang menurut Anda akan dibutuhkan, kemudian gandakan dan tambahkan 10%. :)
Selamat, Anda telah mempelajari pelajaran berharga dalam manajemen proyek perangkat lunak. Cobalah untuk tidak terlalu terobsesi untuk memuaskan pelanggan sehingga Anda malah membuat mereka semakin kesal.
Ini tidak unik untuk industri perangkat lunak. Apa yang Anda harapkan jika Anda pergi ke restoran, dan server membutuhkan waktu satu jam untuk membawa makanan Anda. Dan ketika Anda mendapatkannya, bukan itu yang Anda harapkan? Anda ingin diskon atau permintaan maaf, bukan?
Tawarkan apa yang Anda bisa kepada klien, dan teruskan saja. Terkadang itulah satu-satunya pilihan yang Anda miliki.
Sunting: Saya akan melihat Scrum atau metodologi Agile lainnya hari ini untuk mengurangi ketidakpuasan pelanggan.
sumber
Sebut saja pengalaman belajar. Lain kali, ketika pengguna mencoba mengubah persyaratan pada Anda, negosiasi ulang timeline dan dapatkan secara tertulis.
Anda bisa mengirim faktur jika merasa dibenarkan. Sepertinya kamu tidak.
sumber