Cara terbaik untuk menyesuaikan perbaikan bug ke dalam proses Scrum? [Tutup]


88

Saya telah mempelajari dan membaca tentang Scrum dalam beberapa hari terakhir dan membaca tentang Perencanaan dan tugas Sprint. Salah satu masalah yang muncul di benak saya adalah bagaimana menangani bug di Scrum. Henrik Kniberg mencantumkan beberapa cara untuk mengatasi masalah ini dalam bukunya yang sangat bagus Scrum and XP from the Trenches :

  1. Pemilik produk mencetak item Jira dengan prioritas paling tinggi, membawanya ke rapat perencanaan sprint, dan meletakkannya di dinding bersama dengan cerita lain (dengan demikian secara implisit menentukan prioritas item ini dibandingkan dengan cerita lain).
  2. Pemilik produk membuat cerita yang mengacu pada item Jira. Misalnya "Perbaiki bug pelaporan back office paling kritis, Jira-124, Jira-126, dan Jira-180".
  3. Perbaikan bug dianggap di luar sprint, yaitu tim menjaga faktor fokus yang cukup rendah (misalnya 50%) untuk memastikan bahwa mereka punya waktu untuk memperbaiki bug. Kemudian diasumsikan bahwa tim akan menghabiskan waktu tertentu setiap sprint untuk memperbaiki bug yang dilaporkan Jira
  4. Letakkan product backlog di Jira (misalnya, parit Excel). Perlakukan serangga seperti cerita lainnya.

Apakah ini benar-benar sesuatu yang perlu diputuskan per proyek atau ada solusi yang lebih baik? Saya dapat memikirkan masalah dengan masing-masing pendekatan tersebut. Apakah ada hibrida yang berasal dari pendekatan yang bekerja paling baik? Bagaimana Anda menangani ini dalam proyek Anda?


3
Anda mungkin ingin membedakan berbagai kelas bug: untuk bug prioritas tinggi, Anda bahkan tidak bisa menunggu sprint berikutnya, jadi bagaimanapun juga bug itu akan memaksakan diri.
Matthieu M.

Saat bug ada dalam Story yang sedang dikembangkan dalam sprint saat ini, bug tersebut langsung diperbaiki. Jika tidak ada dalam Story yang sudah ada, maka story baru harus dibuat untuk menutupi perilaku yang benar dan ditambahkan ke backlog, kecuali item tersebut adalah Blocker atau Hambatan untuk story saat ini.
Martin Spamer

Saya memberikan suara untuk menutup pertanyaan ini sebagai di luar topik karena pertanyaannya ada
Piran

Jawaban:


84

Ini adalah pertanyaan yang sangat bagus dan saya memiliki beberapa pengamatan ketika datang ke pendekatan yang berbeda untuk masalah ini.

  1. Memperlakukan semua bug secara setara dengan item backlog mungkin terdengar seperti ide yang bagus secara teori (pekerjaan dilacak di satu tempat) tetapi tidak berfungsi dengan baik dalam praktiknya. Bug biasanya berlevel rendah dan lebih banyak, jadi jika Anda membuat cerita pengguna individual untuk setiap bug maka cerita "sebenarnya" akan segera disamarkan.
  2. Waktu eksplisit di setiap sprint yang disediakan untuk perbaikan boleh dilakukan jika dilakukan dengan cara yang terlihat oleh pemilik produk. Bug harus disebutkan selama scrum harian dan diskusi tentang bug yang diperbaiki harus terjadi selama tinjauan sprint. Jika tidak, pemilik produk tidak akan mengetahui apa yang terjadi dalam proyek tersebut.
  3. Menempatkan seluruh backlog dalam alat pelacakan bug akan mengarah ke masalah yang sama seperti di 1. Selain itu, sebagian besar pelacak bug tidak dirancang dengan Scrum dalam pikiran dan menggunakannya untuk tujuan ini bisa menyakitkan.

Solusi yang menurut kami paling memuaskan adalah dengan menempatkan satu cerita pengguna yang disebut "Tiket" atau "Bug" di setiap sprint. Kemudian cerita seperti itu dapat dibagi menjadi tugas-tugas tingkat rendah yang menjelaskan bug tertentu (jika diketahui selama perencanaan) atau tugas-meta yang mencadangkan sejumlah jam untuk perbaikan bug umum. Dengan cara ini, pemilik produk memiliki visibilitas ke dalam proses dan diagram burndown mencerminkan kemajuan.

