Programiranje

Izdelava modela dobavne verige programske opreme

Standardni prikaz toka vrednosti razvoja programske opreme se začne s kodiranjem in konča s proizvodno kodo. Pogosto vidite diagrame devops, ki se začnejo s »posel« in končajo s »kupec«. Vendar ta prikaz ne odraža natančno zapletenosti dobave programske opreme v podjetju.

Ko stopimo korak nazaj, opazimo veliko več dejavnosti, povezanih z dobavo programske opreme strankam, vendar sedanji pristopi k upravljanju teh dejavnosti temeljijo na okvirih za zagotavljanje storitev in ne na proizvodnih modelih. Kot taki ne povezujejo vseh vključenih dejavnosti kot en sam celovit sistem.

Model, ki se uporablja v drugih proizvodnih panogah, je model dobavne verige in z uporabo tega modela za dostavo programske opreme lahko svoje razumevanje sistema za dostavo programske opreme razširite tudi nad devops, tako da dobite nov vpogled v to, kako ga optimizirati.

Kaj je dobavna veriga?

Dobavna veriga se začne z idejo, da lahko vse proizvodne in neproizvodne dejavnosti usklajujete kot en sam sistem. Upravljanje dobavne verige je pogosto napačno razumljeno kot preprosto »upravljanje z dobavitelji«, kadar je to v resnici le en vidik upravljanja dobavne verige (čeprav kritičen).

Vsa podjetja z izdelki in storitvami imajo oskrbovalno verigo, vključene dejavnosti in njihov relativni pomen za sistem dobavne verige pa se bodo razlikovali. Ključna ideja pa je, da z usklajevanjem teh dejavnosti kot enotnega sistema dobite vrednost, večjo od vsote delov, in učinkovito prispevate to vrednost zainteresiranim stranem.

Naslednje dejavnosti so le nekateri pomembni vidiki vseh oskrbovalnih verig, vendar se programska oprema izvaja enolično:

Načrtovanje

V tradicionalni dobavni verigi dejavnosti načrtovanja vključujejo usklajevanje sredstev in optimizacijo pretoka procesov za uravnoteženje ponudbe materiala s povpraševanjem po izdelkih. V dobavni verigi programske opreme to usklajevanje vključuje zagotavljanje pravilne kode za funkcije izdelka, ki so najbolj potrebne. V velikem obsegu je to s stotimi aplikacijami in tisoči razvijalci programske opreme izjemno.

Obseg dejavnosti načrtovanja pogosto zmanjšajo obstoječi modeli devops. Zato je nekoliko ironično, da se morajo velika podjetja, ki najbolj potrebujejo devops, spopadati s pravnimi, regulativnimi, pogodbenimi in strankinimi obveznostmi, zaradi katerih je načrtovanje dolgotrajno in zapleteno. Pristop dobavne verige k načrtovanju vključuje optimizacijo vmesnikov med številnimi različnimi vlogami načrtovanja in disciplinami, ključni dejavnik uspeha pa je, da jih lahko učinkovito vključimo.

Na eni strani so gibčne metodologije, ki vodijo razvoj podjetja, pogosto vključene v slapove procese. Le malo podjetij se lahko izogne ​​ciklom fiskalnega načrtovanja, gibčni procesi pa lahko vsebujejo abstrakcije, ki so v nasprotju s temi cikli; na primer, sprinti se morda ne bodo poravnali z mejami fiskalnih četrtletij. Pomanjkanje komunikacije in povezav med razvojnimi procesi, ki uporabljajo agilne in neprodukcijske dejavnosti s slapom, lahko privede do izgube in neučinkovitosti poslovanja.

Po drugi strani pa je načrtovanje izdelkov v podjetjih vedno vključevalo obsežne sisteme za upravljanje zahtev in sledljivost, to pa se ne razlikuje pri programskih izdelkih. Obvladovanje zahtev je še posebej pomembno v visoko urejenih panogah, kot je zdravstveno varstvo, kjer se lahko razvije programska oprema za medicinske pripomočke, ki lahko pomenijo življenje ali smrt uporabnikov. Upravljanje zahtev vključuje posebna orodja in metodologije, sposobnost sledenja zvestobi in kakovosti njihovega izvajanja skozi razvojni življenjski cikel pa je lahko ključnega pomena za programske izdelke podjetja.

Nabava

V tradicionalni dobavni verigi dobavne komponente vključujejo upravljanje odnosov z dobavitelji in razvoj strategij nabave delov in materialov. Programska oprema je v veliki meri odvisna tudi od komponent, ki jih nabavlja - po nedavnih raziskavah podjetja Sonatype je zdaj odprta koda večina programskih izdelkov: od 80 do 90 odstotkov kode v sodobnih aplikacijah je iz odprtokodnih komponent. In te komponente ustvarjajo edinstvene izzive upravljanja.

