Programovanie

Budovanie modelu dodávateľského reťazca softvéru

Štandardné zobrazenie hodnotového toku vývoja softvéru sa začína kódovaním a končí sa produkčným kódom. Často vidíte vývojové diagramy, ktoré začínajú „obchodom“ a končia „zákazníkom“. Toto zobrazenie však presne neodráža zložitosť dodávania softvéru v podnikovom meradle.

Ak sa vrátite o krok späť, v dodávaní softvéru zákazníkom vidíte oveľa viac aktivít, ale súčasné prístupy k riadeniu týchto aktivít sú zakorenené v rámci poskytovania služieb, a nie vo výrobných modeloch. Preto nespájajú všetky zapojené činnosti ako jeden systém typu end-to-end.

Model používaný v iných produktových odvetviach je model dodávateľského reťazca a jeho aplikáciou na dodávku softvéru môžete rozšíriť svoje chápanie „systému“ dodávania softvéru bez obmedzenia, čím získate nový pohľad na to, ako ho optimalizovať.

Čo je dodávateľský reťazec?

Dodávateľský reťazec začína myšlienkou, že všetky výrobné a nevýrobné činnosti môžete koordinovať ako jeden systém. Riadenie dodávateľského reťazca sa často chápe ako jednoduché „riadenie dodávateľa“, aj keď v skutočnosti ide iba o jeden aspekt riadenia dodávateľského reťazca (aj keď kritický).

Všetky podniky v oblasti výrobkov a služieb majú dodávateľský reťazec a príslušné činnosti a ich relatívny význam pre systém dodávateľského reťazca sa budú líšiť. Základnou myšlienkou však je, že koordináciou týchto aktivít ako jedného systému získate väčšiu hodnotu ako súčet častí a efektívne odovzdanie tejto hodnoty zúčastneným stranám.

Nasledujúce činnosti sú len niekoľkými dôležitými aspektmi všetkých dodávateľských reťazcov, ale pre softvér sa vykonávajú jedinečným spôsobom:

Plánovanie

V tradičnom dodávateľskom reťazci zahŕňajú plánovacie činnosti koordináciu aktív a optimalizáciu toku procesov na vyváženie ponuky materiálov s dopytom po výrobkoch. V dodávateľskom reťazci softvéru táto koordinácia spočíva v zabezpečení vývoja správneho kódu pre funkcie produktu, ktoré sú najviac potrebné. Vo veľkom rozsahu, so stovkami aplikácií a tisíckami vývojárov softvéru, je to monumentálne úsilie.

Rozsah plánovacích aktivít je často minimalizovaný existujúcimi devops modelmi. Je teda trochu ironické, že veľké podniky, ktoré najviac potrebujú rozvoj, musia zápasiť s právnymi, regulačnými, zmluvnými a zákazníckymi povinnosťami, ktoré robia plánovanie zdĺhavým a zložitým. Prístup k plánovaniu v dodávateľskom reťazci zahŕňa optimalizáciu rozhraní medzi mnohými rôznymi plánovacími úlohami a disciplínami a kľúčovým faktorom úspechu je ich schopnosť efektívne ich integrovať.

Na jednej strane sú agilné metodiky, ktoré riadia vývoj v podniku, často formované vo vnútri vodopádových procesov. Len málo podnikateľov môže uniknúť cyklom fiškálneho plánovania a agilné procesy môžu obsahovať abstrakcie, ktoré sú v rozpore s týmito cyklami; napríklad šprinty sa nemusia zarovnávať s hranicami fiškálnych štvrťrokov. Nedostatok komunikácie a prepojenia medzi vývojovými procesmi využívajúcimi agilné a mimoprodukčné aktivity využívajúce vodopád môžu viesť k plytvaniu a neefektívnosti v celom podnikaní.

Na druhej strane, podnikové plánovanie produktov vždy zahŕňalo rozsiahle systémy riadenia požiadaviek a sledovateľnosti, a to sa v prípade softvérových produktov nelíši. Správa požiadaviek je obzvlášť dôležitá vo vysoko regulovaných odvetviach, ako je zdravotníctvo, kde sa môže vyvinúť softvér pre zdravotnícke pomôcky, ktorý môže pre používateľov znamenať život alebo smrť. Správa požiadaviek zahŕňa špecializované nástroje a metodiky a schopnosť sledovať vernosť a kvalitu ich implementácie počas celého životného cyklu vývoja môže byť pre podnikové softvérové ​​produkty rozhodujúca.

Sourcing

V tradičnom dodávateľskom reťazci zahŕňa nakupovanie komponentov riadenie vzťahov s dodávateľmi a vývoj stratégií obstarávania súčiastok a materiálov. Softvér sa vo veľkej miere spolieha aj na komponenty pochádzajúce z zdroja - podľa nedávneho výskumu spoločnosti Sonatype tvorí v súčasnosti open source väčšinu softvérových produktov: až 80 až 90 percent kódu v moderných aplikáciách pochádza z komponentov open source. A tieto komponenty vytvárajú jedinečné výzvy v oblasti riadenia.

