Apakah "kisah pengguna teknis" diizinkan di Scrum?


11

Apakah kisah pengguna teknis diperbolehkan di Scrum? Jika demikian, apa templat standar untuk menulis cerita pengguna teknis di Scrum? Apakah sama As a <user> I want to do <task> so that I can <goal>??

Saya telah membaca di beberapa blog yang sebagai-pengembang-bukan-pengguna-cerita , tetapi saya juga membaca bahwa Scrum tidak mengamanatkan ini. Ada beberapa blog di mana mereka berbagi cerita pengguna dengan sistem sebagai pengguna , sejenisnya as a <user who is not end user> i want to <system functionality> so that <some techinical thing>. Jadi yang mana standarnya?

Misalnya, ada cerita pengguna seperti:

Sebagai pengulas saya ingin mengunggah foto hotel / makanan apa saja sehingga pengguna lain dapat melihat dan menyukainya

Sebagai pengguna saya ingin menambahkan komentar foto sehingga saya bisa menjelaskan pandangan saya dengan lebih baik

Sekarang untuk kedua cerita pengguna ini, ada item teknis besar - Menyimpan dan mengambil gambar

Jadi, bisakah saya menambahkan kisah teknis berjudul "Mekanisme penyimpanan dan pengambilan gambar", dengan uraian berikut?

Sebagai pengembang, saya ingin mengembangkan mekanisme untuk menyimpan dan mengambil gambar sehingga pengguna dapat menambahkan / melihat gambar di mana pun diperlukan


6
"Mekanisme penyimpanan dan pengambilan gambar" seharusnya bukan cerita teknis, melainkan tugas pengembang yang terkait dengan kisah pengguna pertama Anda.
guillaume31

Jawaban:


14

Cerita teknis diperbolehkan, tetapi saya akan menyarankan Anda untuk mencoba menghindarinya sebanyak yang Anda bisa.

Misalnya, cerita Anda untuk menyimpan dan mengambil gambar dapat dengan mudah ditulis sebagai dua cerita pengguna biasa

  1. Sebagai pengulas, saya ingin foto yang saya unggah disimpan secara terus-menerus, sehingga pengguna lain dapat melihatnya kapan saja.
    (Perhatikan bahwa ini mengasumsikan bahwa dalam cerita unggahan asli Anda, gambar tidak akan disimpan terus-menerus setelah unggahan. Meskipun ini mungkin terlihat aneh, ini adalah cara yang sah untuk membagi cerita agar dapat dikelola.)
  2. Sebagai pengguna, saya ingin melihat gambar yang diunggah pada saat yang nyaman bagi saya.
    (Ini menyiratkan bahwa gambar yang disimpan dapat diambil nanti.)

Cerita teknis harus disediakan untuk pekerjaan yang penting bagi organisasi, tetapi tidak langsung terlihat sebagai fitur / fungsionalitas bagi pengguna. Misalnya, menambahkan penyeimbangan muatan untuk menangani jumlah atau permintaan yang lebih besar.


5
Bahkan sesuatu seperti load balancing hanyalah hasil dari pengguna yang menginginkan sistem berkinerja lebih baik, jadi ini tidak berbeda dengan implementasi lainnya. Mereka ingin menyimpan data, tetapi tidak peduli tentang database.
JeffO

1
@ Jeffe benar. Bahkan cerita-cerita itu harus diutarakan dalam konteks nilai bagi pengguna sehingga mereka diprioritaskan dan dinilai sesuai. Tanpa melakukan itu, Anda bisa dengan mudah melupakan fakta bahwa Anda belum memiliki cukup muatan untuk menjamin penyeimbangan muatan, sehingga ceritanya bisa ditunda selama beberapa bulan sampai tim penjualan bekerja sedikit lebih keras;) Mike Cohn berbicara tentang ini dalam buku Suceeding with Agile.
pbarranis

Apakah akan ada kasus seperti itu di mana kisah pengguna tidak berlaku? Misalnya, apa contoh cerita pengguna yang akan kita lihat, jika Anda disuruh membuat Artificial Intelligent: alphaGO, dan tujuan utamanya adalah mengalahkan manusia di GO? Siapa yang akan menjadi pengguna yang dapat saya wawancarai untuk menentukan kriteria harapan / penerimaan?
Roy Lee

11

Pertanyaannya, dengan memberikan contoh khusus Anda, adalah mengapa pengembang ingin mengembangkan mekanisme untuk menyimpan dan mengambil gambar sehingga pengguna dapat menambah / melihat gambar di mana pun diperlukan, kecuali jika pengguna ingin menambahkan atau melihat gambar?

Yaitu, meskipun pertanyaan Anda bagus, contohnya tidak. Ini adalah fitur pengguna dan harus memiliki kisah pengguna. Dan jika pengguna tidak benar-benar membutuhkan fungsi itu maka pengembang seharusnya tidak ingin melakukannya.