Ingatlah untuk tanpa ampun menutup semua "bug" yang sebenarnya merupakan fitur baru dan membuat item backlog baru untuk mereka. Juga pastikan untuk memperbaiki semua bug yang dilaporkan terhadap sprint saat ini sebelum sprint selesai untuk menganggap sprint sudah selesai.


Tim saya mengikuti solusi serupa.
matt b

YouTrack mencakup # 3. Ini tidak sesakit yang terlihat selama bug diurutkan dengan benar ke dalam kategori yang tepat seperti yang Anda jelaskan.
Jonn

32

Sebenarnya menurut saya yang terbaik adalah jawaban jpeacock dari pertanyaan ini Apakah Anda menghitung jam yang dihabiskan untuk perbaikan bug menuju scrum?

Izinkan saya mengutipnya:

  • Jika bug mudah / cepat diperbaiki (satu liner, dll), maka perbaiki saja.
  • Jika bug tersebut tidak sepele, dan bukan pemblokir, maka tambahkan ke backlog.
  • Jika bug tersebut adalah pemblokir, tambahkan tugas (ke sprint saat ini) untuk merekam pekerjaan yang diperlukan untuk memperbaikinya, dan mulai mengerjakannya. Ini mengharuskan sesuatu yang lain dipindahkan (dari sprint saat ini) ke backlog ke akun untuk jam baru karena total jam yang tersedia tidak berubah.

24

Langkah pertama adalah menentukan apa itu bug. Saya mengajarkan bahwa bug hanya bug jika itu adalah fungsionalitas yang tidak berfungsi dalam produksi seperti yang dimaksudkan / dirancang. Ini menjadi PBI jenis bug yang akan diprioritaskan terhadap pengembangan baru. Fungsionalitas yang hilang dalam produksi adalah Fitur dan menjadi item simpanan produk normal. Kode cacat apa pun yang ditemukan selama sprint dianggap pekerjaan tidak lengkap dan karena Anda tidak melanjutkan ke cerita berikutnya sampai yang sekarang selesai; tidak perlu melacak cacat ini dalam sprint karena tim selalu mengerjakan kode yang melanggar. Post-it bisa sangat berguna di sini untuk pengingat cepat antara rekan satu tim. Memperbaiki kode yang rusak selalu diutamakan daripada menulis kode baru.

Persediaan adalah pemborosan. Pelacakan bug adalah inventaris. Pelacakan bug adalah pemborosan.

Memperlakukan semua bug secara setara dengan item backlog mungkin terdengar seperti ide yang bagus secara teori (pekerjaan dilacak di satu tempat) tetapi tidak berfungsi dengan baik dalam praktiknya. Bug biasanya berlevel rendah dan lebih banyak, jadi jika Anda membuat cerita pengguna individual untuk setiap bug maka cerita "sebenarnya" akan segera disamarkan.

Jika Anda memiliki lebih banyak bug daripada fitur, maka Anda perlu mengerjakan praktik teknik Anda. Ini adalah bau bahwa ada sesuatu yang salah dan pelacakan bukanlah jawabannya. Menggali lebih dalam. Sebenarnya serangga selalu bau. Mereka tidak keren dan jika Anda memiliki banyak dari mereka, Anda perlu menemukan akar penyebabnya, menghilangkannya, dan berhenti berfokus pada pelacakan bug.


1 untuk definisi yang baik. Dalam pengalaman saya, hampir selalu ada "bug", tetapi saya menemukan bahwa seringkali, menulis fitur baru adalah sesuatu yang diinginkan manajemen daripada bug yang sepele. Bagaimana Anda merekomendasikan berurusan dengan manajemen atau pengembang lain yang tidak merasakan hal yang sama?
Jdahern

6

Jangan melacak kerusakan pada daftar, temukan dan perbaiki - Mary Poppendieck

Memang, Jika inventaris adalah pemborosan, bagaimana dengan inventaris cacat ...

Itulah mengapa saya selalu mencoba menerapkan mentalitas Stop-the-Line dengan pengembangan yang digerakkan oleh pengujian dan integrasi berkelanjutan, sehingga kami menemukan dan memperbaiki sebagian besar cacat alih-alih memasukkannya ke dalam daftar pengerjaan ulang.

