User Story vs Requirement

33

Kisah Pengguna menangkap apa yang ingin dilakukan pengguna dengan sistem pada tingkat tinggi. Saya mengerti bahwa kisah pengguna selanjutnya akan mendorong sejumlah persyaratan tingkat rendah. Apakah cerita pengguna sama dengan persyaratan tingkat tinggi untuk sistem?

Punter Vicky
sumber
"Cerita Pengguna menangkap apa yang ingin dilakukan pengguna dengan sistem pada level tinggi ". Saya menganggap ini kontroversi. Saya akan menemukan diri saya setuju jika Anda mengganti level tinggi dengan level fitur .
8bitjunkie

Jawaban:

52

Sejujurnya, setelah menghabiskan hampir dua tahun terbenam dalam pengembangan Agile, saya masih berpikir "kisah pengguna" hanyalah istilah yang bagus untuk "persyaratan fungsional".

Ini berbeda pada tingkat yang dangkal , misalnya selalu mengambil bentuk tertentu ( "sebagai X, saya ingin Y sehingga Z ..." ), tetapi elemen kunci - mengidentifikasi pemangku kepentingan dan alasannya - juga melekat dalam well- persyaratan fungsional tertulis. Sangat mudah untuk menulis cerita pengguna yang buruk seperti halnya menulis persyaratan yang buruk ( "seperti [nama perusahaan kami], saya ingin [fitur samar] sehingga saya dapat [melakukan sesuatu yang jelas merupakan bagian dari pekerjaan saya, seperti 'jual lebih banyak ke pelanggan'] " ).

Yang menurut cerita pengguna hampir tidak pernah ditangkap, adalah persyaratan non-fungsional seperti kinerja dan keamanan. Jenis-jenis persyaratan ini sangat sulit untuk ditulis dengan benar dan format cerita pengguna tidak begitu baik untuk menangkapnya, karena mereka lebih tentang kualitas produk umum dan mengurangi (tetapi tidak menghilangkan) risiko daripada bertemu dengan pengguna tertentu perlu.

Jadi, saya benar-benar menganggap cerita pengguna sebagai bagian dari persyaratan, dengan formula tertentu, dan masih menggunakan istilah-istilah itu secara bergantian.

Salah satu keuntungan utama yang dimiliki oleh pengguna dibandingkan dengan persyaratan adalah bahwa kata "persyaratan" menunjukkan bahwa suatu fitur diperlukan di tempat yang sering diinginkan . Secara teori pengguna cerita dapat diprioritaskan dan ditempatkan untuk setiap rilis, sedangkan persyaratan tampaknya menjadi prasyarat untuk setiap rilis.

Tentu saja, untuk perbedaan yang disebutkan di atas menjadi masalah, pelanggan dan / atau manajemen senior Anda harus menerimanya; tidak ada gunanya sama sekali jika Anda memiliki 30 cerita pengguna semua dikelompokkan menjadi "proyek" yang semuanya harus diselesaikan pada saat yang sama. Anda mungkin juga memanggil mereka "persyaratan" dalam kasus itu karena mereka sebenarnya diperlukan.

