Membujuk persyaratan keluar dari orang bisnis?

27

Metode apa yang tampaknya bekerja paling baik untuk membujuk persyaratan dari orang-orang bisnis non-teknologi? Saya bekerja dengan tim yang mencoba untuk mendapatkan spec untuk proyek. Setiap kali kami bertemu dan itu menjadi harapan untuk pertemuan berikutnya, kami meminta para pelaku bisnis untuk mengembalikan persyaratan mereka. Mereka biasanya menanggapi sesuatu seperti ini: "Nah, apakah Anda pikir kalian bisa membuat prototipe sehingga kita bisa melihat apa yang kita sukai minggu depan ... Anda tahu, tidak dengan data atau apa pun karena itu prototipe, hanya fungsionalitasnya." adalah proyek 6 bulan plus sehingga jelas tidak mungkin (kita harus mengembangkan semuanya!), dan kita bahkan tidak tahu apa yang harus prototipe tanpa semacam spesifikasi. Terus terang, saya pikir seperti kebanyakan orang, mereka memiliki beberapa gagasan tentang apa yang mereka inginkan, mereka hanya tidak memikirkannya dengan cara yang terfokus yang diperlukan untuk mengumpulkan persyaratan yang sebenarnya. Sebagai alternatif untuk hanya memberi tahu mereka, “Beri kami apa yang Anda inginkan atau kami tidak bisa / tidak akan melakukan pekerjaan apa pun” (kami ingin mereka senang dengan hasilnya), apakah ada cara untuk membantu mereka memutuskan apa yang mereka inginkan? Misalnya, kita bisa memberi tahu mereka:

“Gambarlah beberapa layar (di Powerpoint, pada serbet, apa pun) yang menunjukkan UI yang Anda inginkan dengan semua data yang ingin Anda lihat dan deskripsi fungsi di margin. Dari ini, kami akan memolesnya dan membangun backend berdasarkan serangkaian persyaratan perilaku ini. "

ATAU

"Jangan khawatir tentang bagaimana kelihatannya sekarang (nomor 1 tutup). Beri kami daftar semua data yang Anda inginkan tentang setiap hal yang dilacak oleh program. Jadi untuk "Pelanggan" Anda dapat mendaftar: nama, alamat, nomor telepon, pesanan, dll. Ini tidak harus menjadi struktur basis data yang sempurna, tetapi kami dapat menyelesaikan sesuatu dari ini dan mendapatkan ide tentang apa yang Anda cari "

Apakah salah satu dari pendekatan alternatif ini untuk membuat orang bisnis fokus pada apa yang mereka inginkan masuk akal? Apakah ada alternatif yang telah Anda lihat dalam aksi?

Morgan Herlocker
sumber
18
Saya selalu melamun tentang mempekerjakan analis persyaratan dari kejahatan terorganisir. "Apakah kamu akan memberitahuku siapa yang seharusnya memiliki akses ke data akuntansi, atau apakah aku harus bersikap kasar?"
David Thornley
7
"Kebenaran akan lebih cepat keluar dari kesalahan daripada dari kebingungan." (Sir Francis Bacon, seperti dikutip oleh Fred Brooks) Katakan / tunjukkan kepada mereka apa yang Anda pikir mereka inginkan dalam istilah tertentu, bahkan jika Anda jauh dari basis. Mereka akan mengoreksi Anda. Ulangi beberapa kali sampai Anda mencapai pemahaman.

Jawaban:

22

Saya telah menghabiskan 3 bulan terakhir dalam fase pengumpulan-persyaratan yang melelahkan dan melelahkan dari sebuah proyek besar dan telah belajar, di atas segalanya, bahwa tidak ada solusi satu ukuran untuk semua . Tidak ada proses, tidak ada rahasia, yang akan berhasil dalam setiap kasus. Analisis persyaratan adalah keterampilan yang asli, dan tepat ketika Anda berpikir Anda akhirnya berhasil menyelesaikannya, Anda akan terpapar pada sekelompok orang yang benar-benar berbeda dan harus membuang semua yang Anda ketahui keluar jendela.

