Siklus rilis satu minggu: bagaimana cara membuat ini layak?

12

Di perusahaan saya (startup industri web berusia 3 tahun), kami sering mengalami masalah dengan tim produk yang mengatakan "aaaah sekarang ini krisis yang menambalnya sekarang!" (bukan semua orang?)

Ini berdampak pada produktivitas (dan moral) staf teknik, termasuk di dalamnya. Manajemen telah menghabiskan beberapa waktu untuk memikirkan bagaimana mengurangi frekuensi permintaan pada hari yang sama dan telah menemukan solusi yang akan kami rilis setiap minggu. (Sebelumnya kami sudah melakukan satu setiap dua minggu, yang biasanya tergelincir sekitar dua hari.)

Ada 13 pengembang dan 6 penguji lepas pantai lokal / 9; teorinya adalah bahwa hanya 4 pengembang (dan semua penguji) akan bekerja pada rilis genap, kecuali jika ada karya yang benar-benar membutuhkan keahlian khusus dari salah satu pengembang lainnya. Setiap siklus akan berisi dua hari kerja dev dan dua hari kerja QA (ditambah 1 hari pelingkupan / triase / ...).

Pertanyaan saya adalah:

(a) Apakah ada yang punya pengalaman dengan siklus rilis ini?

(B) Apakah ada yang pernah mendengar tentang siklus rilis ini bahkan sedang dicoba?

(c) Jika (a) atau (b), bagaimana Anda membuatnya bekerja? (Setiap jebakan yang harus dihindari, dll., Juga dihargai.)

(D) Bagaimana kita bisa meminimalkan kerusakan jika upaya ini gagal?

Arkaaito
sumber
Apa yang Anda maksud dengan "pekerjaan krisis"?
Wizard79
Permintaan agar kami diperintahkan untuk menambal pada hari yang sama ketika mereka diterima. Mengedit pertanyaan untuk membuatnya lebih jelas untuk sementara.
Arkaaito

Jawaban:

8

Anda tentu dapat mengirimkan setiap minggu - atau bahkan lebih sering. Saat ini kami biasanya merilis setiap dua minggu, tetapi itu tidak biasa untuk menyebarkan fungsionalitas ketika sesuatu telah tiba tanpa pemberitahuan dari salah satu mitra kami yang tidak akan relevan jika kami menunggu siklus berikutnya. Pada titik tertentu dalam beberapa bulan ke depan saya ingin kita beralih ke pengiriman berkelanjutan (barang-barang dirilis segera setelah praktis setelah 'selesai') sebagai standar, tapi kami belum cukup percaya diri untuk melakukannya jauh.

Yang penting adalah Anda perlu situs web Anda sangat tertutup oleh tes otomatis - baik tes unit dan tes penerimaan ujung-ke-ujung / spesifikasi yang dapat dieksekusi. Implikasinya, ini juga berarti bahwa bangunan Anda sepenuhnya otomatis. Pada tingkat penerimaan kami menggunakan Kerangka Robot yang sangat baik untuk dengan cepat membangun test suite yang dapat dikelola berkat pendekatan kata kunci itu. Untuk melihat dan merasakan tester di tempat kami melakukan beberapa pemeriksaan sepintas, tetapi kami juga memiliki beberapa orang di India yang melakukan pemeriksaan lebih menyeluruh di berbagai browser (ada situs yang membantu dengan hal semacam ini dengan mengambil tangkapan layar untuk Anda, misalnya BrowserLab ).

Kami tidak sepenuhnya mengotomatiskan penyebaran (langkah terakhir membutuhkan intervensi manual, ini adalah keputusan yang sadar bagi kami) - tetapi kami memang mengotomatiskan semua hal seperti memastikan bahwa koneksi basis data yang benar sedang digunakan, dll, dengan siklus penempatan pendek akan terlalu mudah untuk membuat kesalahan dengan hal semacam ini.

Ada buku terbaru yang cukup bagus tentang pengiriman terus menerus yang mungkin ingin Anda periksa, saya telah membaca skimnya tetapi belum memeriksanya secara rinci. Apa yang telah saya baca sejauh ini sangat cocok dengan pengalaman kami: Pengiriman Berkelanjutan: Perangkat Lunak yang Andal Meluncurkan melalui Build, Test, dan Deployment Automation

