Membangun model rantaian bekalan perisian

Penggambaran standard aliran nilai pengembangan perisian bermula dengan pengekodan dan berakhir dengan kod dalam pengeluaran. Anda sering melihat diagram devops yang bermula dengan "perniagaan" dan diakhiri dengan "pelanggan." Namun, penggambaran ini tidak menggambarkan secara tepat kerumitan penyampaian perisian pada skala perusahaan.

Mengambil langkah mundur, anda melihat banyak lagi aktiviti yang terlibat dalam penyediaan perisian kepada pelanggan, tetapi pendekatan semasa untuk menguruskan aktiviti ini berakar pada kerangka penyampaian perkhidmatan dan bukan dalam model pengeluaran. Oleh itu, mereka tidak menghubungkan semua aktiviti yang terlibat sebagai sistem satu-ke-ujung tunggal.

Model yang digunakan dalam industri produk lain adalah model rantai pasokan, dan dengan menerapkan model tersebut pada penyampaian perisian, Anda dapat memperluas pemahaman anda tentang "sistem" penyampaian perisian di luar jangkauan, memberikan anda wawasan baru tentang cara mengoptimalkannya.

Apakah rantaian bekalan?

Rangkaian bekalan bermula dengan idea bahawa anda dapat menyelaraskan semua aktiviti pengeluaran dan bukan pengeluaran sebagai satu sistem. Pengurusan rantaian bekalan sering disalahpahami sebagai hanya "pengurusan pembekal", sedangkan itu hanya satu aspek pengurusan rantaian bekalan (walaupun yang penting)

Semua perniagaan produk dan perkhidmatan mempunyai rantaian bekalan, dan aktiviti yang terlibat dan kepentingan relatifnya terhadap sistem rantaian bekalan akan berbeza-beza. Walau bagaimanapun, idea terasnya adalah dengan mengkoordinasikan kegiatan ini sebagai satu sistem, anda mendapat nilai yang lebih besar daripada jumlah bahagian dan penyampaian nilai yang cekap kepada para pemegang kepentingan.

Kegiatan berikut hanyalah beberapa aspek penting dari semua rantaian bekalan, tetapi untuk perisian ia dijalankan secara unik:

Perancangan

Dalam rantaian bekalan tradisional, aktiviti merancang melibatkan penyelarasan aset dan mengoptimumkan aliran proses untuk mengimbangkan bekalan bahan dengan permintaan produk. Dalam rantaian bekalan perisian, koordinasi itu melibatkan memastikan kod yang tepat dikembangkan untuk ciri produk yang sangat diperlukan. Pada skala besar, dengan beratus-ratus aplikasi dan beribu-ribu pembangun perisian, ini adalah usaha besar.

Tahap aktiviti merancang sering dikurangkan oleh model devops yang ada. Oleh itu, agak ironis, syarikat besar yang paling memerlukan pemenang harus menghadapi tanggungjawab undang-undang, peraturan, kontrak, dan pelanggan yang membuat perancangan menjadi panjang dan kompleks. Pendekatan rantaian bekalan untuk merancang melibatkan mengoptimumkan antara muka antara pelbagai peranan perancangan dan disiplin yang terlibat, dan faktor kejayaan utama adalah dapat mengintegrasikannya dengan berkesan.

Di satu pihak, metodologi tangkas yang membimbing pengembangan perusahaan sering dijelaskan dalam proses air terjun. Hanya sedikit perniagaan yang dapat melarikan diri dari siklus perancangan fiskal, dan proses tangkas dapat mengandungi abstraksi yang bertentangan dengan kitaran tersebut; sebagai contoh, pecut mungkin tidak selari dengan sempadan suku fiskal. Kekurangan komunikasi dan hubungan antara proses pembangunan menggunakan aktiviti tangkas dan bukan pengeluaran menggunakan air terjun boleh menyebabkan pembaziran dan ketidakcekapan di seluruh perniagaan.

Sebaliknya, perancangan produk perusahaan selalu melibatkan sistem pengurusan keperluan dan kebolehkesanan yang luas, dan ini tidak berbeza untuk produk perisian. Pengurusan keperluan sangat penting dalam industri yang sangat terkawal seperti penjagaan kesihatan, di mana perisian boleh dikembangkan untuk alat perubatan yang boleh membawa maksud hidup atau mati bagi pengguna. Pengurusan keperluan melibatkan alat dan metodologi khusus, dan kemampuan untuk menelusuri kesetiaan dan kualiti pelaksanaannya di sepanjang kitaran hidup pembangunan dapat menjadi sangat penting bagi produk perisian perusahaan.   

Penyumberan

Dalam rantaian bekalan tradisional, komponen sumber melibatkan menguruskan hubungan dengan pembekal dan mengembangkan strategi perolehan alat ganti dan bahan. Perisian juga sangat bergantung pada komponen bersumber — menurut penyelidikan terbaru oleh Sonatype, sumber terbuka kini membentuk sebahagian besar produk perisian: sebanyak 80 hingga 90 peratus kod dalam aplikasi moden berasal dari komponen sumber terbuka. Dan komponen ini menimbulkan cabaran pengurusan yang unik.