Po prvé, môže byť ťažké rozhodnúť sa, ako určiť kvalitu komponentov, pričom na rozhodovanie ako spotrebný materiál, testovanie, dokumentácia, komunita, podpora a technologické trendy má vplyv veľa faktorov. Jasná stratégia a prístup k výberu komponentov je nevyhnutný.

Po druhé, keďže počet balónov komponentov otvoreného zdroja je náročné, je potrebné vedieť aj to, čo všetko im umožňuje ich efektívna správa. Produktoví manažéri a inžinieri musia venovať osobitnú pozornosť otázkam licencií a bezpečnostným problémom. Stav vašich komponentov otvoreného zdroja sa môže každý deň meniť, pretože sú objavené nové chyby zabezpečenia a správcovia menia svoje stratégie duševného vlastníctva. A zákazníci chcú vedieť presne, čo dostávajú - mnoho veľkých podnikov si nenakúpi softvér bez kusovníka s popisom toho, čo je v krabici. Správa všetkých týchto problémov s otvoreným zdrojom je základným aspektom vývoja softvérových produktov.

Distribúcia

Získanie softvéru do rúk zákazníkom môže zahŕňať komplexnú sieť partnerov každého druhu: nasadenie, distribúcia, integrácia, ďalší predajcovia; dohody všetkého druhu: OEM, licencie, NDA, RFP; stretnutia všetkého druhu: ukážky, POC, prezentácie; a ešte oveľa viac.

Tieto vzťahy slúžia ako vstupy, výstupy a dokonca aj kroky v procese dodávania softvéru. Stav ktoréhokoľvek z týchto vzťahov môže priamo ovplyvniť vývojové činnosti. Bez ich dôkladného riadenia a spojenia s vykonávanou prácou vzniká veľmi hmatateľný odpad.

Predstavte si predstavenie eposu pre perspektívu, ktorá sa potichu stala stratenou príležitosťou, alebo nasadenie funkcie pre partnera, ktorý pred mesiacom zrušil ich dohodu. To sa stáva pravidelne, keď je softvér dodávaný nezávisle od hodnotového toku podniku - keď funkcia dodávania softvéru nie je prepojená s dodávateľským reťazcom.

Ropovod devops musí byť úzko prepojený s partnerstvami, dohodami a cieľmi, pre ktoré sa práca vykonáva. Kód je možné vysledovať a prepojiť ho od príbehu k požiadavke, až k záznamu zákazníka vo vašom CRM, a to všetko tak, že s dodávkou softvéru budete zaobchádzať ako s dodávateľským reťazcom a budete ďalej pokračovať v stratégii integrácie.

Namiesto toho si predstavte, že môžete zobraziť všetky prebiehajúce činnosti vykonávané pre konkrétnu zákazku alebo všetky funkcie plánované pre nového zákazníka - to je výsledok riadenia dodávateľského reťazca softvéru - viditeľnosť a vysledovateľnosť počas celého životného cyklu.

Náradie

Zatiaľ čo vaše klasické výrobné nástroje môžu pozostávať z vysekávacích strojov a pecí na tepelné spracovanie, dodávateľský reťazec softvéru zahrnuje triedu nástrojov (rôzne nazývaných nástroje ALM, nástroje životného cyklu alebo nástroje devops), ktoré sa používajú na správu rôznych fáz dodávky softvéru. .

Stratégia riadenia týchto nástrojov sa veľmi líši od klasického prístupu, pretože technické a intelektuálne investície do nástrojov na vývoj softvéru sú obrovské a veľmi účinné. Tento typ nástroja sa tiež rýchlo vyvíja a je veľmi fragmentovaný - Jenkinsovci súčasnosti budú Hudsonom čias minulých. Je potrebné umiestniť organizáciu tak, aby mala odolný, ale modulárny balík nástrojov, ktorý poskytne tímom to, čo potrebujú, pri zachovaní flexibility pri prispôsobovaní.

Reťazec nástrojov nemožno ďalej odpojiť - na získanie poznatkov tam, kde je to potrebné, je potrebné prenášať informácie späť v smere a dolu v rámci hodnotového reťazca. Je nevyhnutné preskúmať túto oblasť aj z hľadiska integrácie - ako môžete prepojiť aktivity v danej vrstve s okolitými a podpornými aktivitami riadenia dodávateľského reťazca?

Záver

Podnikanie historicky oddeľovalo správu technológií od obchodných oblastí generujúcich príjmy a považovalo ju za súbor podporných aktivít riadených hodnotami a cieľmi zosúladenými s poskytovaním služieb. V softvérovo definovanom svete však tento obchodný model už nesedí.

Schopnosť dodávania softvéru sa presunula z klasicky definovaného priestoru podpory a prišla definovať všetky primárne činnosti generujúce príjmy.

Preto musíte prehodnotiť svoj model ako produkčný systém a posunúť sa k takému, ktorý zachytáva vzťahy zložitosti naprieč aktivitami hodnotového toku. Dodávateľský reťazec stelesňuje toto myslenie a s vývojom výroby softvérových produktov tento model určite dozrejeme.

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