Izgradnja modela lanca opskrbe softverom

Standardni prikaz toka vrijednosti razvoja softvera započinje kodiranjem i završava proizvodnim kodom. Često vidite devopsove dijagrame koji započinju s "posao", a završavaju s "kupac". Međutim, ovaj prikaz ne odražava točno složenost isporuke softvera na razini poduzeća.

Vraćajući se unatrag, vidite mnogo više aktivnosti uključenih u isporuku softvera kupcima, ali trenutni pristupi upravljanju tim aktivnostima ukorijenjeni su u okvirima pružanja usluga, a ne u proizvodnim modelima. Kao takvi, ne povezuju sve uključene aktivnosti kao jedinstveni sustav od kraja do kraja.

Model koji se koristi u drugim proizvodnim industrijama je model lanca opskrbe, a primjenom tog modela na isporuku softvera možete proširiti svoje razumijevanje "sustava" za isporuku softvera izvan devops-a, dajući vam novi uvid u to kako ga optimizirati.

Što je lanac opskrbe?

Lanac opskrbe započinje s idejom da sve proizvodne i neproizvodne aktivnosti možete koordinirati kao jedinstveni sustav. Upravljanje lancem opskrbe često se pogrešno shvaća kao jednostavno „upravljanje dobavljačima“, dok je to zapravo samo jedan aspekt upravljanja lancem opskrbe (iako kritični).

Sve tvrtke s proizvodima i uslugama imaju lanac opskrbe, a uključene aktivnosti i njihova relativna važnost za sustav opskrbnog lanca varirat će. No, srž ideje je da koordiniranjem ovih aktivnosti kao jedinstvenog sustava dobijete vrijednost veću od zbroja dijelova i protok učinkovite isporuke te vrijednosti dionicima.

Sljedeće su aktivnosti samo neki od važnih aspekata svih lanaca opskrbe, ali za softver se izvršavaju jedinstveno:

Planiranje

U tradicionalnom lancu opskrbe, aktivnosti planiranja uključuju koordinaciju imovine i optimizaciju tijeka procesa radi uravnoteženja ponude materijala i potražnje za proizvodima. U lancu opskrbe softverom ta koordinacija uključuje osiguravanje da se razvije pravi kôd za značajke proizvoda koje su najpotrebnije. U velikim razmjerima, sa stotinama aplikacija i tisućama programera, ovo je monumentalan pothvat.

Postojeći modeli devopsa često smanjuju opseg aktivnosti planiranja. Stoga je pomalo ironično da se velika poduzeća koja najviše trebaju devops moraju boriti sa zakonskim, regulatornim, ugovornim i kupčevim obvezama koje planiranje čine dugotrajnim i složenim. Pristup lancu opskrbe planiranju uključuje optimizaciju sučelja između mnogih različitih uloga planiranja i uključenih disciplina, a ključni čimbenik uspjeha je njihova učinkovita integracija.

S jedne strane, agilne metodologije koje vode razvoj u poduzeću često su povezane s vodopadnim procesima. Malo koja tvrtka može pobjeći od ciklusa fiskalnog planiranja, a agilni procesi mogu sadržavati apstrakcije koje su u sukobu s tim ciklusima; na primjer, sprintovi se možda neće poravnati s granicama fiskalnih tromjesečja. Nedostatak komunikacije i povezanosti između razvojnih procesa koji koriste agilne i neprodukcijske aktivnosti pomoću slapa mogu dovesti do gubitka i neučinkovitosti u cijelom poslu.

S druge strane, planiranje proizvoda za poduzeća uvijek je uključivalo opsežne sustave upravljanja zahtjevima i sljedivosti, a to se ne razlikuje ni za softverske proizvode. Upravljanje zahtjevima posebno je važno u visoko reguliranim industrijama poput zdravstvene zaštite, gdje se softver može razviti za medicinske uređaje koji korisnicima mogu značiti život ili smrt. Upravljanje zahtjevima uključuje specijalizirane alate i metodologije, a sposobnost praćenja vjernosti i kvalitete njihove provedbe kroz razvojni životni ciklus može biti presudna za softverske proizvode poduzeća.   

Izvor

U tradicionalnom lancu opskrbe komponente za nabavu uključuju upravljanje odnosima s dobavljačima i razvijanje strategija nabave dijelova i materijala. Softver se također u velikoj mjeri oslanja na komponente izvornog izvora - prema nedavnom istraživanju tvrtke Sonatype, otvoreni kod sada čini većinu softverskih proizvoda: čak 80 do 90 posto koda u modernim aplikacijama dolazi iz komponenti otvorenog koda. A ove komponente stvaraju jedinstvene upravljačke izazove.