Pertama, sukar untuk menentukan bagaimana menentukan kualiti komponen, dengan banyak faktor yang mempengaruhi keputusan seperti penggunaan, pengujian, dokumentasi, komuniti, sokongan, dan trend dalam teknologi. Mempunyai strategi dan pendekatan yang jelas untuk memilih komponen adalah mustahak.

Kedua, kerana bilangan belon komponen sumber terbuka, walaupun mengetahui apa yang mereka biarkan sepanjang menguruskan semuanya dengan berkesan adalah satu cabaran. Pengurus produk dan jurutera perlu memperhatikan masalah pelesenan dan masalah keselamatan. Keadaan komponen sumber terbuka anda boleh berubah setiap hari apabila kelemahan baru ditemui dan penyelenggara mengubah strategi harta intelek mereka. Dan pelanggan ingin mengetahui dengan tepat apa yang mereka terima — banyak perusahaan besar tidak akan membeli perisian tanpa bil barang yang menjelaskan apa yang ada di dalam kotak. Menguruskan semua masalah sumber terbuka ini adalah aspek teras dalam pengembangan produk perisian.

Pembahagian

Mendapatkan perisian ke tangan pelanggan boleh melibatkan pelbagai jenis rakan kongsi: penyebaran, pengedaran, integrasi, penjual semula; semua jenis perjanjian: OEM, lesen, NDA, RFP; mesyuarat pelbagai jenis: demo, PoC, persembahan; dan banyak lagi.

Hubungan ini berfungsi sebagai input, output dan bahkan langkah dalam proses penyampaian perisian. Keadaan hubungan ini boleh memberi kesan langsung kepada aktiviti pembangunan. Tanpa menguruskannya dengan teliti dan menghubungkannya dengan kerja yang sedang dilakukan, sampah yang sangat ketara berlaku.

Bayangkan menyampaikan epik untuk prospek yang secara senyap-senyap menjadi peluang yang hilang, atau menggunakan fitur untuk pasangan yang membatalkan perjanjian mereka sebulan yang lalu. Ini berlaku secara berkala apabila perisian dihantar secara bebas dari aliran nilai perniagaan — apabila fungsi penyampaian perisian tidak dihubungkan ke rantai bekalan.

Pipa devops perlu berkait rapat dengan perkongsian, perjanjian dan tujuan untuk melaksanakan tugas itu. Kod dapat dikesan dan dihubungkan dari cerita ke keperluan hingga ke catatan pelanggan di CRM anda, semuanya dengan memperlakukan penyampaian perisian anda seperti rantaian bekalan dan menindaklanjuti dengan strategi integrasi.

Bayangkan, sebagai gantinya, dapat memunculkan semua kegiatan dalam proses yang sedang dilakukan untuk kontrak tertentu, atau semua ciri yang dirancang untuk pelanggan baru — ini adalah hasil pengurusan rantaian bekalan perisian — penglihatan dan kebolehlacakan di seluruh siklus hidup.

Alat

Walaupun perkakas pembuatan klasik anda mungkin terdiri daripada mesin pemotong mati dan ketuhar rawatan haba, rantaian bekalan perisian melibatkan sekumpulan alat (pelbagai alat ALM disebut, alat kitaran hidup, atau alat devops) yang digunakan untuk menguruskan pelbagai peringkat penyampaian perisian .

Strategi untuk menguruskan alat ini sangat berbeza dengan pendekatan klasik kerana pelaburan teknikal dan intelektual dalam alat pengembangan perisian sangat besar dan sangat memberi kesan. Jenis alat ini juga cepat berkembang dan sangat terpecah-belah - Jenkins masa kini akan menjadi Hudson tahun lalu. Suatu organisasi perlu diposisikan untuk memiliki timbunan alat yang tangguh namun modular, yang menyediakan pasukan dengan apa yang mereka perlukan, sambil mengekalkan fleksibiliti untuk menyesuaikan diri.

Tambahan pula, rantai alat tidak dapat diputuskan - ia perlu mengalirkan maklumat ke hulu dan ke hilir merentasi rantaian nilai untuk mendapatkan pengetahuan di mana ia diperlukan. Penting untuk memeriksa bidang ini dari sudut integrasi juga - bagaimana anda dapat menghubungkan aktiviti di lapisan tertentu dengan sekitarnya dan menyokong aktiviti pengurusan rantaian bekalan?

Kesimpulannya

Perniagaan secara historis memisahkan pengurusan teknologi dari garis perniagaan yang menjana pendapatan, memperlakukannya sebagai satu set aktiviti sokongan yang didorong oleh nilai dan objektif yang selaras dengan penyampaian perkhidmatan. Namun, dalam dunia yang ditentukan perisian, model perniagaan itu tidak lagi sesuai.

Keupayaan penyampaian perisian telah bergerak keluar dari ruang sokongan yang ditentukan secara klasik dan telah menentukan semua aktiviti menjana pendapatan utama.

Oleh itu, anda perlu memikirkan semula model anda sebagai sistem pengeluaran dan bergerak ke arah model yang menangkap hubungan kerumitan merentasi aktiviti aliran nilai. Rangkaian bekalan merangkumi pemikiran itu, dan ketika pengeluaran produk perisian berkembang, kita pasti akan melihat model ini semakin matang.