Dari pengalaman saya, saya tidak akan menghabiskan satu menit pun untuk berkembang. Bahkan tidak sedikit pun kode. Pada tahap ini, di mana pelanggan tidak tahu apa yang diinginkannya, sangat penting untuk melakukan pekerjaan konsultasi yang baik . Ini sama pentingnya bagi mereka dan juga untuk Anda.
Di belakang setiap proyek, ada kebutuhan (kadang-kadang tidak jelas) terkait dengan bisnis pelanggan. Jadi, untuk mengklarifikasi kebutuhan , pertama-tama Anda harus mempelajari bisnis sebanyak mungkin. Maka Anda akan dapat mengarahkan pelanggan ke solusi fungsional.
Selama belajar, hati-hati pada saat membedakan kebutuhan dan whishes . Kebutuhan pelanggan apa yang mungkin atau mungkin tidak sama dengan yang diinginkan pelanggan?
Sementara analisis, jika pelanggan tidak mengambil keputusan, ambil sendiri. Sebagai konsultan, tugas Anda adalah memberikan saran dan memimpin proses.
Seperti @Ewan tunjukkan, lebih mudah bagi pelanggan untuk membuat keputusan jika ada pilihan untuk dilakukan. Menawarkan beberapa alternatif (memaparkan pro / kontra mereka), mempermudah pengambilan keputusan. Membuat prototipe adalah cara yang baik untuk memberikan gambaran tentang apa yang ada dalam pikiran Anda untuk mereka. Pelanggan akan memiliki kontak (dan perasaan) pertama tentang bagaimana keadaan akan terjadi. Melakukan latihan "kreativitas" ini Anda akan melihat dengan cepat lampu dan bayangan proyek sebelum mereka menjadi masalah.
Cobalah untuk mendapatkan umpan balik sebanyak mungkin dari pengguna akhir . Sering kali orang yang kita sebut "pelanggan", bukan siapa yang akan menggunakan sistem . Dalam situasi seperti itu, Anda akan mendapatkan umpan balik yang lebih baik dari pengguna akhir yang sebenarnya. Mereka akan memberi Anda tips berharga tentang apa yang mereka butuhkan. Mengidentifikasi dengan baik siapa yang dapat memberikan jawaban yang tepat untuk pertanyaan Anda akan membantu Anda memenuhi harapan pelanggan.
Setelah Anda mengumpulkan seperangkat persyaratan yang baik, masukkan ke dalam prototipe. Metodologi tangkas seperti SCRUM berfungsi dengan baik pada tahap ini. Melakukan sprint di atas prototipe.
Prototipe akan dibuang / dimodifikasi sepanjang sprint. Anda juga dapat "membimbing" pelanggan ke pelanggan yang paling sesuai dengan Anda. ;-). Mencari kesepakatan menang-menang.
Saya mencoba untuk mencegah Manajer memulai pengembangan sebelum persyaratan yang jelas dan terukur telah dibatalkan. Kalau tidak, mulai dengan persyaratan yang tidak ditentukan ditakdirkan untuk gagal parah. Banyak uang dan waktu akan terbuang sia-sia (tanpa jaminan untuk memulihkannya) karena seseorang telah memutuskan untuk menerapkan "Kekacauan". Kekacauan dan ketidakpastian di mana pelanggan kami yang sangat dicintai dan bingung tinggal sekarang.
Sangat mengejutkan melihat perusahaan yang karyawannya melakukan pekerjaan mereka tetapi mereka tidak mampu menjelaskan (secara wajar) bagaimana caranya . Mengejutkan juga melihat berapa banyak Manajer Proyek yang tidak peduli dengan masalah ini, mereka hanya mengatakan "ya untuk semua" atau "mari kita mulai dan kita akan melihat apa yang terjadi".
Akhirnya, @Ewan kembali menunjuk ke poin yang paling penting.
Dapatkan pelanggan untuk keluar dari yang mereka inginkan dan terapkan.
Jangan lupa untuk mendefinisikan dengan jelas, persyaratan dan ketentuan mana yang harus dipenuhi untuk mengatakan bahwa proyek telah selesai . Kondisi penerimaan
Tidak perlu mengatakan alasannya.