Dan ketika cacat melewatinya, kami memperbaikinya sebelum menulis kode baru (cerita dengan bug tidak diselesaikan). Kemudian, kami mencoba untuk memperbaiki proses kami agar lebih anti kesalahan dan mendeteksi cacat saat terjadi.


+ 1. Saya suka cerita pernyataan dengan bug tidak dilakukan. Jadi, ketika Anda menemukan bug dalam produksi yang tidak baru (sudah ada selama lebih dari setahun), apakah Anda menetapkan bug itu untuk dev dan menjadikannya sebagai prioritas tertinggi?
Jdahern

2

Tidak ada satu ukuran yang cocok untuk semua solusi dan setiap proyek berbeda. Bug juga dapat dikategorikan dari misi kritis hingga hampir tidak layak diperbaiki.

Kecuali penting untuk menjalankan sistem, saya lebih suka bug menjadi kartu cerita. Itu membuat prioritas pengembangan fitur vs. perbaikan bug sangat eksplisit. Dalam skenario di mana perbaikan bug dianggap "di luar sprint", perbaikan bug mungkin bergerak ke arah perbaikan bug yang sangat sepele sementara fitur bisnis yang sangat penting tidak sedang dikembangkan.

Kami telah melalui sejumlah permutasi sebelum menetapkan bug sebagai pendekatan cerita. Cobalah beberapa hal berbeda dan putar ulang di pertemuan retro tim.


1

Dalam kasus kami (pengembangan greenfield, 2-3 devs) bug yang ditemukan ditulis, ditandai dengan jelas sebagai bug dan berdasarkan tingkat keparahannya, bug tersebut ditugaskan ke iterasi berikutnya atau ditinggalkan di backlog. Dalam kasus bug kritis dan mendesak, mereka ditambahkan ke iterasi yang sedang berlangsung.


1

Saya tidak tahu mengapa sesuatu yang sederhana seperti memperbaiki bug menjadi rumit dengan aturan .. Scrum memiliki sangat sedikit aturan, ingat? Setiap fitur, Dukungan, Rekomendasi atau Cacat adalah masalah Backlog di Scrum, tidak ada perbedaan. Jadi, seperti yang dikatakan pemandu Scrum: tugas-tugas dalam Sprint tidak pernah terbatas pada apa yang Anda putuskan selama rapat perencanaan, Daily Scrum membantu orang-orang mendiskusikan "hambatan" di sepanjang jalan.

Mengapa?

Jadi kalian berdiskusi dan berpikir rasional sebagai tim jika ingin yang cacat yaitu masalah backlog masuk ke PBI atau tetap di Sprint ini dan sampaikan ...


0

Pertanyaan yang lebih baik adalah bagaimana cara berhenti membuat bug dalam fase pengembangan? lihat -> http://bit.ly/UoTa4n

Jika Anda mengidentifikasi dan mendokumentasikan bug, Anda harus melakukan triase dan memperbaikinya di lain waktu. Ini mengarah pada "sprint stabilisasi" yaitu satu sprint utuh hanya untuk memperbaiki bug. Atau Anda dapat menambahkannya kembali ke backlog dan memprioritaskannya sebagai bagian dari sprint mendatang. Ini juga berarti bahwa Anda akan menyediakan dan mengharapkan untuk menandatangani dan merilis perangkat lunak dengan bug yang diketahui di dalamnya (P3 & P4 alias kosmetik dan minor).

Ini tidak terlalu gesit?


2
Tautannya rusak.
Ain Tohvri

0

Saya telah mengajukan ide dalam proyek kami untuk memperkenalkan sprint perbaikan bug singkat setiap sprint ketiga. Sprint kami saat ini adalah tiga minggu.

Idenya adalah bahwa ini akan memungkinkan semua pengembang untuk fokus pada perbaikan bug bersama-sama, memungkinkan fokus hanya pada cerita baru dalam sprint reguler dan tetap fokus pada pengurangan hutang teknologi.

Perbaikan bug akan dikelompokkan ke dalam cerita yang relevan dan diprioritaskan. Penekanannya bukan pada penentuan ukuran sebelum sprint karena para pengembang berjuang untuk mengukur perbaikan bug tanpa terjebak untuk memahami sifat kerusakan.

Adakah yang mencoba ini atau memiliki umpan balik tentang bagaimana menurut mereka ini bisa berhasil?

Cheers, Kevin.

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.