Saya bekerja dalam fungsi IT di pengecer besar dan kami baru saja memulai proyek dengan bisnis untuk mendesain ulang sistem utama untuk Situs Web kami.
Pengguna bisnis tahu mereka ingin memperbarui sistem dan memperbaikinya. Mereka memiliki beberapa prinsip tingkat sangat tinggi tentang bagaimana seharusnya bekerja tetapi itu saja.
Manajemen ingin tim pengembang mulai "melakukan hal-hal" karena ada sumber daya yang tersedia.
Saya berjuang untuk memikirkan cara terbaik untuk menghabiskan waktu kami sebagai tim pengembang. Duduk dengan para pengguna bisnis belum menghasilkan lebih dari beberapa prinsip tingkat tinggi atau hal-hal yang tidak mereka inginkan tetapi tentu saja tidak ada yang akan saya pertimbangkan untuk mendekati persyaratan.
Bagaimana Anda dapat menghubungkan penerapan fitur yang konkret dengan persyaratan bisnis yang tidak jelas dan memastikan bahwa bisnis akan puas dengan hasilnya, mengingat kurangnya keahlian teknis dan membeli dari sebuah bisnis?
sumber
Jawaban:
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.
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.
sumber
Tulis dokumen yang mengusulkan 2 atau 3 solusi di sepanjang baris:
"Untuk mencapai 'kepala sekolah tingkat tinggi x' kami mengusulkan 'solusi teknis y' yang akan 'solusi teknis lakukan'"
Dapatkan pelanggan untuk keluar dari yang mereka inginkan dan terapkan.
sumber
Sulit untuk menasihati tanpa bisa menilai suasana hati musik secara akurat.
Antara:
Atau:
Secara alami, skenario ke-2 lebih disukai. Anda dapat memasang bingkai pada beberapa desain dan menggulungnya sampai Anda memiliki rencana.
Jika Anda berurusan dengan skenario pertama menjadi sangat jelas bahwa hal-hal yang membunuh proyek waktu dan waktu lagi dan lagi adalah persyaratan wol dan tidak memiliki konsep "selesai". Tentu proyek akan selesai pada akhirnya, tetapi berapa banyak uang yang akan dibakar sebelumnya?
sumber
Pada titik tertentu, pengembang memerlukan seperangkat persyaratan di mana mereka dapat mengembangkan aplikasi dan kemudian memeriksa apakah memenuhi persyaratan atau tidak. Dan kemudian mereka pergi dan membangun aplikasi yang memenuhi persyaratan.
Dan itu adalah ide yang sangat, sangat bagus untuk memiliki persyaratan di mana aplikasi yang memenuhi persyaratan menguntungkan bisnis :-)
Seseorang harus membuat persyaratan ini. Pemilik bisnis tidak bisa. Pengembang tidak mau. Pengembang mencoba membuat pemilik bisnis membuat persyaratan tetapi tidak berhasil. Namun, seseorang perlu membuat persyaratan ini.
Anda dapat mencoba menemukan seseorang di perusahaan dan menjadikannya pekerjaannya. Tidak seperti yang dilakukan pengembang pada awalnya, mencoba untuk meminta persyaratan tetapi gagal, tetapi memilih seseorang dan menjadikannya pekerjaan penuh waktu mereka. Jika tim pengembangan merasa mereka dapat membuat persyaratan, maka sarankan itu ke perusahaan, dan ditugaskan pekerjaan, dan wewenang untuk melakukannya.
Either way, itu akan menjadi tugas seseorang untuk membuat persyaratan. Dan perlu diperjelas bahwa jika tim pengembangan menciptakan persyaratan, persyaratan adalah apa yang akan didapat perusahaan, dan jika mereka tidak menyukainya, maka mereka perlu memastikan bahwa persyaratan diubah. Yang terbaik untuk melakukan ini sebelum pekerjaan pengembangan dimulai.
Dan Anda tidak perlu memberi orang pilihan. Anda dapat memberi tahu mereka bahwa apa yang ada dalam persyaratan adalah apa yang akan terjadi, dan mereka dapat menandatanganinya, atau mengeluh dan persyaratan dapat diubah.
sumber
Jika Anda merasa prototipe terlalu dipoles dan akan membingungkan klien, cukup buat sketsa. Anda dapat memiliki beberapa versi jika Anda pikir itu akan membantu meminta klien.
Ini akan memenuhi kebutuhan manajemen bagi Anda untuk melakukan hal-hal tanpa membuat banyak kode yang akan Anda buang (Jika Anda tahu apa yang baik untuk Anda.).
Klien juga perlu tahu bahwa mereka harus membayar untuk hal semacam ini. Kalau tidak, ada sedikit insentif untuk membuat mereka bergerak di proyek. Mungkin bermanfaat bagi pertemuan jika Anda dapat mempersempit mereka yang benar-benar terlibat dalam proyek dan pengambilan keputusan tanpa banyak orang memberikan saran tidak berguna mereka yang hanya akan memperlambat segalanya.
sumber
Mari kita lakukan eksperimen pemikiran: bayangkan Anda ingin membangun rumah dari bawah ke atas, dan Anda tidak tahu apa-apa tentang konstruksi. Bagaimana Anda menggambarkan persyaratan untuk pembangun? Bahkan jika Anda bisa, mereka kemungkinan akan menjadi pernyataan yang tidak jelas seperti "Saya ingin memastikan saya memiliki banyak ruang lemari" dan "Saya ingin dapur modern". Jelas Anda tidak dapat diharapkan mengetahui semua seluk beluk: arsitek yang menggambar rencana akan mengajukan banyak pertanyaan, dan membuat beberapa keputusan sendiri sesuai dengan praktik terbaik industri.
Di sinilah Anda berada: seseorang telah memutuskan mereka menginginkan sesuatu, tetapi mereka mengalami kesulitan menjelaskan apa yang mereka inginkan kepada Anda. Adalah tugas Anda untuk bekerja bersama dengan mereka untuk mencari tahu.
Jika ada sumber daya yang tersedia, dan Anda memiliki prinsip tingkat tinggi, mulailah menguraikan prinsip-prinsip itu menjadi cerita pengguna. Dari sana, Anda dapat membuat daftar tugas yang harus dilakukan. Buat saran di sepanjang jalan, tetapi pastikan bahwa Anda sepenuhnya memahami kebutuhan bisnis untuk pembaruan terlebih dahulu. Apakah kinerjanya buruk? Apakah tidak aman? Apakah desainnya sudah usang? Terserah Anda untuk menangani banyak detail yang tidak diketahui pengguna akhir Anda. Dokumentasikan pilihan yang Anda buat dan mengapa, dan mintalah pengguna bisnis (atau orang yang berlaku) menandatanganinya. Sekarang Anda punya persyaratan!
Ingat, seorang pengembang tidak perlu melakukan pengkodean sepanjang waktu: mereka juga harus merencanakan sebagian besar waktu. Beberapa soft skill paling penting yang dimiliki seorang pengembang berasal dari proses mengambil "ide bisnis" yang tidak jelas dan mengubahnya menjadi proyek kerja, yang menghasilkan produk yang sesuai dengan kebutuhan bisnis.
Membangun prototipe adalah ide bagus untuk mendapatkan umpan balik spesifik yang akan mengarah pada persyaratan yang lebih baik. Tetap ringan dan sederhana: ada alat di luar sana (di sini ada satu ) yang memungkinkan Anda untuk membangun mock-up yang berfungsi tanpa menulis satu baris kode pun.
Tentu bisa: itu sebabnya komunikasi sangat penting. Jelaskan bahwa ini prototipe berulang-ulang. Menampar tanda air yang bertuliskan 'DRAFT' di atasnya, apa pun. Pengguna bisnis, terutama yang tidak paham teknologi, akan mengalami kesulitan luar biasa hanya dengan memberi Anda persyaratan, terutama jika tidak ada yang bisa dilihat. Jika Anda dapat dengan cepat membuat prototipe yang dapat mereka mainkan, akan lebih mudah bagi mereka untuk mengatakan "Saya lebih suka ini daripada itu" ketika Anda melihatnya.
sumber