Saya sedang membaca dokumen Scrum dan mengatakan bahwa tugas-tugas dalam Sprint harus "berpotensi dapat dikirim".
Saya bingung dengan apa artinya ini. Misalkan dalam Sprint 1 tujuannya adalah, "formulir pendaftaran pengguna".
Berapa banyak detail yang perlu saya tambahkan untuk sesuatu yang siap dikirim? Sebagai contoh:
- Saya dapat menunjukkan formulir sederhana dengan bidang tanpa gaya mewah dan menandainya sudah selesai
- Saya hanya bisa melakukan validasi sisi klien sebagai tanda selesai tetapi sisi server juga merupakan pilihan atau keduanya
- Saya juga dapat menambahkan beberapa tips alat jQuery, hover overs, captcha, warna, label untuk formulir
- Lalu ada banyak gaya tentang cara menampilkan pesan kesalahan di layar
Saya dapat melakukan tanpa henti pada satu topik. Jadi bagaimana kita membagi itu dan kapan saya bisa menganggapnya sebagai pengiriman siap.
Atau apakah saya perlu menulis setiap hal terkecil yang mungkin seperti menunjukkan kesalahan, popup atau teks kotak cahaya sebagai subtugas dan menempatkannya sebagai sprint. Ini akan menghasilkan ribuan tugas untuk seluruh proyek.
Maksud saya sekali lagi jika beberapa bekerja untuk Internet Explorer dan beberapa untuk Firefox kemudian lagi apakah saya perlu membagi mereka sebagai tugas juga. Waktu harus dihabiskan untuk mereka dan ketika manajer bertanya kepada saya apa yang Anda lakukan pada waktu itu, saya tidak akan punya tugas untuk mengatakan tetapi pada kenyataannya mereka semua adalah bagian dari pendaftaran Pengguna
sumber
Jawaban:
Setujui ini dengan pemilik produk dan tim Scrum, bukan internet. Ini harus ditentukan dalam Definisi Anda Selesai, dan akan sangat tergantung pada bagaimana tim bekerja.
Meskipun fitur tersebut harus 'shippable' (Saya benci istilah ini dalam Scrum), namun dapat dikatakan bahwa fungsionalitasnya shippable tanpa UI. Banyak orang menderita kesalahpahaman ini dalam Scrum - tujuan dari sprint adalah untuk mendapatkan sebanyak mungkin cerita (idealnya semua) 'Selesai', tetapi yang paling pasti tidak perlu dibangun menjadi sesuatu yang bisa dirilis.
Penting untuk memperbaiki hal-hal seperti ini sejak awal, sehingga semua orang di tim bekerja untuk tujuan yang sama. Etos Scrum adalah komunikasi, jadi tanyakan pada tim Scrum dan buat kesimpulan logis.
Anda dapat bekerja dalam tim di mana UI umumnya ditangani secara terpisah, misalnya oleh tim yang berbeda atau setelah pakar UI memutuskan bagaimana bentuknya akan terlihat, dll. Atau, dalam proyek / tim kecil, mungkin diharapkan bahwa UI dibuat sesuai keinginan Anda. Pergilah.
Sepanjang tim semua tahu jawabannya, itu tidak relevan apa jawabannya.
sumber
Jika fitur kosmetik adalah bagian dari fitur, mereka mungkin harus dilakukan sebagai bagian dari cerita. Intinya adalah, begitu Anda mengatakan sebuah cerita selesai, Anda tidak perlu lagi melakukan pengkodean pada fitur tertentu. Padahal, pada akhirnya ini diputuskan oleh pemilik produk - mereka mungkin menginginkan fitur kosmetik atau tidak. Ini harus dijabarkan dalam kriteria penerimaan.
Itu tidak berarti itu siap untuk digunakan oleh pengguna akhir, itu hanya berarti siap untuk seseorang . Seseorang itu bisa menjadi penguji, atau tim lain seperti tim back-end.
Jika Anda menanyakan ini sebagai pengembang, jawabannya menjadi "Anda tahu, karena pemilik produk akan memberi tahu Anda apakah mereka menginginkan fitur kosmetik atau tidak".
Jika Anda menanyakan hal ini sebagai pemilik produk, Anda hanya perlu memutuskan apakah Anda ingin memecah fitur menjadi lebih dari satu cerita. Tidak ada persyaratan, selain itu harus memuaskan Anda , sebagai sarana untuk memuaskan pelanggan Anda .
Ingat: tujuannya bukan untuk mematuhi scrum dengan ketat. Tujuannya adalah untuk memberikan perangkat lunak berkualitas tinggi kepada pengguna akhir. Gunakan itu sebagai panduan ketika bergulat dengan pertanyaan seperti ini. Apakah menambahkan kosmetik dalam cerita yang sama seperti bagian yang berfungsi murni membantu Anda memberikan kode kualitas kepada pelanggan Anda? Atau, akankah memecahnya menjadi dua cerita membantu? Entah jawabannya jelas, atau tidak masalah dan Anda dapat melakukan apa pun yang berhasil untuk tim Anda.
sumber
"Berpotensi dapat dikirim" berarti mampu-kirim belum tentu sesuatu yang Anda kirim. Sebagai contoh:
Formulir pendaftaran web yang terlihat mengerikan dan tidak memiliki validasi di lapangan, mungkin baik untuk beberapa situasi, seperti proyek sekolah, tetapi dalam bisnis jutaan dolar, akan merusak merek untuk ditampilkan kepada pengguna akhir. Kode mungkin dapat dikirim tanpa menjadi sesuatu yang Anda ingin kirimkan atau bahwa pemasaran atau hukum akan membiarkan Anda mengirim.
Ini adalah sesuatu yang para programmer (dan orang lain yang sedang dalam proses pada saat ini misalnya desainer) akan senang untuk dirilis seperti sekarang, bahkan jika, karena suatu alasan, itu tidak akan pernah benar-benar dirilis seperti itu (misalnya itu perlu diterjemahkan ke dalam bahasa lain sebelum dapat dikirim ke siapa pun - Kanada memiliki aturan ketat tentang perangkat lunak yang dibeli Pemerintah yang memberikan pertimbangan yang sama dengan bahasa Prancis dan Inggris).
Ini adalah titik pemeriksaan kualitas, Anda menatap semua orang di mata dan bertanya apakah mereka akan senang mengirimkannya seperti sekarang, tanpa kerja ekstra, tanpa memeriksa untuk melihat apakah mereka melakukan satu hal terakhir. Saya telah mendengar ini disebut titik pemeriksaan insinyur pesawat. Anda menatap seorang insinyur di mata dan bertanya kepada mereka apakah mereka bersedia menemani Anda dalam penerbangan uji.
Idenya adalah untuk menjadi selincah mungkin. Semakin cepat Anda bisa mendapatkan sesuatu untuk pengguna nyata; apakah itu salinan beta kode untuk memilih individu atau pengujian A / B di situs web Anda, semakin baik. Jika Anda menunjukkan kode pengguna yang terlalu kasar, kasar seperti yang ditentukan oleh harapan mereka untuk produk Anda, maka mereka akan memberi Anda umpan balik yang tidak berguna. Mereka akan berbicara tentang hal-hal yang Anda tidak mencari informasi seperti: mereka tidak suka tombolnya kuning atau kotak teks tidak sesuai dengan label. Jika cukup baik maka Anda bisa mendapatkan umpan balik yang bermanfaat. Semakin cepat Anda mendapatkan umpan balik ini, semakin baik! Anda dapat memvalidasi kesesuaian produk / pasar, dan asumsi yang Anda buat tentang fitur yang telah Anda coba bangun.
Pengiriman fitur adalah bagian terpenting dari ini. Memindahkan tim pengembang dan menyelesaikan Cerita Pengguna adalah hal yang penting. Mencapai titik di mana Anda dapat mengklaim sesuatu telah dilakukan adalah motivator yang hebat.
sumber
Dalam pemahaman saya, setiap cerita harus "dapat dilakukan" dan "dapat dikirim" sejauh itu siap untuk dikonsumsi oleh seseorang , tidak harus pengguna akhir . Jadi, cerita Anda dapat memberikan beberapa fungsionalitas yang kemudian dapat dikirim ke pemilik produk, yang dapat memilih untuk merilisnya kepada pengguna akhir atau untuk mengulangi fitur tersebut lagi.
Yang mengatakan, Anda tidak dilarang memasukkan gaya dalam cerita "Sebagai pengguna akhir, saya akan dapat mendaftar". Di tim kami, kami mencoba membuat setiap cerita sekecil mungkin untuk mempertahankan prediktabilitas yang lebih tinggi dan memastikan kami mampu memberikan apa yang kami janjikan. Jika kita memiliki desain yang siap di muka dan menganggap itu sepele untuk diterapkan, itu termasuk dalam cerita. Jika kami pikir mungkin ada beberapa iterasi pada desain, itu cerita yang terpisah - mungkin beberapa.
sumber
Selain jawaban hebat lainnya untuk pertanyaan ini, Anda juga dapat menganggap fitur kosmetik sebagai bagian lingkup variabel dari segitiga lingkup-sumber daya-waktu. Pastikan Anda memenuhi persyaratan dasar cerita itu, dan tambahkan barang-barang cantik jika Anda punya waktu.
Scrum tidak seharusnya menjamin pengiriman fitur tertentu dalam waktu tertentu. Itu seharusnya memberi Anda pekerjaan bermanfaat maksimum yang mungkin dalam waktu tertentu. Jika fitur kosmetik "opsional" tidak selesai selama sprint itu, itu harus karena mereka tidak mungkin.
sumber
Itu tergantung pada orang yang menetapkan persyaratan, "pemilik produk." Sebagai seorang programmer, saya mungkin puas dengan halaman "formulir registrasi" tanpa gaya yang hanya membuktikan bahwa logika bisnis di layanan web saya berfungsi dengan benar, dan bahwa mendaftar memungkinkan Anda untuk diautentikasi dengan sumber daya lain dalam sistem. Bahkan, "berpotensi dapat dikirim," karena itu tidak selalu menyiratkan bahwa kami benar-benar akan mengirimkannya ke klien, dapat memungkinkan ini menjadi hasil dari kisah pengguna pertama tentang topik tersebut, terutama jika tim teknis dan tim desain adalah sumber daya yang terpisah dengan backlog yang terpisah.
Pada proyek yang lebih matang, Anda mungkin mengirim versi fitur "yang dirancang pengembang", dengan gaya minimal, ke pilot atau klien beta, tetapi mengunjungi kembali fitur yang sama untuk kedua modifikasi fungsionalitas (berdasarkan umpan balik) dan penyelesaian desain.
Tujuan metodologi Agile adalah untuk memungkinkan persyaratan Anda mendorong proses pengembangan perangkat lunak, bukan sebaliknya. Jangan terjebak dalam asumsi bahwa satu deskripsi metodologi adalah Persyaratan Ortodoks yang Benar dan Satu-Satunya. Lebih mudah diucapkan daripada dilakukan, tentu saja, terutama jika Anda berada di organisasi besar tempat Scrum menjadi alasan untuk memaksakan kekacauan pada tim pengembangan.
sumber