Beberapa pelajaran yang saya pelajari:

  • Pemangku kepentingan yang berbeda berpikir pada tingkat abstraksi yang berbeda.

    Mudah untuk mengatakan "berbicara di tingkat bisnis, bukan teknis", tetapi itu tidak selalu mudah dilakukan . Sistem yang Anda desain adalah gajah dan pemangku kepentingan Anda adalah orang buta yang memeriksanya . Beberapa orang begitu terbenam dalam proses dan rutinitas yang mereka bahkan tidak menyadari bahwa ada adalah sebuah bisnis. Orang lain mungkin bekerja pada tingkat abstraksi yang Anda inginkan tetapi cenderung membuat klaim berlebihan atau bahkan salah, atau terlibat dalam angan-angan.

    Sayangnya, Anda hanya perlu mengenal semua individu sebagai individu dan memahami bagaimana mereka berpikir, belajar bagaimana menafsirkan hal-hal yang mereka katakan, dan bahkan memutuskan apa yang harus diabaikan.

  • Membagi dan menaklukkan

    Jika Anda tidak ingin sesuatu dilakukan, kirimkan ke komite.

    Jangan bertemu dengan komite. Buat rapat itu sekecil mungkin. YMMV, tetapi dalam pengalaman saya, ukuran ideal adalah 3-4 orang (termasuk diri Anda sendiri) untuk sesi terbuka dan 2-3 orang untuk sesi tertutup (yaitu ketika Anda membutuhkan pertanyaan spesifik dijawab).

    Saya mencoba bertemu dengan orang-orang yang memiliki fungsi serupa dalam bisnis. Benar-benar sangat sedikit yang bisa diraih dan sangat banyak ruginya karena melemparkan orang-orang pemasaran di ruangan dengan penghitung kacang. Carilah orang-orang yang ahli dalam satu subjek dan minta mereka untuk membicarakannya.

  • Pertemuan tanpa persiapan adalah pertemuan tanpa tujuan.

    Beberapa jawaban / komentar lain merujuk pada teknik manusia jerami, yang merupakan teknik yang sangat baik untuk orang-orang yang menyusahkan yang sepertinya tidak bisa Anda dapatkan jawabannya. Tapi jangan mengandalkan jerami-orang terlalu banyak, atau orang-orang lain akan mulai merasa seperti Anda railroading mereka. Anda harus dengan lembut mendorong orang ke arah yang benar dan membiarkan mereka datang dengan spesifik sendiri, sehingga mereka merasa seperti mereka memiliki mereka (dan dalam arti, mereka memang memilikinya).

    Yang perlu Anda miliki adalah semacam model mental tentang bagaimana Anda berpikir bisnis berjalan, dan bagaimana sistem seharusnya bekerja. Anda harus menjadi pakar domain , bahkan jika Anda bukan pakar di perusahaan tertentu yang dimaksud. Lakukan riset sebanyak mungkin pada bisnis Anda, pesaing mereka, sistem yang ada di pasar, dan hal lain yang bahkan mungkin terkait jarak jauh.

    Sekali pada titik itu, saya merasa paling efektif untuk bekerja dengan konstruksi tingkat tinggi, seperti Use Cases, yang cenderung menyenangkan semua orang, tetapi masih penting untuk mengajukan pertanyaan spesifik. Jika Anda memulai dengan "Bagaimana Anda menagih pelanggan Anda?" , Anda berada dalam pertemuan yang sangat panjang. Ajukan pertanyaan yang menyiratkan suatu proses alih-alih menyiarkan proses di awal: Apa saja item baris? Bagaimana mereka dihitung? Seberapa sering mereka berubah? Berapa banyak jenis penjualan atau kontrak yang ada? Di mana mereka dicetak? Anda mendapatkan idenya.

    Jika Anda melewatkan satu langkah, biasanya seseorang akan memberi tahu Anda. Jika tidak ada yang mengeluh, beri tepukan pada diri sendiri, karena Anda baru saja secara implisit mengkonfirmasi prosesnya.

  • Tunda diskusi di luar topik .

    Sebagai analis persyaratan, Anda juga berperan sebagai fasilitator, dan kecuali Anda benar-benar menikmati menghabiskan seluruh waktu Anda dalam rapat, Anda perlu menemukan cara untuk menjaga segala sesuatunya tetap pada jalurnya. Ironisnya, masalah ini menjadi yang paling merusak ketika Anda akhirnya tidak membuat orang berbicara. Jika Anda tidak hati-hati, itu dapat menggagalkan kereta yang Anda habiskan begitu banyak waktu untuk meletakkan rel.

    Namun - dan saya mempelajari ini dengan cara yang sulit sejak lama - Anda tidak bisa hanya memberi tahu orang-orang bahwa suatu masalah tidak relevan . Ini jelas relevan bagi mereka , jika tidak mereka tidak akan membicarakannya. Tugas Anda adalah membuat orang mengatakan "ya" sebanyak mungkin dan memasang penghalang seperti itu hanya membuat Anda jatuh ke wilayah "tidak".

    Ini adalah keseimbangan halus yang dapat dipertahankan banyak orang dengan "item tindakan" - pada dasarnya antrian diskusi yang telah Anda janjikan untuk kembali ke suatu waktu , biasanya ditandai dengan nama-nama pemangku kepentingan yang menganggapnya sangat penting. Ini bukan hanya demi diplomasi - ini juga merupakan alat yang berharga untuk membantu Anda mengingat apa yang terjadi selama pertemuan, dan siapa yang harus diajak bicara jika nanti Anda perlu klarifikasi.

    Analis yang berbeda menangani ini dengan cara yang berbeda; beberapa seperti papan tulis atau flip-chart log yang sangat umum, yang lain diam-diam menyadapnya ke laptop mereka dan dengan lembut memisahkan ke dalam topik lain. Apa pun yang Anda merasa nyaman.

  • Anda butuh agenda

    Ini mungkin benar untuk hampir semua jenis rapat tetapi dua kali lipat berlaku untuk pertemuan persyaratan. Ketika diskusi berlanjut, pikiran orang-orang mulai mengembara dan mereka mulai bertanya-tanya kapan Anda akan mendapatkan hal-hal yang benar-benar mereka pedulikan. Memiliki agenda menyediakan beberapa struktur dan juga membantu Anda untuk menentukan, sebagaimana disebutkan di atas, ketika Anda perlu menunda diskusi yang keluar dari topik.

    Jangan berjalan di sana tanpa gagasan yang jelas tentang apa yang ingin Anda liput dan kapan . Tanpa itu, Anda tidak memiliki cara untuk mengevaluasi kemajuan Anda sendiri, dan pengguna akan membenci Anda karena selalu berjalan lama (dengan asumsi mereka tidak membenci Anda karena alasan lain).

  • Mock It

    Jika Anda menggunakan PowerPoint atau Visio sebagai alat mock-up, Anda akan menderita masalah itu tampak terlalu halus . Ini hampir merupakan lembah antarmuka pengguna yang luar biasa ; orang akan merasa nyaman dengan gambar serbet (atau gambar buatan komputer yang terlihat seperti gambar serbet, menggunakan alat seperti Balsamiq atau Sketchflow ), karena mereka tahu itu bukan hal yang nyata - alasan yang sama orang dapat menonton karakter kartun. Tetapi semakin mulai terlihat seperti UI yang nyata, semakin banyak orang akan ingin mengambil dan mengaisnya, dan semakin banyak waktu yang mereka habiskan untuk berdebat tentang detail yang pada akhirnya tidak signifikan.

    Jadi pasti lakukan mock up untuk menguji pemahaman Anda tentang persyaratan ( setelah tahap analisis awal) - mereka adalah cara yang bagus untuk mendapatkan umpan balik yang sangat cepat dan terperinci - tetapi tetap gunakan lo-fi dan jangan buru-buru mengejek sampai Anda cukup yakin bahwa Anda melihat langsung dengan pengguna Anda.

    Perlu diingat bahwa mock up tidak bisa dikirim , itu adalah alat untuk membantu dalam memahami. Sama seperti Anda tidak akan berharap menjadi tawanan tiruan Anda ketika melakukan desain UI, Anda tidak dapat mengasumsikan bahwa desain itu OK hanya karena mereka memberi Anda acungan jempol mock-up. Saya telah melihat ejekan digunakan sebagai tongkat penyangga, atau lebih buruk, alasan untuk mem-bypass persyaratan sepenuhnya; pastikan kamu tidak melakukan itu. Kembali dan ubah tiruan itu menjadi seperangkat persyaratan nyata.

  • Sabar.

    Ini sulit bagi banyak programmer untuk percaya, tetapi untuk sebagian besar proyek non-sepele, Anda tidak bisa hanya duduk satu kali dan menuntaskan spesifikasi fungsional lengkap. Saya tidak hanya berbicara tentang kesabaran selama satu pertemuan; analisis persyaratan adalah berulang dengan cara yang sama dengan kode. Grup A mengatakan sesuatu dan kemudian Grup B mengatakan sesuatu yang benar-benar bertentangan dengan apa yang Anda dengar dari Grup A. Kemudian Grup A menjelaskan ketidakkonsistenan dan ternyata menjadi sesuatu yang lupa disebutkan oleh Grup C. Ulangi 500 kali dan Anda memiliki sesuatu yang secara kasar menyerupai kebenaran .

    Kecuali jika Anda mengembangkan beberapa aplikasi CRUD kecil (dalam hal ini mengapa repot-repot dengan persyaratan?) Maka jangan berharap untuk mendapatkan semua yang Anda butuhkan dalam satu pertemuan, atau dua, atau lima. Anda akan banyak mendengarkan, dan banyak berbicara, dan banyak mengulangi diri sendiri. Yang bukan hal yang mengerikan, ingatlah; ini adalah kesempatan untuk membangun hubungan dengan orang-orang yang mau tidak mau akan menandatangani pengiriman Anda.

  • Jangan takut untuk mengubah teknik atau improvisasi Anda.

    Aspek yang berbeda dari suatu proyek sebenarnya membutuhkan teknik analisis yang berbeda. Dalam beberapa kasus, UML klasik (Use Case / Activity diagram) berfungsi dengan baik. Dalam kasus lain, Anda mungkin memulai dengan KSI bisnis, atau bertukar pikiran dengan peta pikiran, atau terjun langsung ke maket meskipun saya sudah memperingatkan sebelumnya.

    Intinya adalah bahwa Anda perlu memahami domain sendiri, dan melakukan pekerjaan rumah Anda sebelum Anda menghabiskan waktu orang lain. Jika Anda tahu bahwa departemen atau komponen tertentu hanya memiliki satu use case, tetapi ini adalah insanely rumit, maka lewati analisis use case dan mulailah berbicara tentang alur kerja atau aliran data. Jika Anda tidak akan menggunakan alat yang sama untuk setiap bagian dari implementasi aplikasi, lalu mengapa Anda menggunakan alat yang sama untuk setiap bagian dari persyaratan?

  • Jaga telinga Anda ke tanah.

    Dari semua petunjuk dan tips yang saya baca untuk analisis persyaratan, ini mungkin salah satu yang paling sering diabaikan. Jujur saya pikir saya telah belajar lebih banyak tentang menguping dan kadang-kadang membuat percakapan yang lebih dingin dari pada pertemuan yang dijadwalkan.

    Jika Anda terbiasa bekerja dalam isolasi, coba cari tempat di mana aksinya sehingga Anda dapat mendengar obrolan. Jika Anda tidak bisa, maka lakukan putaran, ke dapur atau kamar mandi atau di mana saja. Anda akan menemukan segala macam hal menarik tentang bagaimana bisnis benar-benar beroperasi dari mendengarkan apa yang dibanggakan atau dikeluhkan orang-orang saat kopi dan merokok.

  • Akhirnya, baca yang tersirat .

    Salah satu kesalahan terbesar saya di masa lalu adalah begitu fokus pada hasil akhirnya sehingga saya tidak meluangkan waktu untuk benar - benar mendengar apa yang orang katakan . Kadang-kadang - sering kali - mungkin terdengar seperti orang-orang mengoceh tentang apa-apa atau mengomel tentang beberapa prosedur yang terdengar sama sekali tidak berguna bagi Anda, tetapi jika Anda benar-benar berkonsentrasi pada apa yang mereka katakan, Anda akan menyadari bahwa memang ada persyaratan terkubur di sana - atau beberapa.

    Sekonyong-konyong dan hambar kedengarannya, Five Whys adalah teknik yang sangat berguna di sini. Kapan pun Anda mendapat reaksi "itu bodoh" (bukan itu Anda akan mengatakannya dengan keras), hentikan diri Anda, dan ubah menjadi pertanyaan: Mengapa? Mengapa informasi ini diketik ulang empat kali, lalu dicetak, difotokopi, dipindai, dicetak lagi, ditempelkan ke papan partikel, ditembak dengan kamera digital dan akhirnya dikirim melalui email ke manajer penjualan? Ada adalah alasan , dan mereka mungkin tidak tahu apa itu, tapi itu tugas Anda untuk mencari tahu. Semoga beruntung dengan itu. ;)

