Bagaimana cara saya menyusun cerita pengguna sebagai pengembang?

10

Saya menulis sebuah sistem di mana pemilik sistem dan saya sendiri adalah pengembang, dan kami saat ini satu-satunya sumber 'permintaan' atau persyaratan untuk sistem, yang ingin saya tangkap dalam cerita pengguna terkait dengan fitur {1}. Prioritas mendesak saya sekarang adalah untuk mendapatkan jaminan simpanan managaeble. Bagaimana cara saya menangkap tingkat spesifikasi teknis yang biasa saya kerjakan dalam cerita pengguna, yang seharusnya tidak terlalu teknis.

{1} Saya mengevaluasi layanan manajemen proyek tangkas , TargetProcess , dan setiap kisah pengguna harus dikaitkan dengan fitur induk. Sistem ini sepertinya cocok, jadi kendala kecil ini adalah sesuatu yang saya lebih suka kerjakan daripada bekerja di sekitar.

ProfK
sumber

Jawaban:

14

Template cerita yang khas sangat mudah divisualisasikan:

As a [ROLE] I need to [WHAT] so that/because [WHY].

Yang menarik adalah pentingnya komponen tersebut dibalik.

MENGAPA lebih penting daripada APA dan itu lebih penting daripada PERAN

Contoh menggunakan Pertanyaan ini

Sebagai Pengembang Perangkat Lunak, saya perlu mempelajari cara menulis Cerita Pengguna sehingga saya dapat mengisi backlog dengan konsep untuk memulai diskusi tentang fitur yang dimulai dan mendapatkan poin yang ditugaskan kepada mereka.

Ada lagi yang lebih memperumit maksud dan implementasi Cerita Pengguna.

Alat Tambahan (Integrasi adalah yang terbaik)

Alat dapat digunakan untuk menangkap informasi detail tambahan tentang cerita yang ditangkap saat mendiskusikannya untuk menetapkan poin / estimasi, tetapi detail itu seharusnya tidak menjadi bagian dari cerita itu sendiri. Sesuatu yang sederhana seperti Wiki dengan 1 Halaman per cerita untuk menempatkan detail / transkrip diskusi adalah solusi yang cukup baik. Excel spreadsheet adalah solusi yang mengerikan.


sumber
5

Fokus pada apa dan mengapa dan hindari bagaimana saat menulis cerita pengguna.

Apa yang Anda hadapi sebenarnya adalah latihan yang sangat baik untuk semua pengembang. Mampu mengungkapkan persyaratan secara sederhana, istilah bisnis adalah keterampilan yang penting.

Anda harus fokus pada persyaratan umum seperti "harus dapat membuat satu pilihan dari daftar drop-down objek sehingga pengguna dapat mengaktifkan tindakan Foo" daripada menentukan menggunakan kotak kombo atau listbox atau apa pun yang memicu rutinitas tertentu .

Cara lain untuk mendekati ini adalah berpura-pura seperti basis kode / kerangka kerja kotak hitam yang hampir lengkap. Setiap kali Anda menemukan diri Anda mengatakan "gunakan objek XYZ", Anda dapat memeriksa sendiri dengan menanyakan apakah Anda akan tahu itu dalam sistem kotak hitam.

Pembaruan:
IMO, tidak apa-apa untuk memasukkan detail ke dalam use case yang menunjukkan tingkat detail yang diperlukan untuk informasi. Misalnya, dengan sistem pendaftaran, wajar menentukan
- nama belakang; bidang wajib
- nama depan; bidang wajib
- ID akun; sistem tidak menghasilkan input yang diperlukan
- tanda astrologi; bidang opsional - (saran) memberikan pencarian agar tidak memasuki tanggal lahir?
- dll ....

Kuncinya adalah Anda tidak menentukan cara teknis untuk informasi itu. Jika Anda menemukan diri Anda mengatakan "gunakan kelas String / array karakter / atau bidang varchar" untuk nama belakang, maka Anda tahu bahwa Anda terlalu menentukan.

