Seberapa sering rilis dalam sprint Scrum

10

Seberapa sering Anda melepaskan selama sprint. Hanya di akhir sprint atau setiap kali fitur siap. Dan bagaimana Anda menangani rilis perbaikan bug?

eskimoblood
sumber
3
jika Anda merilis setiap kali fitur dilakukan, mungkin Anda harus melihat kanban bukan Scrum
David

Jawaban:

10

TL; DR: Lepaskan kapan saja sesuai

Kami melakukan rilis setiap kali ada nilai dalam melakukan rilis. Terkadang itu berarti melakukan rilis setelah satu fitur atau perbaikan bug selesai. Terkadang itu berarti melepaskan kumpulan fitur dan / atau perbaikan bug.

Ini tidak berarti kita sering memiliki "darurat" yang memerlukan rilis cepat. Itu berarti kami telah bekerja keras untuk membuat rilis mudah. Kode kami diuji, ditandai dan dikemas dengan setiap build. Kami menggunakan tes penerimaan otomatis dan sebagai hasilnya kami telah mengembangkan tingkat kepercayaan yang tinggi pada kode yang lulus tes itu. Karena paket kami segera tersedia melalui yum repo lokal, menyebarkan rilis itu sepele.

dietbuddha
sumber
10

Tidak pernah selama. Itu melanggar premis dasar dari "sprint". Anda menjalankan sampai Anda menyelesaikan apa yang Anda berkomitmen untuk menyelesaikan. Setelah Anda selesai, itu benar-benar dilakukan dan benar-benar berfungsi. Anda kemudian dapat melepaskannya.

Rilis dapat berupa jenis sprint terpisah di mana barang dikemas untuk rilis.

Rilis perbaikan bug dapat berupa sprint pendek. Tidak memiliki jadwal reguler sprint dengan panjang yang sama dianggap oleh banyak orang sebagai ide yang buruk. Oleh karena itu, aturan yang biasa adalah bahwa perbaikan bug hanyalah pekerjaan prioritas tinggi yang terjadi selama sprint berikutnya .

Jika ini darurat, Anda memiliki terlalu banyak hal yang terjadi - dukungan dan pengembangan - dan Anda harus mempertimbangkan untuk mengubah organisasi agar lebih sedikit hal yang terjadi.

S.Lott
sumber
Jadi, bagaimana para penguji seharusnya menguji secara berkelanjutan?
Pengembang Melbourne
4

Jika pekerjaan yang dilakukan oleh tim kondusif untuk melakukan beberapa rilis dalam sprint, lepaskan sesering yang Anda inginkan.

Hal yang sama berlaku untuk rilis perbaikan-cacat - jika masuk akal untuk melepaskannya, lakukanlah.

Matthew Flynn
sumber
Ya saya setuju. Pendekatan terbaik adalah memisahkan rilis dari implementasi fitur dan / atau sprint. Proses (rilis) perlu mendukung ini. Sprint adalah kerangka waktu. Rilis dapat dilakukan kapan saja jika versi yang Anda rilis melewati QA. Dua hal itu bisa berbeda. Bagaimana cara mencapai ini? Salah satu opsi adalah menggunakan konsep "tidak ada sampah di bagasi" untuk manajemen cabang.
Manfred
3

Pekerjaan Agile terakhir yang saya kerjakan memiliki rilis setiap sprint; kode dibekukan setiap Kamis (sprint dua minggu), dan kemudian produk tersebut dikemas dan diterbitkan ke server UAT untuk klien kami untuk bekerja dengan. Ini selama pengembangan awal produk; untuk produk yang matang, terutama program yang dapat didistribusikan dan bukan aplikasi web, Anda mungkin tidak ingin membebani pengguna dengan peningkatan setiap dua hingga tiga minggu.

Hampir semua rilis kami termasuk campuran poin cerita dan cacat (bug). Cacat dihitung sebagai "jam tidak ideal"; ada 5 jam ideal dalam satu hari kerja, yang berarti pengkodean head-down dari pekerjaan titik baru. Tiga hingga empat jam sehari lainnya adalah rapat, diskusi, desain, kadang-kadang "paku" (penelitian terfokus / pengembangan konsep bukti), dan pekerjaan cacat; hal-hal yang berkontribusi pada produk yang lebih baik dan merupakan bagian penting dari proses, tetapi tidak bisa mengambil seluruh sprint seluruh tim. Satu-satunya waktu kami melakukan rilis cacat saja adalah ketika tidak ada pekerjaan poin-cerita yang tersedia di backlog pada IPM; maka kami hanya menjadwalkan sprint QA di mana kami diperintahkan untuk "membunuh sebanyak mungkin cacat". Karena tidak memiliki persyaratan siap untuk pergi SELALU kesalahan PO (dan PO bekerja untuk klien), kita bisa mengeluarkan pemberitahuan perubahan kontrak dan bekerja dengan apa yang kita miliki. Tentu saja, begitu pekerjaan cerita yang sebenarnya selesai dan kami memasuki pengembangan "garansi", semua cacat ada di sana.

Dalam proyek Agile yang dikelola dengan baik, kehabisan persyaratan tidak boleh terjadi; backlog harus selalu memiliki nilai kerja sprint yang siap diambil. Tapi, terkadang PO kebanjiran persyaratan produksi; kadang-kadang BA / penguji menahan rilis cerita ke tumpukan pembangunan, untuk alasan yang berkaitan dengan kualitas persyaratan atau konflik cerita; terkadang suatu tim memutuskan bahwa mereka harus "menyepak bola" pada cerita yang tidak terdefinisi dengan baik atau diperkirakan, dan tidak ada sesuatu yang dapat dengan mudah mengambil siklus yang tersisa. Singkatnya, bahkan dalam Agile, sial terjadi.