Aaronaught
sumber
4
+1 untuk menjadi salah satu jawaban paling mendebarkan yang pernah saya lihat di Programmer SE!
Morgan Herlocker
19

Jika Anda tidak bisa mendapatkan sesuatu dari mereka, tulis sesuatu dan setujui. Jauh lebih mudah bagi orang-orang non-teknis mengatakan 'tidak, saya tidak suka itu' daripada 'ini adalah bagaimana Anda harus melakukannya.'

Sering kali apa yang mereka inginkan dan apa yang mereka katakan adalah dua hal yang sangat berbeda. Luangkan waktu untuk menulis draf spesifikasi dengan info yang Anda ketahui saat ini. Mintalah pemangku kepentingan untuk membacanya dan menyetujuinya. Ketika mereka membacanya, kemungkinan besar mereka akan melihat hal-hal yang tidak mereka sukai atau setujui. Dapatkan umpan balik dari mereka dan kemudian perbaiki.

Jika ada sesuatu yang dapat Anda lakukan dengan satu atau lain cara, onlinekan kedua opsi tersebut dan dapatkan pembuat keputusan untuk membuat pilihan. Jangan biarkan mereka sampai mereka melakukannya.

Sedangkan untuk prototipe, buat tiruan layar, dan jelaskan bagaimana segala sesuatunya bekerja. Sekali lagi, melihat sesuatu membantu mereka memvisualisasikan apa yang sedang terjadi. Bawa mock-up layar baru bersama Anda ke rapat dan dapatkan jawaban.