Jika Anda multi-bahasa, maka gunakan dua bahasa yang berbeda sebagai tes lakmus Anda. Sebagai contoh, string dalam C umumnya array char (acter) sedangkan C ++, Java, dan C # (oke, dan hampir semua orang ...) memiliki objek String seperti yang sebenarnya. Jika Anda menemukan bahwa spesifikasi Anda tidak valid dengan menggunakan salah satu dari bahasa-bahasa itu maka Anda akan tahu bahwa Anda terlalu spesifik.

Perlu dicatat bahwa saya secara khusus menggunakan istilah Use Case sebagai lawan dari User Story , meskipun varian yang akhirnya saya gunakan adalah campuran keduanya. Tujuan saya dari use case adalah untuk memberikan gambaran tentang apa yang terjadi (Cerita Pengguna dalam arti yang paling ketat) tetapi kemudian bekerja melalui aktor, sistem, dan fungsi umum yang diperlukan. Pendekatan saya lebih dekat dengan apa yang disarankan Fowler dalam artikel wikipedia itu yang bertentangan dengan pendekatan Cockburn.

Jadi saya akan memiliki satu kasus penggunaan (atau lebih) untuk skenario pendaftaran atau item pekerjaan. Jika ini benar-benar rumit, saya akan memecahnya menjadi banyak, tetapi itu bukan masalah besar. Kasus penggunaan kemudian dapat dipecah menjadi tugas-tugas individu yang diperlukan. Apa yang dilemparkan ke dalam scrum tertentu tergantung pada banyak variabel, tetapi tidak ada dalam pendekatan ini yang mencegah Anda memiliki komponen yang dapat ditunjukkan di akhir scrum.


sumber
3
Bahkan mengatakan "daftar drop-down" mungkin terlalu menentukan.
Donal Fellows
@DonalFellows - Itu poin yang bagus, dan saya merenungkannya sebentar. Saya ikut dengannya karena drop-down adalah elemen UI generik yang cukup standar yang akan Anda lihat dengan gambar rangka. Listbox dan Combobox adalah konstruksi bahasa khusus untuk daftar drop-down. Memberi +1 pada komentar.
@ GlenH7 Saya mengerti ini, tetapi masalah saya adalah saya tidak tahu di mana harus menangkap hal-hal teknis. Jika bidang tertentu diperlukan untuk karyawan baru misalnya, saya tidak ingin menggunakan cerita untuk setiap bidang, melainkan "sebagai pengguna saya perlu menangkap bidang x dan y", dan "dapat memilih untuk mengambil bidang q dan z "ketik hal. Jika contoh cepat saya di sini adalah arah yang benar, saya akan mencoba lebih banyak latihan seperti itu.
ProfK
@ProfK Sebagai administrator SDM saya harus memasukkan informasi tentang karyawan baru sehingga saya dapat mendaftarkan mereka dalam daftar gaji, 401K, dan sistem tunjangan asuransi. Ini harus menjadi Kisah yang bagus, detail tentang segala sesuatu yang lain hanyalah detail yang harus didokumentasikan di halaman wiki atau dokumen lain. Jika kasus fitur baru lainnya perlu ditambahkan ke cerita ini, Cerita baru dengan persyaratan khusus yang terlewatkan akan menjadi cerita baru dalam sistem. Cerita ini dilakukan ketika kegiatan ini dapat diselesaikan oleh ROLE dengan persetujuan pelanggan.
2
@ProfK - memperbarui jawaban saya untuk menjawab pertanyaan Anda. IMO, saya pikir Anda berada di jalur yang benar. Saya telah bekerja banyak metodologi yang berbeda, dan aspek penting untuk diingat adalah membuatnya berfungsi untuk situasi Anda. Sepertinya Anda perlu sedikit lebih banyak daripada yang disediakan oleh Kisah Pengguna formal. Jadi sesuaikan bagaimana Anda menghasilkan Cerita Pengguna Anda dan terus bergerak maju. Beberapa mungkin akan memecat saya untuk komentar, tetapi jujur, intinya adalah untuk mendapatkan kode yang ditulis dan membuat proyek terus maju.