KeithS
sumber
3
Saya pikir titik Agile adalah bahwa kita BERHARAP terjadi.
Matthew Flynn
Jika proses build Anda secara otomatis menandai sebuah paket, kode tidak perlu "dibekukan"? Pekerjaan dapat dilanjutkan, versi yang diperiksa dapat didorong keluar, dll.
dietbuddha
"Bekukan" itu simbolis; kami pada dasarnya mengatakan bahwa build terbaru yang telah dilewati CI pada pukul 17:00 Kamis adalah rilis build, dan kami memotong cabang SVN untuk revisi itu dan melanjutkan. Jika Anda tidak berkomitmen pada saat itu atau komit Anda belum lulus semua tes CI itu tidak dalam rilis.
KeithS
1

Apa yang Anda maksud dengan rilis? Jika yang Anda maksud PSP - produk yang mungkin dapat dikirim, Anda memiliki dua opsi:

  • Scrum menurut buku (atau Scrum level 2) Anda memiliki PSP di akhir sprint dan itulah yang Anda tunjukkan pada pertemuan retrospektif
  • Saya juga bertemu dengan istilah Scrum level 3 di mana tim menguasai alat mereka seperti Kontrol sumber dan integrasi berkelanjutan dan pindah ke pengiriman berkelanjutan. Tim tersebut dapat memiliki PSP setelah setiap bangunan malam (atau setiap bangunan dalam kondisi terbaik). Memiliki PSP setelah setiap build tidak berarti Anda menunjukkannya kepada pelanggan setelah setiap build - itu masih hanya rilis internal.

Perbedaan utama antara level 2 dan level 3 adalah bahwa pada level 2 Anda harus berupaya untuk membuat PSP akhir di akhir sprint tetapi pada level 3 Anda menaruh sejumlah uang dan upaya pada awalnya untuk alat dan konfigurasi Anda dan Anda telah menyiapkan PSP otomatis setiap saat = tidak ada upaya manual yang terlibat. Mencapai level 3 sepenuhnya jarang terjadi.

Ladislav Mrnka
sumber
apakah ini nama resmi "tingkat scrum"? Saya mencari di Google dan tidak menemukan apa pun.
David
@ David: Saya tidak berpikir itu resmi. Ini hanyalah pendekatan lain untuk mengukur "Kematangan scrum" - Saya telah menemukan presentasi ini membahas level-level tersebut tetapi saya bertemu di kursus CSM.
Ladislav Mrnka
0

Sama sekali tidak ada aturan dalam Scrum tentang kapan fitur baru dapat digunakan. Setiap tim perlu memiliki "definisi selesai", yang selalu harus mencakup beberapa kriteria tentang pengujian. Setelah fitur "selesai", itu siap untuk dunia nyata dan jika tidak ada dependensi atau kondisi lain yang perlu dipenuhi sebelum dapat digunakan, maka tidak ada alasan untuk menunggu akhir Sprint untuk menyebarkannya.

Tidak ada yang berarti bahwa itu tidak disajikan pada pertemuan Tinjauan / Perencanaan Sprint. Konsepnya adalah bahwa segala sesuatu yang telah diselesaikan oleh Tim ditunjukkan ke PO (dan pelanggan UKM lainnya) sehingga mereka dapat memasukkannya ke dalam pemahaman mereka yang berkembang tentang sistem ketika berevolusi.

Dave
sumber
0

Setelah beberapa minggu, kami menemukan solusi bagus yang sesuai dengan kebutuhan kami. Kami memutuskan untuk melepaskan kapan pun kami mau. Bagaimana kami melakukannya:

  1. ketika seseorang memutuskan untuk merilis cabang pengembangan yang sebenarnya, ia menggabungkan semua perubahan di cabang utama yang ditandai dengan nomor rilis baru dan mendorongnya ke sistem pementasan kami.
  2. daripada QA kami dan semua tim lain mendapat surat dengan changelog yang sebenarnya dan mereka menguji sistem pementasan
  3. jika mereka menemukan bug, kami memperbaikinya di master, mendorongnya ke staging dan kemudian menggabungkan master kembali ke mengembangkan cabang
  4. ketika sistem pementasan berlalu QA master ditayangkan

Itu dia. Kami menggunakan git dan maven sebagai sistem CI dan kami memiliki cakupan tes yang baik. Yang merupakan salah satu alasan kami dapat melakukannya seperti ini.

eskimoblood
sumber
0

Menjawab pertanyaan yang hampir berumur 2 tahun mungkin agak berlebihan, tetapi untuk semoga menambah nilai bagi orang lain yang datang ke pertanyaan ini saya ingin menambahkan sekitar 2 sen. :)

Untuk menjawab pertanyaan: Anda sebaiknya melepaskan apa yang dilakukan dalam sprint, di akhir sprint itu. Melakukannya berhubungan dengan semua bagian / proses / pedoman scrum lainnya yang diarahkan untuk mendapatkan nilai bisnis terbaik pada waktu yang tepat.

TETAPI keadaan darurat, bug, kejadian tak terduga dll dapat memaksa tangan Anda, yang merupakan konsep jika "Release Release" bisa berguna. Dengan "Perencanaan Rilis" yang saya maksud bukan perencanaan jenis air terjun, melainkan perencanaan harapan yang dapat membantu mengelola tumpukan produk dan prioritas cerita dalam sprint, dll.

Tapi mungkin komentar David tentang pertanyaan itu adalah sesuatu yang sebaiknya dipertimbangkan. Scrum tidak selalu merupakan jawaban yang tepat.

David 'the botak jahe'
sumber