Di masa lalu, saya benar-benar membuka FireBug dan menambahkan perubahan yang diminta pelanggan tepat di depan mereka sehingga mereka dapat melihat seperti apa tampilannya. Mereka memberikan umpan balik mereka, saya mengambil screenshot lalu menerapkan perubahan. Mereka benar-benar senang bisa melihat seperti apa perubahan itu, dan saya suka itu cepat, dan saya mendapat jawaban saya dalam pertemuan itu ... bukan yang berikutnya.

Tyanna
sumber
2
+1. Teknik strawman seringkali merupakan satu-satunya cara untuk membuat pengguna akhir berpikir tentang apa yang mereka lakukan - pekerjaan mereka sangat otomatis bagi mereka sehingga sebenarnya sulit bagi mereka untuk memikirkannya.
DaveE
Jujur saya berpikir bahwa siapa pun (termasuk programmer) dapat memberikan persyaratan lebih mudah sebagai "tidak, saya tidak suka itu. Saya ingin ini berubah" daripada "Saya ingin ini". Saya pikir ini membantu fokus pada tugas langsung yang ada daripada mencoba memikirkan seluruh proyek sekaligus
Earlz
Beri +1 untuk membuat mereka mengatakan "Tidak, saya tidak suka itu" alih-alih "Saya ingin ini". Jika sebuah perusahaan tidak tahu persis apa yang mereka inginkan, inilah pendekatan yang saya coba dan ambil.
Rachel
11

Buat mereka untuk berbicara lebih banyak tentang bisnis mereka dan lebih sedikit tentang aplikasi. Cari tahu apa masalah sebenarnya: pelaporan akhir bulan terlalu lama, kesalahan entri data, mereka sudah melampaui aplikasi mereka saat ini, pertumbuhan perusahaan semakin tidak terkendali.

Saya menduga pertemuan-pertemuan ini dengan orang-orang yang melakukan pembelian tetapi bukan orang-orang yang benar-benar akan melakukan pekerjaan yang melibatkan aplikasi. Tanyakan apakah Anda dapat bertemu dengan beberapa orang tertentu. Mereka dapat menunjukkan kepada Anda bagaimana hal-hal benar-benar dilakukan. Pastikan Anda berurusan dengan klien yang telah menganggarkan waktu dan biaya.

Lihat apakah mereka memiliki laporan yang sedang mereka gunakan atau ingin gunakan. Jelas Anda tidak dapat membuat laporan jika Anda tidak mengumpulkan data dengan benar. Mereka harus melakukan sesuatu kecuali ini adalah lini bisnis yang belum mereka mulai.