Prvič, težko se je odločiti, kako določiti kakovost komponent, pri čemer številni dejavniki vplivajo na odločitve, kot so potrošnja, testiranje, dokumentacija, skupnost, podpora in tehnološki trendi. Jasna strategija in pristop k izbiri komponent je nujna.

Drugič, saj je število balonov z odprtokodnimi komponentami celo izziv, če vemo, kaj vse jim je omogočeno pri učinkovitem upravljanju z njimi. Vodje izdelkov in inženirji morajo biti zelo pozorni na vprašanja glede licenciranja in varnostna vprašanja. Stanje vaših odprtokodnih komponent se lahko dnevno spreminja, ko odkrijejo nove ranljivosti in vzdrževalci spremenijo svoje strategije intelektualne lastnine. In kupci želijo natančno vedeti, kaj prejemajo - veliko velikih podjetij ne bo kupilo programske opreme brez blaga, ki opisuje, kaj je v škatli. Obvladovanje vseh teh odprtokodnih vprašanj je osrednji vidik razvoja programskih izdelkov.

Porazdelitev

Pridobivanje programske opreme v roke strankam lahko vključuje zapleteno mrežo partnerjev vseh vrst: uvajanje, distribucija, integracija, prodajalec; sporazumi vseh vrst: proizvajalci originalne opreme, licence, NDA, RFP; sestanki vseh vrst: predstavitve, PoC, predstavitve; in še veliko več.

Ti odnosi služijo kot vhodi, izhodi in celo koraki v postopku dostave programske opreme. Stanje katerega koli od teh odnosov lahko neposredno vpliva na razvojne dejavnosti. Brez njihovega natančnega upravljanja in povezovanja z delom, ki se opravlja, pride do zelo oprijemljivih odpadkov.

Predstavljajte si, da bi predstavili epsko napoved za potencialno osebo, ki je tiho postala izgubljena priložnost, ali pa uvedli funkcijo za partnerja, ki je pred mesecem odpovedal dogovor. To se redno dogaja, kadar je programska oprema dostavljena neodvisno od poslovnega toka vrednosti - kadar funkcija dostave programske opreme ni povezana z dobavno verigo.

Cevovod devops mora biti tesno povezan s partnerstvi, dogovori in cilji, za katere se delo izvaja. Kodo je mogoče izslediti in jo povezati od zgodbe do zahteve do zapisa kupca v vašem CRM, vse tako, da dobavo programske opreme obravnavate kot dobavno verigo in sledite strategiji integracije.

Namesto tega si predstavljajte, da lahko prikažete vse tekoče dejavnosti, ki se izvajajo za določeno pogodbo, ali vse funkcije, načrtovane za novo stranko - to je rezultat upravljanja dobavne verige programske opreme - vidnost in sledljivost skozi celoten življenjski cikel.

Orodja

Medtem ko lahko vaše klasično proizvodno orodje sestavljajo stroji za rezanje in peči za toplotno obdelavo, dobavna veriga programske opreme vključuje vrsto orodij (različno imenovana ALM orodja, orodja življenjskega cikla ali devops orodja), ki se uporabljajo za upravljanje različnih stopenj dobave programske opreme. .

Strategija upravljanja teh orodij se zelo razlikuje od klasičnega pristopa, ker so tehnične in intelektualne naložbe v orodja za razvoj programske opreme velike in zelo učinkovite. Tudi tovrstno orodje se hitro razvija in je zelo razdrobljeno - današnji Jenkins bo nekdanji Hudson. Organizacija mora biti postavljena tako, da ima odporen, a modularen nabor orodij, ki ekipam zagotavlja tisto, kar potrebujejo, hkrati pa ohranja prilagodljivost pri prilagajanju.

Poleg tega verige orodij ni mogoče odklopiti - informacije mora pretakati nazaj navzgor in navzdol po vrednostni verigi, da pridobi znanje, kjer je to potrebno. To področje je ključnega pomena preučiti tudi z vidika integracije - kako lahko dejavnosti na danem sloju povežete z okolico in podpirate dejavnosti upravljanja dobavne verige?

Zaključek

Podjetje je v preteklosti ločilo tehnološko upravljanje od poslovnega področja, ki ustvarja prihodek, in ga obravnavalo kot sklop podpornih dejavnosti, ki jih vodijo vrednote in cilji, usklajeni z zagotavljanjem storitev. V programsko opredeljenem svetu pa ta poslovni model ne ustreza več.

Zmogljivost dostave programske opreme se je premaknila iz klasično določenega prostora za podporo in je začela definirati vse primarne dejavnosti, ki ustvarjajo dohodek.

Zato morate svoj model premisliti kot proizvodni sistem in se premakniti k modelu, ki zajema razmerja zapletenosti med dejavnostmi toka vrednosti. Oskrbovalna veriga pooseblja to razmišljanje in z razvojem proizvodnje programskih izdelkov bomo ta model zagotovo videli zrelega.

$config[zx-auto] not found$config[zx-overlay] not found