Singkatnya, Anda memerlukan tim yang sangat disiplin, otomatisasi tingkat tinggi dan - yang paling penting dari semuanya - tingkat kepercayaan yang sangat tinggi pada otomasi itu. Bagi saya tampaknya pindah ke siklus mingguan dalam kasus Anda mungkin merupakan kesalahan - krisis menambal masalah lain dan Anda harus berusaha menghilangkannya. Meningkatkan tempo bisa berpotensi membuat situasi lebih buruk ...

FinnNk
sumber
7

Jika Anda terus-menerus dalam mode "rilis krisis", saya akan mengatakan akan lebih bijaksana untuk mengambil langkah mundur dan mengevaluasi kembali kode Anda dan proses Anda. Jelas, ada beberapa jenis kegagalan di sana yang terus berulang.

Meskipun mungkin tidak sepenuhnya mungkin untuk melakukan ini pada skala produksi yang sebenarnya, tetapi mungkin akan bermanfaat untuk memiliki setidaknya satu anggota senior dan beberapa subset pengembang dan penguji yang didedikasikan untuk evaluasi ini.

"4 pada pendekatan waktu" tidak terdengar seperti pemenang yang jelas bagi saya. Itu berarti pengalihan konteks konstan, yang berarti jauh lebih sedikit efisiensi.

Ingat, jika Anda terus-menerus terburu-buru untuk melakukan perubahan, Anda lebih mungkin untuk membuat kesalahan dalam perubahan itu, dan merusak sesuatu yang lain saat Anda melakukannya.

Wonko the Sane
sumber
jika saya dapat menambahkan komentar saya sendiri ke jawaban bagus @ Wonko ... Perusahaan kami menghabiskan beberapa tahun melakukan hal-hal yang mirip dengan OP. Tumbuh dari 6 atau devs ke 16. Sekitar 2 tahun yang lalu, kami memutuskan untuk menjadi Agile. Kami merekrut Sr. Dev dengan pengalaman Agile, beralih iterasi 2 minggu, menerapkan integrasi berkelanjutan, dll ... Kami masih jauh dari toko buku teks dan sudah bergelombang dari waktu ke waktu tetapi kami benar-benar mengurangi konteksnya switching, yang merupakan kemenangan besar.
DevSolo
1

Manajemen telah meluangkan waktu untuk memikirkan bagaimana mengurangi frekuensi "pekerjaan krisis" ini dan telah menemukan solusi yang akan kami rilis setiap minggu.

Sepertinya manajemen Anda adalah juara dunia ... mengapa tidak berinvestasi dalam semangat tim Anda? Anda akan melihat masalah akan hilang dengan sendirinya.

(a) + (b) IMHO, sesuai ukuran tim Anda, maksimal dua minggu. Satu minggu akan bekerja untuk satu pertunjukan pria atau tim yang sangat kecil (seperti 2 atau 3).

(c) + (d) Tetapi terlepas dari ukuran tim atau proyek Anda, salah satu hal pertama yang saya lakukan, adalah mengotomatiskan pembuatan & penyebaran. Saya menghemat hari jika tidak berminggu-minggu bekerja dengan melakukan itu di hari-hari awal proyek.

Penempatan Anda harus dilakukan dengan satu klik. Dari sumber ke pementasan, kemudian dari pementasan ke produksi. Ada banyak alat untuk memungkinkan ini. Dari semut / raksasa hingga barang super berat seperti Automated Build Studio .

Semuanya dapat diotomatiskan dari penyebaran file ke pemutakhiran basis data, termasuk cadangan, pemberitahuan, pelaporan, ...


sumber
Tidak sepenuhnya yakin apa yang Anda usulkan di sini - apakah Anda mengatakan bahwa manajemen masalah yang harus diatasi adalah kurangnya semangat tim? Atau apakah Anda mengatakan bahwa saya menunjukkan kurangnya semangat tim dengan mencoba mencari cara untuk membuat ini bekerja (dan menjadi gugup tentang prospek kesuksesan)?
Arkaaito
Saya tidak bisa memberikan pendapat yang objektif tentang situasi Anda ketika dijelaskan dalam beberapa baris teks. Namun, saya mengamati bahwa kurangnya semangat tim biasanya merupakan akar dari banyak masalah dalam organisasi seperti Anda. Terlepas dari masalah yang saya sarankan agar Anda atasi, mengotomatiskan proses penyebaran akan meningkatkan pengalaman Anda