Banyak yang memiliki gagasan umum bahwa Anda adalah programmer, sehingga Anda tahu cara membangun semua program. Situs eCommerce semuanya sama, bukan?

Mulai dari yang kecil. Sayangnya, sampai Anda mendapatkan sesuatu di depan mereka, prosesnya tidak dapat didaftarkan. Jika Anda tidak memiliki apa-apa untuk berlalu, maka hanya memalsukannya.

JeffO
sumber
Jeff benar. Buat mereka berbicara tentang masalah bisnis aktual yang harus mereka perbaiki. Kemudian datang dengan sesuatu yang bisa dilakukan dengan cepat dan murah. Jika Anda memenuhi itu, Anda tidak akan pernah lapar.
Christopher Mahan
+1 untuk "Buat mereka berbicara lebih banyak tentang bisnis mereka dan lebih sedikit tentang aplikasi." Itu adalah satu aturan emas.
DPD
8

Banyak dari ini berkaitan dengan keterampilan interpersonal generik dan bagaimana Anda berkomunikasi dengan klien. Tidak banyak yang bisa saya katakan tentang itu, di luar - pastikan Anda menjelaskan prosesnya sebagai proses interaktif, di mana Anda mengharapkan umpan balik dan upaya dari pihak klien juga.

Khusus untuk skenario yang Anda gambarkan, berikut ini beberapa saran lagi: Mulailah dengan menjelaskan apa yang menurut Anda berguna untuk dimiliki, dan berikan kendaraan untuk menggambarkan informasi dalam istilah yang tidak memerlukan spesialisasi teknis atau pengetahuan:

  • Kisah pengguna / kasus penggunaan Minta deskripsi terperinci tentang apa yang diharapkan dilakukan oleh pengguna, informasi apa yang mereka butuhkan untuk melakukannya, dan apa yang harus dan dapat Anda harapkan agar pengguna masukkan sendiri. Setelah Anda memiliki informasi ini, telusuri bersama mereka dan pastikan semuanya ditutupi dengan cerita - seharusnya tidak ada yang masuk ke aplikasi, di mana Anda tidak memiliki cerita yang meliput apa yang akan dilakukan pengguna di sana.

  • Demonstrasi yang menarik Apa yang lebih penting untuk memenangkan pelanggan? Bagian mana dari program atau fungsi yang perlu menonjol, dan harus sepenuhnya dipoles? Bisakah Anda memberi saya demo mockup, menggunakan catatan posting atau kotak kardus atau stand-in lainnya, yang Anda ingin berfungsi?

  • Informasi pasar / persaingan Untuk setiap kisah pengguna, apa yang kami lakukan yang mirip dengan pesaing kami? Berbeda? Kisah apa yang diceritakan pesaing kita, dan apakah kita mencoba untuk meniru / meniru / meningkatkan / berinovasi / menjadi berbeda secara sengaja?

  • Pertanyaan terbuka Apa, dari persyaratan dan desain, adalah informasi yang Anda yakini, dan apa itu eksperimen? Di mana kita akan mencoba alternatif untuk melihat mana yang berfungsi? Jika Anda mencari beberapa alternatif, dan Anda hanya memberi tahu kami, apa yang Anda pertimbangkan?

Kemudian, buat beberapa batasan:

  • Tolong jangan tempatkan batasan teknis pada saya . Seorang pebisnis tidak boleh memberi tahu Anda "menggunakan windows karena itu lebih baik daripada linux". Mereka dapat, bagaimanapun, memberikan instruksi di sepanjang garis "semua target pasar kami menggunakan windows, aplikasi kami harus berjalan di windows untuk berhasil"

  • Jangan khawatir tentang desain. Terutama jika Anda berurusan dengan orang-orang yang berorientasi penjualan atau pemasaran, mereka akan cenderung terjebak dengan masalah desain. Sekali lagi, persempit ruang lingkup informasi ke spesialisasi mereka - "biru lebih indah di sini" mungkin tidak tepat. "Pesaing kami menggunakan tema warna biru, dan telah ada sejak tahun 80-an, untuk bagian dari program kami di mana kami tidak berinovasi, kita harus menggunakan skema biru untuk berkomunikasi bahwa kita bukan orang baru", mungkin sesuai. "Nama harus di bagian atas layar" mungkin tidak sesuai, tetapi "informasi paling penting pada halaman ini adalah nama pengguna dan saldo rekening bank", mungkin. Pastikan desainer terlibat dalam menerjemahkan persyaratan ini ke dalam UI.

  • Tuliskan keputusan Lebih disukai buat ini menjadi kontrak atau komitmen lain yang Anda buat. Ingat, bagaimanapun, bahwa keputusan yang tidak dipahami pelanggan, tidak sepadan dengan kertas yang ditulisnya. Pelanggan yang keluar dari "aplikasi akan berjalan di port 1521" tidak sepadan dengan pelanggan yang keluar di "aplikasi akan berjalan di pelabuhan khusus yang dapat dikonfigurasi, yang mungkin memerlukan konfigurasi khusus untuk firewall dan keamanan saat digunakan "