Aaronaught
sumber
semua jawaban membantu pemahaman saya, ingin menandai semuanya sebagai benar :)
Punter Vicky
5
Saya tidak setuju: persyaratan fokus pada BAGAIMANA pengguna berinteraksi dengan sistem, cerita tentang tujuan APA yang dimiliki fitur. Mereka adalah hal yang sangat berbeda.
Sklivvz
1
@ Klivvz: Saya rasa saya tidak pernah membaca cerita pengguna yang tidak mengatakan sesuatu tentang bagaimana pengguna berinteraksi dengan sistem, dan seperti yang saya katakan, persyaratan yang baik datang dengan pernyataan tujuan sehingga mereka dapat dipahami dalam konteks. Untuk beberapa alasan, banyak orang tampaknya secara otomatis menganggap bahwa "persyaratan tradisional = persyaratan buruk" dan "cerita pengguna = persyaratan yang baik". Keduanya tidak selalu benar. Ambil contoh "EVO" , yang mengikat setiap persyaratan tidak hanya dengan tujuan bisnis tetapi dengan metrik yang sebenarnya.
Aaronaught
1
@hanzolo: Nah, itu konyol. Tugas yang cara terlalu rinci untuk setiap penggunaan sebagai kebutuhan fungsional. Tugas sering dinyatakan pada tingkat yang sangat teknis seperti dalam "mengimplementasikan parser fringle menggunakan perpustakaan jibbler". Anda mungkin dapat membuat kasus untuk tugas-tugas yang agak mirip spesifikasi , tetapi yang datang setelah persyaratan. Cerita Pengguna seharusnya datang dengan Kriteria Penerimaan - itu jauh lebih seperti persyaratan fungsional rinci yang digunakan dalam model tipe Waterfall / RUP.
Aaronaught
2
@ Klivvz: "Apa" umumnya merupakan interaksi antara pengguna dan sistem. "Saya ingin dapat melihat total suara pada jawaban" adalah contoh khas dari bagian tengah cerita pengguna, dan hampir identik dengan persyaratan fungsional ("Pengguna harus dapat melihat total suara pada jawaban") . "Siapa" dan "mengapa" adalah satu-satunya bagian yang seolah-olah berbeda, dan banyak persyaratan sistem pelacakan / metodologi lain dari cerita pengguna berharap mereka akan diberikan juga.
Aaronaught
16