Kisah teknis lebih lanjut "Sebagai pengembang, saya ingin mengurangi duplikasi dalam modul pengarsipan data, sehingga saya tidak harus membuat setiap perubahan di 6 tempat."

Pertanyaan apakah ini harus dimasukkan dalam sprint adalah pertanyaan yang sulit, dan agak tergantung siapa yang Anda anggap sebagai pelanggan Anda. Apakah pengguna akhir, atau bisnis yang mempekerjakan Anda, atau bisnis yang mempekerjakan bisnis yang mempekerjakan Anda?

Banyak bimbingan industri dilakukan oleh orang-orang yang bekerja di perusahaan konsultan. Dari perspektif itu, saya bisa melihat argumen bahwa cerita pengembang itu buruk. Mereka seharusnya hanya menjadi bagian dari apa yang Anda lakukan, sehari-hari, tidak terlihat oleh perusahaan yang membayarnya. Perusahaan-perusahaan itu secara naluriah tahu bahwa menjalankan tagihan terlalu tinggi memastikan bahwa pekerjaan Anda mengering, sehingga setiap pengembang bekerja berdasarkan prinsip hanya melakukan pengembangan teknis yang meningkatkan waktu pengembangan Anda, atau meningkatkan kemampuan Anda untuk merilis perangkat lunak bebas bug.

Pengalaman saya lebih banyak dengan bekerja di tim in-house, menyediakan perangkat lunak langsung ke perusahaan yang membayar upah saya. Di banyak perusahaan tersebut, ada penghalang kepercayaan antara bisnis dan sayap teknis bisnis. Dalam semua itu, ada mentalitas yang berbeda, di mana penurunan biaya sama dengan peningkatan pendapatan.

Dalam lingkungan itu, akan baik untuk mendefinisikan cerita pengembang yang signifikan. Ini meningkatkan visibilitas, menumbuhkan kepercayaan, dan mendorong pengembang dan manajemen untuk berpikir tentang nilai tugas-tugas tersebut untuk bisnis dan memprioritaskan yang sesuai.

Pada akhirnya, saya sarankan Anda mencobanya. Dan, jika tidak menawarkan nilai, berhentilah melakukannya.

Tetapi insting saya mengatakan bahwa jika Anda mempertimbangkan nilai pengembangan ini untuk bisnis, Anda bahkan tidak akan mencoba menjadikannya cerita pengembang. Baik untuk pengguna akhir atau tidak. Jika tidak maka tidak ada nilai untuk bisnis.


1
Apakah akan ada kasus seperti itu di mana kisah pengguna tidak berlaku? Misalnya, jika Anda disuruh membuat Artificial Intelligent: alphaGO, dan tujuan utamanya adalah mengalahkan manusia di GO? Bagaimana saya harus membuat cerita pengguna, siapa yang akan menjadi aktor cerita, dan siapa (apakah itu pemilik produk? Atau konsumen?) Yang harus saya wawancarai untuk menentukan kriteria harapan / penerimaan?
Roy Lee

2

Ini pertanyaan yang bagus. Saya tidak memiliki jawaban resmi tetapi di mana saya bekerja kami menambahkan cerita pengguna teknis dan menyebutnya sebagai utang teknis. Jika mereka tidak diizinkan, saya akan menemukan cara lain untuk menambahkannya hanya dengan tujuan agar pekerjaan saya dicatat dan dikomunikasikan ke bisnis. Demikian juga, memiliki dokumentasi ini mengingatkan kita tentang apa yang dibutuhkan untuk proyek masa depan.

Sebagai contoh, pemutusan dalam aplikasi baru, jika kita tidak diizinkan untuk menambahkan cerita teknis, adalah bahwa saya akan bersenandung selama seminggu setelah dimulainya lari membuat model database dan menunggu pemodel data saya untuk menyetujui mereka, iterasi w / pemodel dan ketika selesai mengirim skrip ke dba dan menunggu mereka untuk membuat objek db. Sementara itu, saya akan membuat proyek kode baru, beberapa fungsionalitas ORM dasar, dan tata letak kontrol sumber saya dan ketika semua dikatakan dan dilakukan saya akan punya waktu untuk membuat satu halaman arahan kosong dan menggunakan.

Hari demi hari saat ini sedang terjadi, jika saya tidak mencatat info, bisnis ini memanjat bahwa tim kami tidak mengerjakan proyek padahal sebenarnya kami. Memiliki barang-barang ini dalam cerita berarti bahwa kita dapat memeriksa pekerjaan kita, mendokumentasikan pekerjaan, dan berkomunikasi dengan bisnis yang sedang kita buat kemajuannya.

Jika ada praktik terbaik yang lebih baik untuk melakukan ini saya semua telinga.