Dari sudut pandang Anda, untuk mendorong proses untuk melanjutkan:

  • Berikan umpan balik pada tingkat abstraksi yang sama. Ini berlaku, misalnya, untuk unit - jika pelanggan berbicara volume pengguna bulanan, jangan merespons dalam bandwidth gigabit. Atau, untuk kasus penggunaan - jelaskan fungsionalitas dalam hal kasus penggunaan yang berfungsi, daripada modul atau perbaikan bug atau fitur.

  • Berikan komunikasi yang bermakna Frasa pertanyaan yang Anda miliki, dan informasi tambahan yang Anda temukan atau cari, dalam hal informasi yang diberikan kepada Anda. "Kami akan menggunakan linux" mungkin merupakan umpan balik yang ditulis dengan buruk, sementara "pengujian kami menunjukkan bahwa aplikasi berjalan lebih lancar ketika dihosting di mesin linux dan diakses dengan IE pada windows" mungkin lebih tepat.

  • Iterasi dengan cepat Untuk membuat klien tetap terlibat, berikan pembaruan dan iterasi yang cepat dan bermakna. Spesifikasi dan informasi yang tidak tersedia atau mudah diperoleh saat proses dimulai mungkin membutuhkan banyak upaya dari pelanggan Anda, yang, mungkin, membayar Anda, sementara Anda tidak membayar mereka untuk pekerjaan mereka. Membuat klien untuk dilibatkan dan diinvestasikan dalam proses dapat membantu ketika pekerjaan akhirnya menjadi sesuatu yang harus mereka habiskan waktu dan upaya.

blueberryfields
sumber
5

Klien Anda, para pebisnis, mungkin memiliki beberapa jenis masalah, menginginkan beberapa jenis solusi teknis, tetapi memiliki sedikit gagasan tentang bagaimana solusi tersebut dapat bekerja, dan dengan demikian memiliki sedikit gagasan tentang bagaimana menentukan solusi potensial apa pun. Jika demikian, peran yang hilang adalah analis solusi bisnis, yang dapat mempelajari pelanggan, masalah mereka, alur kerja mereka, dll., Dan bagaimana solusi yang mungkin sesuai dengan prosedur, budaya, dll. Perusahaan mereka, serta apakah ada solusi tertentu mungkin layak untuk diimplementasikan dalam waktu, sesuai anggaran, dll. Ini mungkin merupakan peran yang sangat lintas disiplin, yang membutuhkan pengetahuan tentang kedua praktik bisnis (hukum, akuntansi, logistik, dll.), psikologi pengguna, serta teknologi perangkat lunak.

Sepertinya Anda ingin memaksa pelanggan menjadi analis solusi bisnis mereka sendiri. Ini mungkin bukan peran yang mereka miliki keahlian yang cukup untuk memastikan spek yang masuk akal. Dan sepertinya Anda juga tidak ingin mengambil peran ini. Jika Anda, atau pelanggan Anda tidak memiliki keahlian untuk mengisi peran ini, Anda mungkin tidak memiliki semua orang yang dibutuhkan untuk proyek yang sukses.

Terkadang sekelompok prototipe cepat yang dapat dimainkan oleh pelanggan mungkin merupakan satu-satunya cara untuk secara eksperimental menemukan dan menyatukan semacam solusi yang dapat digunakan untuk kebutuhan pelanggan (yang disuarakan dan tidak disuarakan). Ini mungkin atau mungkin tidak cocok untuk segala jenis kontrak tanpa batas.

TAMBAH: Jika Anda mencoba untuk memaksa dokumen persyaratan keluar dari pelanggan yang tidak memiliki keahlian yang diperlukan, ini berpotensi menjadi bendera merah besar yang mengindikasikan bencana yang akan datang.

hotpaw2
sumber
3

Jangan meminta persyaratan UI atau Data, tanyakan persyaratan Fungsionalitas.

Tanyakan kepada mereka tentang apa yang mereka ingin aplikasi lakukan. Mintalah mereka menelusuri bagaimana mereka ingin menggunakan aplikasi. Biarkan detail seperti UI, Data, dll. Dari awal.

Saya telah menemukan bahwa seringkali pengguna tidak tahu apa yang mereka inginkan dalam hal UI atau Data, tetapi mereka tahu apa yang mereka inginkan sejauh fungsionalitas. Misalnya, mereka akan memberi tahu saya, "Saya ingin masuk dan melihat semua Info Pelanggan." Jangan melihat seperti apa tampilan layar, atau data apa yang mereka inginkan, dapatkan fungsionalitasnya saja.

Setelah Anda memilikinya, lakukan mockup cepat (saya suka Balsamiq ). Anggap saja apa itu UI / Data, dan jangan menghabiskan banyak waktu untuk itu. Kemudian bawa mockup itu kembali ke Pelanggan. Dari sana, mereka dapat memberi tahu Anda "kami tidak membutuhkan bidang ini" atau "Kami benar-benar menginginkan daftar nomor telepon, bukan hanya satu", atau "ini harus berupa dropdown, bukan listbox".

Setelah Anda memiliki titik awal, jauh lebih mudah untuk menyempurnakan Data dan UI, dan saya menemukan menentukan Fungsionalitas adalah titik awal terbaik.

Rachel
sumber
2

