Bagaimana Anda menghindari situasi branchageddon ketika bekerja dengan organisasi besar?
Kami bekerja dengan sejumlah organisasi keuangan besar yang pendekatannya tidak mengambil pembaruan perangkat lunak, tetapi hanya tambalan keamanan tinggi / kritis dan fungsionalitas yang dipesan lebih dahulu. Organisasi-organisasi ini hanya akan mengambil tambalan dan rilis khusus di antara pembaruan utama. Pembaruan besar dapat terpisah bertahun-tahun dan membawa biaya tinggi. Pendekatan ini menyebabkan kami (rumah perangkat lunak) memiliki cabang kode kami per pelanggan utama, yang membawa semua biaya dan inefisiensi percabangan jangka panjang.
Pertanyaan saya kepada komunitas adalah:
- Sudahkah Anda mengalami pendekatan penerimaan pembaruan yang serupa dari pelanggan Anda?
- Saran apa yang Anda miliki untuk membantu bekerja dengan pendekatan ini?
- Saran apa yang Anda miliki untuk membantu mengubah pendekatan organisasi dalam mengambil pembaruan perangkat lunak?
Jawaban:
Seperti yang disebutkan Michael, tawarkan solusi standar berdasarkan versi rilis / angka, dengan umur yang cukup panjang untuk industri Anda (mungkin disatukan dengan satu atau lebih versi jangka menengah yang lebih pendek, jika masuk akal bagi pelanggan tipikal Anda).
Berikan pelanggan Anda opsi untuk memulai jalur rilis standar ini, mungkin dengan tenggat waktu migrasi yang layak.
Jika mereka bersikeras pada strategi dukungan cabang khusus penuh, cukup bebankan biaya yang sesuai untuk menutup semua biaya ekstra Anda dengan menawarkan dukungan kustom lengkap - itu hanya masuk akal secara bisnis. Beberapa pelanggan akan bermigrasi untuk mengurangi biaya mereka (yang akan membantu Anda mengurangi jumlah cabang khusus), beberapa tidak.
Tagihan dukungan variabel, semakin bertambah seiring usia versi rilis dari mana cabang kustom berasal juga dapat menjadi insentif bagi pelanggan untuk bermigrasi ke cabang yang lebih baru dengan lebih cepat, membantu dengan penutupan yang lebih cepat dari cabang kustom yang lebih lama. Ini dapat membantu mengurangi jumlah cabang khusus per pelanggan - jika Anda memiliki pelanggan yang secara bersamaan menjalankan beberapa versi perangkat lunak Anda.
Pastikan Anda tidak jatuh ke dalam perangkap melakukan penggabungan cabang penuh dari / ke salah satu cabang rilis (baik standar dan kebiasaan), semua perubahan harus dilakukan secara individual atau perbaikan gabungan yang dipilih ceri.
Karena masing-masing cabang ini secara bertahap akan menyimpang dari satu sama lain, jumlah perbaikan terbaru yang membutuhkan penyesuaian / pengembangan individu akan tumbuh secara eksponensial (penggabungan ceri-pilih akan gagal). Anda perlu memperhitungkan biaya pengembangan untuk ini.
Tanpa penggabungan cabang (signifikan) dalam gambar yang Anda dapat (dan seharusnya, saya tidak bisa cukup menekankan pentingnya) membangun jaringan pipa CI / CD yang sepenuhnya otomatis untuk cabang-cabang ini, disertai dengan sistem pelacakan / manajemen perbaikan terbaru yang baik di tempat, membuat pengiriman perbaikan terbaru hanya rutin (atau hampir).
sumber
Mungkin jika Anda mempertahankan cabang per versi alih-alih per pelanggan, ini dapat membantu mengurangi jumlah mereka?
Kalau tidak, satu-satunya cara untuk benar-benar menjauh darinya adalah dengan dapat meng-host perangkat lunak sendiri dan beralih ke model SaaS di mana Anda hanya dapat mempertahankan satu versi saja.
sumber