Kami telah mengimplementasikan Scrum dengan cukup sukses selama 5 bulan terakhir. Padahal, kami 3 minggu lagi dari PROD tanpa pernah melakukan tes integrasi ujung ke ujung. ADUH! Saya butuh bantuan. Tanpa mengatasi penyebab ini (pada titik INI), kita sekarang perlu merencanakan iterasi saat ini, yang terdiri dari perbaikan kecil dan BANYAK perbaikan bug yang masih belum diketahui. Bagaimana Anda menjelaskan skenario ini? Bagaimana Anda merencanakan iterasi Anda untuk memperbaiki bug yang belum ditemukan?
9
Jawaban:
Scrum atau tidak, perbaikan bug pada dasarnya tidak mungkin untuk diprediksi. Yang terbaik yang saya percaya bisa Anda lakukan adalah:
Daripada Anda harus memastikan lain kali Anda mulai menguji lebih awal dan memperbaiki bug saat Anda pergi. Semua metodologi yang masuk akal, gesit atau tidak, membutuhkan perbaikan bug yang diketahui sebelum melanjutkan dengan fitur baru. Anda juga harus memperhitungkan berapa banyak waktu yang dihabiskan untuk memperbaiki setiap fitur, sehingga Anda dapat meningkatkan taksiran Anda untuk menerapkan fitur ke status debugged di masa mendatang.
Perkiraan dan perbaikan bug dicakup dengan baik oleh Joel Spolsky dalam Penjadwalan Berbasis Bukti dan Perbaikan Bug yang Keras . Ini tidak terkait dengan Scrum, tapi saya pikir itu cukup umum sehingga banyak yang berlaku.
sumber
Mengenai "iterasi perbaikan bug". Bug yang ditemukan harus diperlakukan tidak berbeda dari cerita. Bekerja dengan tim untuk memperkirakan upaya (poin cerita) untuk memperbaiki setiap bug dan bekerja dengan pemilik produk / pelanggan untuk memutuskan apakah bug harus masuk ke iterasi berikutnya.
Mengenai "bug yang belum ditemukan". Lebih disukai, tim menemukan dan memperbaiki masalah setiap iterasi. Jika tidak, diskusikan hal ini di retrospektif Anda berikutnya. Jika kualitas produk sangat rendah sehingga rilis tidak dimungkinkan, maka segera pindahkan " pencari bug " terbaik Anda ke menemukan bug (tidak memperbaiki). Jika kualitas cukup tinggi untuk menyediakan rilis beta untuk memilih pengguna - lakukanlah. Jika Anda tidak bisa, maka sediakan setidaknya demo pengguna langsung yang membahas bidang lemah yang Anda rekomendasikan perlu ditingkatkan.
sumber
Kami tidak merencanakan 'perbaikan bug yang diperbaiki', tapi kami merencanakan iterasi pengujian sistem sebelum setiap rilis. Uji sistem adalah uji integrasi, regresi, dan nyata pada semua bagian produk. Penguji menguji produk (sistem warisan yang cukup besar) dan pengembang memperbaiki bug yang ditemukan. Jika tidak ada bug yang ditemukan, kami mulai menyelidiki jadwal fitur untuk proyek berikutnya atau bekerja pada perbaikan internal.
Saat ini, kami merencanakan enam minggu pengujian sistem setelah pembekuan kode (untuk proyek lima bulan, termasuk pengujian sistem), untuk memastikan semuanya bekerja. Ini di atas semua pengujian yang dilakukan selama iterasi implementasi.
sumber
Anda perlu menentukan serangkaian kriteria "rilis". Ini dapat mencakup:
dll.
Kemudian pada akhir setiap iterasi di mana Anda memiliki beberapa orang menguji (baik secara manual atau dengan menulis tes otomatis) dan lainnya memperbaiki cek untuk melihat apakah Anda telah memenuhi kriteria Anda. Jika sudah maka lepaskan, jika belum maka lakukan iterasi lain.
Seharusnya ada kemungkinan override pada ini dan sering kali angka mentah tidak menyajikan gambaran realistis dari aplikasi. Anda mungkin memiliki beberapa cacat yang sangat serius, tetapi mereka hanya bermanifestasi dalam kondisi langka yang dapat Anda jalani dalam jangka pendek.
sumber
Salah satu cara untuk melakukannya adalah dengan menulis cerita untuk pengujian integrasi Anda, di mana Anda menulis cerita baru untuk bug yang Anda temukan, kemudian memperbaiki cerita bug di iterasi berikutnya.
Cara lain untuk melakukannya adalah dengan hanya membuat cerita yang mengatakan "Perbaiki bug yang ditemukan dalam pengujian integrasi." Dari rilis sebelumnya Anda harus memiliki gagasan tentang berapa banyak masalah yang biasanya ditemukan, dan seberapa sulit mereka untuk memperbaikinya, sehingga Anda dapat menetapkan poin cerita berdasarkan pengetahuan itu. Anda mungkin dapat membaginya menjadi beberapa komponen jika itu membuatnya lebih mudah dikelola. Selalu ada ketidakpastian dalam hal ini. Tambahkan beberapa poin cerita tambahan untuk menjelaskannya.
Anda mungkin menyadari terlambat bahwa cara terbaik adalah menggabungkan sedikit pengujian integrasi ke setiap iterasi jika memungkinkan. Selamat atas pengakuan itu dan meningkatkan proses Anda hanya sedikit untuk rilis berikutnya.
sumber