Ron Jeffries sudah lama menulis tentang 3C kisah pengguna ( http://xprogramming.com/articles/expcardconversationconfirmation/ ) dengan penekanan pada kartu (deskripsi singkat), percakapan antara pelanggan dan tim pengiriman setelah cerita pengguna menjadi ditindaklanjuti, dan konfirmasi cerita yang disepakati setelah percakapan itu.

pada dasarnya, sebelum percakapan, cerita pengguna hanyalah ruang lingkup yang direncanakan - ide kasar tentang apa yang mungkin kita lakukan. setelah percakapan, Anda harus memiliki cara untuk mengonfirmasi bahwa cerita sudah lengkap. Jadi tergantung pada waktu ketika Anda melihat cerita di timeline ini, sebuah cerita mungkin hanya gagasan luas tentang ruang lingkup, atau persyaratan terperinci.

hari ini, makna "cerita pengguna" tampaknya dipersempit menjadi hanya "kartu" bagian dari 3Cs Jeffries. dalam hal itu, cerita pengguna bukan persyaratan tetapi janji untuk mengadakan percakapan tentang persyaratan tersebut.

Anda dapat menemukan banyak sekali nugget emas tentang cerita pengguna di c2 wiki ( http://xp.c2.com/UserStory.html )

Gojko Adzic
sumber
7

Cerita dan persyaratan pengguna adalah binatang yang sangat berbeda.

Persyaratan

Persyaratan mengandaikan bahwa desain aplikasi dilakukan sebelumnya, dan pengembangan itu adalah implementasi dari desain itu. Oleh karena itu persyaratan berfokus pada bagaimana menerapkan suatu fungsi.

Contoh persyaratan:

  • Buat formulir kontak pengguna dengan bidang-bidang berikut: nama, nama keluarga, email, teks bebas dan tombol kirim. Ketika tombol kirim ditekan, email dikirim ke tim dukungan kami.

Cerita pengguna

Cerita pengguna fokus pada apa yang harus dicapai, dan bersikeras bahwa desain produk dilakukan pada menit terakhir dan merupakan kolaborasi antara orang produk dan orang pengembang. Rinciannya diputuskan selama implementasi berdasarkan peluang.

Contoh cerita:

  • Sebagai Jimmy pengguna, saya ingin menghubungi tim dukungan Anda ketika saya tidak dapat menggunakan situs dengan benar sehingga mereka dapat membantu saya.

Apa bedanya?

Seperti yang Anda lihat, pasti ada perbedaan dalam jumlah detail yang disediakan, tetapi ada juga banyak informasi yang hanya tersedia dalam cerita, yaitu tujuan apa yang sedang kami coba capai dengan fitur ini.

Walaupun mungkin tampak bahwa tujuannya relatif tidak penting, ini adalah asumsi yang salah dalam pengembangan tangkas. Biasanya ada dua kasus di mana mengetahui tujuan itu sangat penting: mengurangi biaya peluang dan memungkinkan kelincahan.

Biaya peluang

Jika ada asumsi tersembunyi dalam persyaratan, itu bisa sangat sulit untuk dicapai. Misalnya: apakah ada server email yang tersedia? Jika tidak, persyaratan mungkin membutuhkan waktu lebih lama untuk dikembangkan. Dalam beberapa kasus lain, cara yang lebih sederhana untuk mencapai tujuan yang sama mungkin terlewatkan karena desainnya.

Sebaliknya, kisah pengguna adalah tentang pengguna yang menghubungi departemen dukungan kami. Jika mengirim surat tidak layak atau terlalu mahal, kami dapat menemukan solusi yang berbeda di tempat: menulis ke database, misalnya, atau menggunakan formulir melalui Google docs, atau cukup memasukkan alamat email alih-alih formulir. Ini tidak dapat dengan mudah dilakukan dengan persyaratan, tetapi itu mudah dilakukan dengan cerita dan orang produk yang hadir.

Kelincahan

Untuk alasan ini, dengan persyaratan kami biasanya cenderung memikirkan asumsi tersembunyi ini sebelumnya dan memastikan tidak ada hambatan. Jadi dalam hal ini mungkin ada persyaratan yang berbeda, dijadwalkan sebelumnya, yang memastikan server email hadir.

Ini membawa kita ke perbedaan besar lainnya antara cerita dan persyaratan yang hierarki . Seperti yang telah saya sebutkan di atas, persyaratan harus, berdasarkan sifatnya sendiri, dipesan dalam beberapa hierarki alami sehingga dependensi terpenuhi. Cerita, di sisi lain, fokus pada tujuan dan tidak memiliki kendala seperti itu.

Ini dirancang, karena dengan gesit penting sekali untuk menambah, menghapus, menjadwal ulang, dan memodifikasi cerita yang diperlukan selama pelaksanaan proyek. Persyaratan umumnya dapat ditambahkan, kadang-kadang dimodifikasi atau dihapus, tetapi umumnya sangat menyakitkan untuk memindahkannya karena semua ketergantungan. Ini tidak dilakukan sesering mungkin. Jika Anda bekerja dengan persyaratan, implementasi tangkas Anda akan menderita, atau mungkin tidak akan sangat tangkas sama sekali, dalam arti mampu merangkul perubahan.

Sklivvz
sumber
6
Saya katakan Anda salah mengerti - persyaratannya adalah "biarkan pengguna menghubungi dukungan", ceritanya adalah bagaimana mendefinisikannya menjadi sesuatu yang masuk akal dengan menambahkan detail. Mungkin itu semua ke terminologi dan dengan demikian kita mendapatkan semua atas apa-apa.
gbjbaanb
2
Saya cukup yakin saya tidak salah.
Sklivvz
15
"Persyaratan karena itu fokus pada bagaimana menerapkan suatu fungsi." - Ini sangat salah. Jika suatu persyaratan mengatakan bagaimana melakukan sesuatu, itu bukan persyaratan yang baik. Kecuali ada kendala yang diketahui, persyaratan tidak mencakup detail desain atau implementasi. Jika saya melihat sampel Anda "persyaratan", saya akan langsung menolaknya - ini menentukan detail implementasi.
Thomas Owens
4
Berbagai sumber (sangat dihormati dan sering dikutip) ditambah pelatihan dan pengalaman saya dalam rekayasa persyaratan memberi tahu saya sebaliknya. Jika Anda mengatakan sesuatu tentang bagaimana Anda mencapai sesuatu, Anda telah melakukan pekerjaan desain. Mock-up adalah desain dan bukan persyaratan. Terlepas dari formatnya, persyaratan adalah "apa pun yang mendorong pilihan desain", bukan pilihan desain itu sendiri. Saya sepenuhnya setuju dengan jawaban Aaronaught bahwa cerita pengguna hanyalah satu format yang dapat digunakan untuk menangkap persyaratan fungsional, membuat sebagian besar jawaban ini salah sehubungan dengan ketentuan yang diterima secara umum.
Thomas Owens
6

Bagi saya, elemen penting dari Kisah Pengguna adalah ia menangkap Mengapa dan Bagaimana pengguna menggunakan sistem. Ini sangat berguna karena tidak menentukan banyak cara bagaimana sistem memberikan fungsionalitas yang diperlukan. Saat pengujian UI dan Kegunaan diperlukan, Kisah Pengguna mungkin merupakan dokumen yang paling penting.

Tentu, Anda dapat meminta selenium untuk memverifikasi bahwa ada titik tertentu dalam HTML atau mengambil tangkapan layar, atau memverifikasi bahwa piksel tertentu sesuai dengan harapan Anda. Tetapi jika ada teks yang menyesatkan, atau tidak jelas bagaimana pengguna harus menggunakan sistem atau sulit bagi pengguna untuk mengetahui cara mencapai tujuan mereka, tiba-tiba Anda tidak memiliki sistem yang lengkap lagi. Sekarang pelatihan diperlukan untuk menggunakan sistem. Meninjau sistem yang telah selesai terhadap skenario pengguna adalah komponen penting dari pengujian manual.

Ada pola pikir yang ditangkap dalam cerita / skenario pengguna yang harus memengaruhi banyak keputusan desain terperinci tentang implementasi. Kecuali jika pengembang berbicara langsung dengan pengguna atau menonton mereka menggunakan sistem, skenario pengguna mungkin merupakan satu-satunya tautan yang memungkinkan mereka untuk memahami kebutuhan pengguna.

Akhirnya, mereka memungkinkan para pebisnis untuk menentukan apa yang mereka butuhkan tanpa menyarankan bagaimana itu harus dicapai. Jauh lebih mudah untuk menggambarkan solusi, daripada kebutuhan, dan skenario pengguna menyediakan kerangka kerja untuk menggambarkan kebutuhan tanpa mengusulkan solusi spesifik. Persyaratan bisnis paling umum yang pernah saya dengar adalah, "Saya ingin itu seperti Excel, tetapi di web" yang belum pernah mereka butuhkan.

Jadi saya akan mengatakan bahwa cerita yang bagus tidak boleh menyertakan detail spesifik tentang bagaimana sistem harus diimplementasikan. Seharusnya dikatakan, "Sekali sebulan, sistem A perlu diperbarui dengan data baru dari sistem B. Data itu mungkin memerlukan koreksi. Klien memiliki riwayat memasukkan data yang tidak valid dan tidak menyadari masalah selama berminggu-minggu." Seharusnya tidak mengatakan, "Sistem harus menerima file CS1 latin1 setidaknya sebulan sekali dan melempar NumberFormatException jika kolom 3 bukan angka." Apakah Anda melihat perbedaannya? Skenario menggambarkan kebutuhan, bukan solusi spesifik. Kemudian dalam pengujian Anda lingkari kembali ke skenario untuk memastikan bahwa solusi sesuai dengan kebutuhan. Persyaratan dapat mencampur beberapa kebutuhan dengan beberapa solusi, atau bahkan fokus sepenuhnya pada solusi.

GlenPeterson
sumber
Glen terima kasih! Tapi bukankah seharusnya persyaratan atau kisah pengguna dalam hal ini menjadi sistem / solusi agnostik? Ini adalah pertanyaan lain yang terus saya pikirkan ketika membuat cerita pengguna / persyaratan tetapi belum berhasil melakukannya dalam sejumlah kasus
Punter Vicky
Anda mungkin mulai dengan bertanya kepada pengguna tentang masalah bisnis yang akan ditangani sistem. Bagaimana Anda menangani masalah ini sekarang? Apakah Anda akan bekerja dengan cara yang sama setelah Anda memiliki sistem? Siapa yang melakukan tugas ini sekarang? Di mana mereka melakukannya? Apa tantangan yang paling umum? Masuk akal bahwa persyaratan harus secara sistem agnostik dalam teori. Tetapi latihan itu berantakan. Saya ingin sistem yang melakukan semua pekerjaan saya untuk saya sedemikian rupa sehingga saya masih bisa dibayar untuk tidak melakukan apa pun. Itu sistem agnostik, tetapi tidak berguna. Yang kami pedulikan adalah persyaratan yang dapat dibangun oleh tim pengembangan.
GlenPeterson
3

Stumbled atas ini selama pencarian google dan berpikir saya akan memberikan pendapat saya.

Sebenarnya tidak ada perbedaan antara persyaratan dan kisah pengguna. Keduanya menyatakan hasil atau tujuan yang diinginkan dari perspektif pengguna.

Satu-satunya perbedaan adalah cara tujuan atau hasil ini ditangkap oleh seorang analis bisnis. Dalam hal ini dalam kata-kata.

Contoh:

Sebagai pemimpin tim, saya ingin melihat tim mana yang menangani kasus hipotek sehingga saya dapat memantau kinerjanya.

Solusinya harus menampilkan anggota tim yang bekerja pada kasus hipotek.

Kedua hal di atas dapat diartikan dengan cara yang sama tetapi keduanya juga memiliki banyak ambiguitas. Poin utama di sini adalah perbedaan gaya. Saya pikir masalah yang sebagian besar kita lihat adalah seberapa jauh dalam mendefinisikan solusi yang kita lakukan sebelum kita pindah dari dunia persyaratan dan ke dunia desain fungsional. Apakah tergantung pada analis bisnis untuk menyatakan "daftar pengguna yang masuk dengan nama depan dan kedua pada menu aplikasi utama" atau apakah itu terlalu banyak informasi? Ketika kita duduk berbicara dengan para pemangku kepentingan kita dan kita semua tahu solusinya dan dapat menafsirkan seperti apa bentuknya, bahkan bahasa kode yang kemungkinan akan dikembangkan dan cara penerapannya, kita benar-benar perlu memainkan permainan murni " mari kita mendefinisikan tujuan dan bukan solusi ". Di sinilah saya merasakan kebingungan sebenarnya.

Persyaratan sering membuat asumsi kita tidak tahu apa-apa tentang solusi hanya hasil yang diinginkan. Ya ini membuat semuanya solusi agnostik tetapi apakah itu benar-benar membantu kita dalam siklus pengembangan? Jika kita dapat secara akurat mendefinisikan sesuatu lebih awal maka mengapa tidak melakukannya?

Semua dalam semua meskipun saya tidak akan khawatir tentang cerita pengguna dan perbedaan persyaratan. Pada akhirnya Anda ingin mendefinisikan informasi yang cukup untuk seseorang. Seseorang untuk mengembangkan solusi. Cerita pengguna yang levelnya terlalu tinggi akan dengan mudah dihempaskan kembali dan diminta untuk dipecah menjadi cerita pengguna yang lebih kecil. Sama seperti gaya "sistem akan". Persyaratan mungkin akan diketuk mundur sebagai terlalu ambigu jika tidak memiliki detail yang cukup.

Pada akhirnya, pergilah dengan apa yang dilihat dan dikembangkan oleh pengembang dan pemangku kepentingan Anda.

munkee
sumber
3

Saya pikir ada banyak ketidakkonsistenan tentang apa arti kata itu, bahkan di dalam buku teks klasik. Ketidakkonsistenan yang sama berlaku untuk cerita pengguna. Berbagai organisasi dan buku pelajaran memperlakukan istilah-istilah ini secara berbeda. Sebagai contoh, buku klasik Rekayasa Perangkat Lunak Bagaimana Roger Pressman berbicara tentang persyaratan sangat berbeda dari buku Agile Software Requirement dari Dean Leffingwell. Saya menghormati mereka berdua dan mereka berdua bisa valid.

Persyaratan dapat berupa hal-hal yang kami kode untuk yang memiliki kekhususan luar biasa dengan sedikit yang tersisa untuk imajinasi. Di sisi lain, dapat dikatakan bahwa persyaratan harus menentukan apa masalah bisnis dan tidak menentukan solusinya. Saya pikir itu lebih bernuansa dan jawabannya ada di suatu tempat pada spektrum yang unik untuk setiap perusahaan dan industri (tidak semua pengembangan perangkat lunak terjadi di TI).

Saya diajari bahwa elisitasi persyaratan mengarah pada analisis, yang mengarah pada desain, yang mengarah pada arsitektur yang mengarah pada elaborasi persyaratan atau spesifikasi, yang mengarah pada sesuatu yang dapat dikodekan. Saya tidak percaya ini hilang dengan lincah. Waktu ketika hal-hal ini terjadi memang berubah dan itu adalah perbedaan yang paling penting. Dalam model air terjun, elisitasi dan elaborasi terjadi lebih awal. Dalam lean dan scrum, elisitasi dan elaborasi terjadi pada berbagai tahap dengan elaborasi yang lebih banyak terjadi ketika Anda semakin dekat dengan implementasi dalam sprint. Seperti halnya pekerjaan desain yang muncul.

Dalam organisasi kami, kami condong ke arah model Epik, Fitur, dan Cerita Leffingwell, bukan sebagai persyaratan tetapi sebagai rincian dan prioritas kerja. Persyaratan adalah hal yang berbeda. Persyaratan dikelola secara terpisah karena kami diharuskan melakukannya untuk badan pengatur. Namun beberapa tim tentu saja mengembangkan persyaratan dalam cerita pengguna selama penambahan program dan perencanaan sprint.

Tim W
sumber
2

Persyaratan fungsional biasanya merupakan spesifikasi formal yang memungkinkan Anda mengetahui dengan tepat apakah perangkat lunak Anda berfungsi atau tidak. Cerita pengguna biasanya merupakan cara yang jauh lebih informal untuk menggambarkan kebutuhan akan cerita pengguna Anda. Itu tidak menentukan spesifikasi kaku untuk menentukan apakah perangkat lunak itu "valid" atau "tidak valid". Meskipun Anda dapat menguji beberapa bagian dari itu, penyelesaian sebenarnya dari cerita pengguna (jika Anda melakukannya dengan benar) adalah ketika pengguna Anda mengatakan "ya, itu menyelesaikan masalah saya!". Ingat manifesto tangkas:

Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan

Dalam bukunya "User Story Applied", Mike Cohn mengatakan secara khusus bahwa beberapa hal tidak memetakan ke cerita pengguna dan Anda tidak harus hanya menggunakannya .

Di tim saya sendiri, kami menggunakan yang berikut:

  • Kisah pengguna : kebutuhan bisnis semacam pengguna. Penekanan di sini adalah pada kebutuhan , dan mengapa dia membutuhkannya. Seperti yang lain katakan, yang penting di sini bukan untuk menentukan bagaimana hal itu dilakukan, dan untuk pergi jauh dalam kebutuhan nyata pengguna (mis: dia tidak perlu melihat data dalam tabel, dia perlu melihat nilai persis dari data, dan dia akrab dengan tabel untuk melakukan hal itu).
  • Bug : Perilaku perangkat lunak yang tidak terduga yang mengganggu penggunaan normal. Biasanya datang dengan "Pentingnya" (independen dari prioritas pengembangan) yang menilai seberapa besar pengaruhnya terhadap alur kerja pengguna.
  • Utang teknis. Sesuatu yang tidak mencegah penggunaan penggunaan perangkat lunak tetapi akan mengganggu kita , para pengembang, di masa depan. Contoh: beberapa kelas sulit dibaca, build lambat, beberapa kode tidak diuji unit, IDE menampilkan peringatan aneh ...
  • Perbaikan : perubahan pada perangkat lunak yang tidak memungkinkan skenario baru, tetapi buat untuk pengalaman yang lebih baik. Contoh: mengubah font, mendesain ulang formulir untuk membuatnya lebih jelas, menambahkan default yang masuk akal ke aplikasi, dll.

Persyaratan fungsional tidak akan memungkinkan kita untuk menyadari bahwa fitur yang kami implementasikan tidak menyelesaikan kebutuhan pengguna, meskipun uji ketimun kami lulus dan kami menerapkan setiap kata tertulis. Sebuah cerita adalah sebuah diskusi, dan itu bersifat informal. Intinya adalah agar orang-orang implementasi mengerti apa yang bermasalah. Mereka bukan alat kontrak. Jika Anda melakukan "scrum but ... " dan cerita Anda hanyalah cara yang lucu untuk menulis persyaratan perangkat lunak, maka ya, tidak ada perbedaan.

Intinya bukan cerita pengguna, intinya adalah perubahan besar dalam paradigma dalam cara Anda mendekati pekerjaan yang harus dilakukan. Anda tidak melakukan kontrak, Anda membantu beberapa pengguna Anda memecahkan masalah. Jika Anda tidak melihat cerita pengguna sebagai alat diskusi dengan pengguna nyata , maka Anda tidak menggunakan cerita pengguna, Anda menggunakan sintaksis persyaratan yang funky .

Sisanya di sini adalah pendapat saya: kisah pengguna tidak pernah bisa berhasil secara sepihak. Anda perlu pelanggan Anda untuk bekerja dengannya. Air-scrum-fall ditakdirkan untuk menjadi kekacauan kebutuhan-tapi-bukan-persyaratan aneh. Jika Anda memiliki kontrak penawaran tetap dengan persyaratan tertentu, jangan gunakan iterasi dan kisah pengguna, tidak ada gunanya . Gunakan sisa dari toolkit tangkas: Tes unit / fungsional otomatis, tinjauan kode, integrasi berkelanjutan, refactoring, dll. Pastikan perangkat lunak Anda terus bekerja dan Anda dapat mengirimkannya pada saat pemberitahuan. Jadikan itu tersedia dalam bentuk yang belum selesai untuk pelanggan sehingga ia dapat memberikan umpan balik sebanyak mungkin. Jika Anda melakukan itu teman saya, bahkan jika Anda tidak melakukan "Cerita pengguna" dan "Scrum", Anda akan lebih gesit daripada banyak yang disebut toko "Agile".

Laurent Bourgault-Roy
sumber
2

Saya percaya bahwa setiap orang akan menerapkan dan memberi label segalanya secara berbeda tergantung pada pengalaman masa lalu dan bahasa apa pun yang bekerja untuk perusahaan yang menyelesaikan pekerjaan itu tidak layak diperdebatkan.

Namun, IMO, A User Story mengikuti pendekatan Agile tentang "pelanggan di gedung atau pelanggan segera tersedia", di mana dokumentasi tidak selalu diperlukan karena detailnya ada di kepala pelanggan dan tersedia agar SRS formal dapat tidak diperlukan. Sekarang "Tugas" dari "Cerita pengguna" adalah bagaimana pengembang akan membangun cerita pengguna dalam dicerna.

Contoh kisah pengguna mungkin:

Sebagai pengguna admin, saya ingin melihat data klien saya yang tercantum dalam kisi

dan "tugas" mungkin:

  1. Buat Grid yang mencantumkan data yang akan ditampilkan

  2. Aktifkan Pengurutan di kisi yang akan mengurutkan kolom yang dipilih

Sekarang masing-masing tugas diperkirakan dan diselesaikan dalam sprint masing-masing.

Dari perspektif "tradisional", di mana "pelanggan sulit untuk mendapatkan, kita perlu menuliskan ini sehingga mereka dapat mengkonfirmasi kita sudah benar sebelum kita mulai perencanaan / pengkodean" pendekatan, Spesifikasi Kebutuhan Perangkat Lunak adalah akan menjadi ide-ide yang ada di kepala pelanggan dan memunculkan dan kemudian ditulis dan diformalkan dan kemudian baselined dan dikelola.

Dalam hal ini, "persyaratan fungsional" adalah detail seluk beluk dari SRS itu, dan bagian dari Ide yang lebih besar. Jadi menurut saya, cerita pengguna dapat dilihat sebagai (sebagian dari) "Persyaratan" formal, dan tugas cerita pengguna itu adalah (atau salah satu dari banyak) persyaratan fungsional.

Dalam kisah pengguna contoh, "Persyaratan" formal akan menjadi dokumen panjang dengan diagram alur dan umumnya akan menjadi dokumentasi-sentris, yang bertentangan dengan pendekatan "Agile" yang lebih berorientasi pelanggan-sentris.

Perbedaannya adalah, "Persyaratan" formal akan berada di sepanjang baris beberapa dokumen 10 halaman yang menguraikan bagian administrasi aplikasi yang menunjukkan beberapa daftar akan diperlukan, beberapa keamanan berbasis peran, dll. Dan kemudian beberapa fungsional persyaratan akan "grid daftar harus memungkinkan penyortiran", "informasi pengguna harus terdaftar dalam kotak", dll.

dan saya percaya hari ini syarat-syarat semua dicampur dan dicampur .. yang tidak masalah sama sekali

Hanzolo
sumber
2
Gagasan bahwa "pelanggan tersedia sehingga kami tidak perlu menjelaskan" adalah bagian dari apa yang saya sebut "Agile Buruk". Inti sebenarnya dari Agile adalah Anda merencanakan sprint dan memberikan fungsionalitas secara bertahap sebagai lawan melakukan segala sesuatu dalam "big bang". Tetapi untuk benar-benar gesit dalam jangka panjang, Anda perlu tes, dan untuk menulis atau melakukan tes Anda perlu spesifikasi, yang di Agile-tanah datang dalam bentuk kriteria penerimaan, yang sama dengan persyaratan, hanya diselenggarakan oleh sprint daripada sistem atau proyek. Gagasan bahwa "persyaratan" sangat besar, dokumen lama yang berdebu hanyalah FUD.
Aaronaught
@Aonaona saya setuju. Harus ada titik di mana ruang lingkup terbatas terutama dalam situasi di mana ada anggaran implementasi tetap. Jika anggaran diperbaiki tetapi desain produk tidak diketahui dan proyek harus berjalan dengan cepat maka bagi saya pekerjaan tangkas (dan jika ini merupakan kegiatan pengembangan produk perangkat lunak yang sedang berlangsung yang dilakukan dalam sprint yaitu bukan proyek yang sebenarnya) tetapi ruang lingkup harus dibatasi menggunakan kriteria penerimaan yang akan dimasukkan ke dalam persyaratan sendiri (dengan beberapa perubahan semantik) jika Anda akan menggunakan pendekatan air terjun
br3w5
@Aronaught - Anda memang benar .. Namun, Agile berasal dari metodologi XP dan proses yang Anda nyatakan adalah pinjaman hibrida dari yang terbaik dari kedua dunia .. di satu sisi, Anda memiliki "cahaya dokumentasi" dan di sisi lain Anda memiliki "dokumentasi-berat". Menemukan keseimbangan akan ditentukan oleh perusahaan yang mendefinisikan proses mereka ..
hanzolo
@ssbrewster - Saya setuju dengan Anda juga. Dalam bentuk murni setiap metodologi, air terjun dan lincah, satu akan memerlukan dokumentasi dan validasi persyaratan tertulis, yang lain akan membutuhkan sangat sedikit jika ada dokumentasi dan validasi upaya pengembangan.
hanzolo
1
@ssbrewster Ini bukan hanya tentang membatasi ruang lingkup, ini tentang kemampuan untuk mengatakan kapan sebuah cerita benar-benar selesai. Jika Anda tidak dapat membuat keputusan tanpa tangan-tangan dari bisnis maka Anda tidak memiliki peluang untuk mematikan produk dengan kualitas yang konsisten, atau secara akurat mengukur hal-hal seperti kecepatan. Kami lebih suka kriteria penerimaan didokumentasikan dalam tes penerimaan - tetapi masih tertulis .
Aaronaught