Saya sarankan Anda mencoba memfokuskannya pada proses bisnis terlebih dahulu dan terutama. Buat mereka untuk mendefinisikan, baik dalam dokumen, atau diskusi, bagaimana mereka saat ini melakukan tugas apa pun yang akan ditangani oleh perangkat lunak Anda. Kemudian fokus pada bagian mana dari proses yang mereka ingin lihat berubah (alasan mereka menginginkan perangkat lunak Anda). Gunakan itu sebagai titik awal untuk diskusi bagian mana dari proses yang dapat ditingkatkan, atau bahkan dihapus sama sekali, dengan menggunakan perangkat lunak Anda.

Jika klien Anda tidak terbiasa menyediakan persyaratan perangkat lunak, tim Anda harus menyusun persyaratan untuknya. Berharap untuk melalui beberapa revisi, tetapi Anda setidaknya harus memberikan mereka dokumen awal untuk membantu mengomunikasikan apa yang Anda cari.

Setelah mendapatkan ide bagus tentang persyaratan fungsional dari proses hasil akhir yang diharapkan yang akan menggabungkan perangkat lunak Anda, Anda dapat mulai menyusun mock-up antarmuka. Jika Anda ingin mereka terlebih dahulu menusuknya, Anda bisa, tetapi biasanya Anda lebih baik memberikan ide-ide awal, dan membiarkan mereka mengubahnya. Anda tidak memerlukan kode fungsional untuk ini. Tangkapan layar UI yang sedang dikembangkan, representasi HTML dari tata letak menggunakan teks pengisi statis, atau bahkan gambar (jika Anda memiliki staf seniman yang baik) dapat digunakan untuk diskusi UI awal.

Setelah Anda mengalami beberapa revisi, dan semua orang setuju dengan apa yang disajikan, dapatkan persetujuan pelanggan secara tertulis! Tidak peduli berapa banyak mereka menolak, langkah ini sangat penting. Anda mungkin perlu meyakinkan mereka bahwa penandatanganan persyaratan tidak berarti bahwa mereka tidak dapat memiliki input lebih lanjut ke dalam proyek (tergantung pada sifat hubungan Anda dengan klien), dalam hal ini Anda harus menjelaskan bagaimana revisi terhadap persyaratan akan ditangani (mis. harus ditinjau dan disetujui, didorong ke versi berikutnya, diberi harga secara terpisah sebagai perangkat tambahan, dll.).

Beofett
sumber
1

Saya akan memberi tahu mereka bahwa Anda akan mengembangkan fitur program berdasarkan fitur. Sampai pertemuan berikutnya, katakanlah dalam 1-2 minggu Anda akan mengerjakan sejumlah fitur X. Ini bisa 1, 2, 3 atau lebih.

Katakanlah Anda akan mulai dengan mengembangkan fonctionality paling penting terlebih dahulu. Anda harus mulai dengan fitur inti. Katakanlah Anda membuat mesin kasir (demi argumen). Katakan kepada mereka, ok yang pertama (atau berikutnya) dalam daftar fitur paling penting adalah meminta tanggal lahir pengguna sebagai konfirmasi ketika melakukan penarikan besar-besaran (sebagai pengganti fonctionnality pada proyek Anda, Anda tahu itu bukan salah satu fitur inti utama yang akan diimplementasikan selanjutnya).

Penegasan naif ini harus mendapat reaksi dari klien. Ketika itu bertanya kepada mereka apa yang akan mereka lakukan selanjutnya? Apa fitur paling penting yang belum dilakukan pada proyek dan lebih baik daripada yang Anda sebutkan.

Menggunakan kembali contoh sebelumnya yang mungkin dikatakan oleh klien kepada Anda bahwa kartu tersebut memvalidasi kartu pengguna atau melakukan setoran, dll. Kemudian minta mereka untuk menentukannya untuk Anda. Jangan takut untuk bertanya banyak pertanyaan, bahkan pertanyaan naif jika perlu.

Setelah Anda mendiskusikan hal ini dengan klien, Anda harus memiliki beberapa persyaratan untuk bagian fonctionality yang satu ini. Anda dapat mendefinisikan lebih dari satu bagian fonksionalitas tetapi saya akan menjaga jumlahnya tetap rendah.

Dalam 1-2 minggu bertemu lagi dengan klien untuk mempresentasikan apa yang telah Anda lakukan dan mendapatkan masukan dari mereka. Presentasikan ke klien dan dapatkan masukan mereka jika ada yang perlu diubah atau ditambahkan.

Kemudian ulangi latihan sebelumnya untuk banyak fitur berikutnya. Lanjutkan dengan proses ini secara berulang untuk sisa proyek, pastikan Anda tetap berhubungan dengan klien dan melakukan pertemuan secara berkala untuk menunjukkan pekerjaan Anda dan merencanakan apa yang akan dilakukan selanjutnya (selalu tetap dengan potongan kecil).

Gilles
sumber
1

Anda berbicara pembicaraan teknik dan mereka tidak peduli tentang itu, dalam pengalaman saya; mereka juga tidak ingin berkomitmen untuk melakukan apa pun (terutama secara tertulis) dan mereka tidak benar-benar ingin melakukan pekerjaan apa pun, meskipun itu tidak khusus untuk jenis bisnis - tidak ada yang ingin melakukan banyak pekerjaan dalam domain yang mereka tidak tahu dan tidak peduli untuk tahu. Itu pekerjaan Anda (dalam pikiran mereka).