Prvo, može biti teško odlučiti kako odrediti kvalitetu komponenata, a mnogi čimbenici utječu na odluke kao što su potrošnja, ispitivanje, dokumentacija, zajednica, podrška i tehnološki trendovi. Jasna strategija i pristup odabiru komponenata je imperativ.

Drugo, kao broj balona s otvorenim izvornim komponentama izazov je čak i znati što im je sve dopušteno uz učinkovito upravljanje svim njima. Menadžeri proizvoda i inženjeri moraju dobro paziti na probleme licenciranja i sigurnosna pitanja. Stanje vaših komponenti otvorenog koda može se mijenjati svakodnevno kako se otkrivaju nove ranjivosti, a održavači mijenjaju svoje strategije intelektualnog vlasništva. A kupci žele znati što točno primaju - mnoga velika poduzeća neće kupiti softver bez računa robe koji opisuje što je u kutiji. Upravljanje svim tim problemima otvorenog koda ključni je aspekt razvoja softverskih proizvoda.

Distribucija

Dobivanje softvera u ruke kupaca može uključivati ​​složenu mrežu partnera svih vrsta: postavljanje, distribucija, integracija, preprodavač; sporazumi svih vrsta: OEM-i, licence, NDA-i, RFP-ovi; sastanci svih vrsta: demonstracije, PoC-ovi, prezentacije; i toliko više.

Ti odnosi služe kao ulazi, izlazi i čak koraci u procesu isporuke softvera. Stanje bilo kojeg od ovih odnosa može izravno utjecati na razvojne aktivnosti. Bez njihovog pomnog upravljanja i povezivanja s poslom koji se izvodi nastaje vrlo opipljiv otpad.

Zamislite da pružite epsku priču o potencijalnom klijentu koji je tiho postao izgubljena prilika ili da postavite značajku za partnera koji je otkazao sporazum prije mjesec dana. To se redovito događa kada se softver isporučuje neovisno o tijeku vrijednosti poslovanja - kada funkcija isporuke softvera nije povezana s opskrbnim lancem.

Cjevovod devops mora biti usko povezan s partnerstvima, sporazumima i ciljevima za koje se posao izvodi. Kôd se može pratiti i povezati od priče do zahtjeva, pa sve do evidencije kupaca u vašem CRM-u, a sve tretiranjem isporuke softvera kao opskrbnog lanca i praćenjem strategije integracije.

Zamislite, umjesto toga, možete prikazati sve aktivnosti u tijeku koje se izvode za određeni ugovor ili sve značajke planirane za novog kupca - to je rezultat upravljanja lancem opskrbe - vidljivost i sljedivost tijekom cijelog životnog ciklusa.

Alati

Iako se vaš klasični proizvodni alat može sastojati od strojeva za rezanje i peći za toplinsku obradu, lanac opskrbe softverom uključuje klasu alata (različito nazvanih ALM alati, alati životnog ciklusa ili devops alati) koji se koriste za upravljanje raznim fazama isporuke softvera .

Strategija upravljanja tim alatima uvelike se razlikuje od klasičnog pristupa, jer je tehničko i intelektualno ulaganje u alate za razvoj softvera veliko i vrlo utjecajno. Ova vrsta alata također se brzo razvija i vrlo je fragmentirana - današnji Jenkins bit će nekadašnji Hudson. Organizacija mora biti postavljena tako da ima elastičan, ali modularan paket alata, koji timovima pruža ono što im treba, uz zadržavanje fleksibilnosti za prilagodbu.

Nadalje, lanac alata ne može se prekinuti - on mora prenositi informacije natrag nizvodno i nizvodno kroz lanac vrijednosti da bi dobio znanje tamo gdje je potrebno. Ključno je ispitati ovo područje i sa stajališta integracije - kako možete povezati aktivnosti na zadanom sloju s okolinom i podržati aktivnosti upravljanja lancem opskrbe?

Zaključak

Posao je u povijesti odvajao upravljanje tehnologijom od poslovnih linija koje donose prihod, tretirajući ga kao skup pomoćnih aktivnosti vođenih vrijednostima i ciljevima usklađenim s pružanjem usluga. Međutim, u softverski definiranom svijetu taj poslovni model više ne odgovara.

Mogućnost isporuke softvera preselila se iz klasično definiranog prostora podrške i definirala sve primarne aktivnosti koje donose prihod.

Stoga morate preispitati svoj model kao proizvodni sustav i krenuti se prema onom koji bilježi odnose složenosti u svim aktivnostima toka vrijednosti. Lanac opskrbe utjelovljuje to razmišljanje, a kako će se proizvodnja softverskih proizvoda razvijati, zasigurno ćemo vidjeti da je ovaj model zreo.