Meskipun masalah di banyak organisasi, kesalahan pemanfaatan 100% adalah disfungsi umum. ASIDE: Hutang teknis adalah kekhawatiran yang diketahui melibatkan pekerjaan yang diperlukan yang sengaja ditunda.
Alan Larimer

2

Perasaan pribadi saya adalah bahwa tim tidak boleh terlalu tergantung pada apa yang memungkinkan scrum dan lebih khawatir tentang apa yang bekerja untuk tim. Salah satu alasan mengapa scrum mendapatkan reputasi buruk adalah karena para praktisi dapat menjadi fokus proses yang bertentangan dengan ide-ide di balik manajemen proyek yang gesit.

Saya akan keluar dari kotak sabun saya sekarang tetapi jika Anda mempertanyakan apakah di bawah ini benar-benar 'scrum', harap baca kembali di atas.

Penting untuk memisahkan 'fitur' yang ditentukan oleh cerita pengguna dan 'hasil' yang perlu disampaikan oleh tim teknis untuk mendukung fitur tersebut. Dalam hal ini perlu menyimpan dan mengambil gambar adalah hasil teknis yang Anda (sebagai tim teknis) perlu laksanakan. Cukup banyak setiap cerita akan membutuhkan beberapa hasil teknis.

Alasan bahwa ini penting adalah bahwa pengiriman teknis (dengan sendirinya) bukanlah sesuatu yang menghasilkan nilai dari perspektif pengguna. Jika Anda mulai melacak kiriman teknis sebagai cerita pengguna, Anda dapat dengan mudah jatuh ke dalam perangkap memperlakukan hasil teknis sebagai menghasilkan nilai bisnis. Mengotori perairan dengan cara ini akan membingungkan pekerjaan yang mendukung tujuan bisnis (yaitu hal-hal yang membutuhkan biaya) dengan tujuan bisnis yang sebenarnya (yaitu hal-hal yang menghasilkan uang.)


Sial, saya tidak melihat ini adalah pertanyaan lama ...
JimmyJames

Nah, itu jawaban yang bagus. Pujian!
Hannele

teams should not be too hung up on what scrum allowsbermasalah. Ini adalah alasan utama bahwa kerangka kerja Scrum terus disalahpahami. Kultus kargo yang bahkan tidak benar dalam praktik diabadikan melalui ketidaktahuan yang berkelanjutan.
Alan Larimer

@AlanLarimer Ada yang lebih gesit daripada scrum. Intinya lincah adalah membangun proses yang bekerja untuk tim. Saya setuju bahwa menyebut sesuatu scrum ketika tidak bermasalah tetapi saya menolak gagasan bahwa scrum adalah puncak dari proses manajemen proyek.
JimmyJames

Setuju bahwa filosofi lincah mempromosikan pendekatan adaptif untuk pengembangan produk (lebih dari proyek, karena Scrum difokuskan) dan bahwa tidak ada peluru perak. Tidak ada yang mengklaim status puncak dalam tanya jawab ini. Ketika tim / organisasi / kelompok memilih kerangka kerja Scrum dan memiliki pertanyaan mengenai penggunaannya, kemudian menggarisbawahi bahwa itu adalah kerangka kerja yang mendukung (karena itu adalah fondasi) filosofi lincah melalui tidak menentukan banyak spesifikasi adalah kuncinya. Menyadari nilai dalam fleksibilitas semacam itu, dan lainnya, penting untuk menghindari kultus kargo dan mengidentifikasi perbedaan antara kerangka kerja dan masalah proses.
Alan Larimer

1

Semua jawaban di atas gagal untuk referensi dokumen sumber otoritatif untuk kerangka kerja Scrum: Panduan Scrum .

Product Backlog mencantumkan semua fitur, fungsi, persyaratan, peningkatan, dan perbaikan yang merupakan perubahan yang harus dilakukan terhadap produk dalam rilis mendatang.

Fokusnya harus pada menghasilkan nilai. Terkadang nilai itu berasal dari pekerjaan teknis, seperti peningkatan infrastruktur. Jangan kecualikan item-item itu!

Istilah cerita pengguna tidak pernah muncul dalam The Scrum Guide karena

ini adalah kerangka kerja di mana Anda dapat menggunakan berbagai proses dan teknik.

Menggunakan cerita pengguna hanyalah salah satu teknik yang memungkinkan untuk merekam PBI. Meskipun umum untuk melihat format "As a, I want, So that", itu bisa bertentangan dengan maksud aslinya . Format bermasalah ini juga ditangani di Agile 2017 .

Memahami dan memanfaatkan pengirisan vertikal akan sangat membantu untuk mengurangi ukuran item Product Backlog (PBIs). Pertimbangkan mengiris yang tunggal menyimpan dan Ambil barang ke save dan mengambil barang s .

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.