Apa yang saya lakukan adalah ini: berbicara dengan mereka tentang apa yang mereka inginkan, dalam bahasa domain mereka. Mereka tidak akan bisa atau tidak mau tepat seperti yang Anda harapkan (kasus penggunaan, desain dengan kontrak, dll.) Tetapi Anda bisa tepat dalam menerjemahkan jenis desiderata yang samar dan berangin ke dalam desain aktual, dan , akibatnya, dokumen desain. Jika mereka akan menganggarkan Anda waktu untuk melakukan ini secara formal, jauh lebih baik. Jika tidak, buat yang dadakan, informal yang bisa Anda gunakan.

Saya tahu, ini bukan jawaban yang sangat bahagia, tetapi saya merasa hidup lebih mudah ketika saya berhenti berusaha untuk mendapatkan klien (atau siapa pun, benar-benar) untuk masuk ke alam semesta saya dan berbicara dalam bahasa saya. Meskipun akhirnya saya mengajukan pertanyaan yang sama berulang-ulang ketika saya mulai berdamai dengan domain dan persyaratan (yang seringkali hanya samar-samar dipahami oleh klien), hal yang berlawanan dengan intuisi adalah bahwa diskusi tidak membuat frustrasi. Bahkan, hubungan dengan klien cenderung semakin kuat, saya kira karena orang-orang suka berbicara tentang apa yang mereka ketahui, dan Anda akhirnya memahami POV mereka lebih bulat daripada Anda mungkin jika dibiarkan dengan pendekatan desain yang lebih ketat.

shanusmagnus
sumber
1

Tanpa seorang manajer yang tahu sesuatu tentang pemrograman, saya tidak pernah memiliki sedikit keberhasilan dalam hal ini. Sebaliknya, satu-satunya pendekatan yang saya temukan yang berhasil adalah mengamati apa yang sebenarnya terjadi.

Loren Pechtel
sumber
1

Saya kira programmer memiliki kemampuan yang lebih baik untuk membayangkan seperti apa sebuah program sebelum dibangun. Paper prototyping mungkin merupakan teknik yang efektif untuk mengatasi hal ini. Prototipe kertas relatif "murah" untuk dibuat. Dengan menuntun klien Anda melalui prototipe kertas sederhana, Anda menunjukkan perlunya berpikir "dengan cara yang terfokus yang diperlukan untuk mengumpulkan persyaratan yang sebenarnya." Dan itu memberikan cara khusus untuk fokus: benar-benar mencoba menggunakan aplikasi yang ada di kepala Anda!

Selain itu, Anda dapat beralih dengan sangat cepat dari tebakan terbaik Anda tentang apa yang diinginkan klien ke aplikasi yang benar-benar diinginkan klien, tetapi kesulitan menyampaikannya. Lebih mudah untuk melihat prototipe dan memutuskan mengapa itu tidak cocok dengan aplikasi ideal di kepala Anda daripada mendaftar semua persyaratan aplikasi itu.


Saya bekerja di situs web di mana mitra lain lebih berorientasi bisnis. Saya terus meminta persyaratan khusus dengan berbagai cara. Respons mereka pada dasarnya adalah, "Kamu orang komputer, kami berharap kamu untuk memecahkan masalah ini. Kami lebih suka melakukan hal-hal bisnis." Mereka tidak peduli dengan perincian spesifik ... sampai versi pertama dirilis! Mereka jauh lebih antusias tentang persyaratan setelah rilis, memberikan segala macam umpan balik yang akan menyelamatkan saya banyak waktu di depan ketika saya awalnya bertanya.

Jadi saya memutuskan iterasi adalah kuncinya: membangun versi minimal yang layak dan memperbaikinya berdasarkan umpan balik. Jika persyaratannya terlalu kabur dan umum, buat keputusan berdasarkan pada "Apa yang paling sederhana, implementasi tercepat?" (kecuali desain / arsitektur sistem mendasar). Jangan terlalu membebani asumsi berdasarkan apa yang Anda anggap "benar." Itu hanya akan berakhir membuang-buang waktu karena kemungkinan besar proses pemikiran Anda berbeda dari klien Anda.

Sebagai contoh: klien meminta fitur unggah gambar; tidak akan menguraikan persyaratan yang lebih spesifik. Bangunlah secara naif mungkin. Meskipun menurut Anda itulah yang diinginkan klien, jangan tambahkan fitur pemangkasan otomatis, pengubahan ukuran, dan thumbnail. Biarkan klien melihat versi minimal yang layak (yang dapat Anda kembangkan jauh lebih cepat daripada versi yang tidak naif), dan persyaratan akan mulai mengalir masuk sebagai "Inilah yang salah dengan versi saat ini." Catat setiap persyaratan baru ini sebagai "bug." Anda dapat memprioritaskan mana yang paling mudah / menguntungkan.

Sebenarnya terjadi pada saya: Permintaan formulir pendaftaran dengan kode undangan khusus. Idenya adalah untuk menciptakan proses pendaftaran viral di mana setiap pengguna baru menerima beberapa undangan. Saya menghabiskan banyak waktu memastikan kode-kode itu unik dan hanya bisa digunakan sekali. Saya juga melakukan banyak upaya untuk membuat proses tanpa gesekan mungkin dengan membuat bidang nama depan dan belakang opsional. Pada akhirnya, mitra meminta perubahan ini: nama depan dan belakang wajib, "kode" pendaftaran, valid jika ada sesuatu yang dimasukkan ke dalam bidang ... sigh ~

Leftium
sumber