Blog Vývoj Prečo je správa verzií dôležitá v cykle vývoja softvéru

Prečo je správa vydávania dôležitá v cykle vývoja softvéru

AgileVývojRiadenie projektuScrumVývoj softvéru

Zdieľať

Prihláste sa na odber najnovších správ spoločnosti Altamira

Konečným cieľom každého vývoja softvéru je úspešné vydanie hotového riešenia. Vydanie je jednou z najdôležitejších a najočakávanejších udalostí v životnom cykle vývoja softvéru. Príprava na vydanie si môže vyžiadať veľa času a úsilia, pričom sa do nej zapojí celý tím a zainteresované strany. Otázka teda znie - môžete si prípravu na vydanie uľahčiť? Sme si istí, že je to možné, ak celý proces riadite správne a spolupracujete so skúseným tímom odborníkov. 

Riadenie uvoľňovania pomáha efektívne plánovať prácu, a tým sa pripraviť na očakávaný výsledok. Pre používateľov produktu je to určitý druh podpory kvality a záruka získania ďalších zlepšení. Okrem toho, aby ste predišli nákladným oneskoreniam, náhlym chybám alebo omylom a udržali hladký priebeh procesov vo vašej organizácii, musíte investovať do efektívneho riadenia vydávania. 

V tomto článku by sme sa chceli venovať tomu, čo je to efektívne riadenie vydávania verzií a ako zapadá do vývojového cyklu. Popíšeme tiež, kto sa podieľa na procese vydávania a akým ukazovateľom by ste mali venovať pozornosť. Takže bez zbytočných rečí začnime! 

Čo znamená skratka release management?

Vydanie je komplexný proces poskytovania rozsahu nového produktu, plánovaných zmien alebo konkrétnej funkcie, ktorá prináša hodnotu pre klientov a v dôsledku toho aj pre podnik. Celkovým cieľom je realizovať myšlienku od jej vzniku až po moment jej úplnej realizácie a uvoľnenia na trh. Pre manažéra je úloha podobná úlohe questu: prejsť potrebné zmeny všetkými fázami, obísť možné úskalia, dodržať stanovený časový rámec a rozpočet.

Stojí za to zvážiť, že riadenie vydania v širšom zmysle môže zahŕňať ďalšie činnosti na oznámenie aktualizovaného produktu, spustenie reklamných kampaní, ako aj školenie špecialistov podpory atď.

Pripravili sme vizuálnu schému, ktorá znázorňuje hlavné kroky vývojového cyklu softvéru a opisuje hlavné činnosti, ktoré sa v každom z nich vykonávajú. Ako vidíte, vývoj akéhokoľvek riešenia, dokonca aj toho základného, si vyžaduje veľa práce a bez správneho riadenia sa táto úloha ešte viac sťažuje.

 

Ako je organizovaný cyklus riadenia vydávania softvéru

Ako už bolo spomenuté, riadenie vydávania softvéru je komplexný proces, ktorý v sebe spája plánovanie, implementáciu, testovanie a nasadenie zmien softvéru, ako aj kontrolu ich kvality počas ďalšieho používania. Pozrite si nasledujúci obrázok, aby ste celý cyklus pochopili o niečo lepšie. 

Každý krok riadenia vydania je kľúčový a má určité takzvané pravidlá, ktoré by ste mali dodržiavať. Bez ich znalosti môžete na ceste k vydaniu aplikácie čeliť mnohým problémom. Aby ste sa im teda vyhli, pozrime sa bližšie na jednotlivé kroky a činnosti, ktoré si vyžadujú.

#Plán č. 1

Hoci je nasadenie (release) záverečnou časťou životného cyklu vývoja softvéru, správa verzií je proces, ktorý sa začína od samého začiatku - plánovaním. Plánovanie vydania je proces určovania požadovaného výsledku jedného alebo viacerých vydaní a maximalizácie šancí na jeho dosiahnutie. Pri plánovaní sa stanovujú konkrétne, realistické, dosiahnuteľné a merateľné ciele.

At this stage, the necessary efforts are being analyzed, the available resources are taken into account, as well as competencies, and time necessary for implementation. The compatibility of the required changes with the existing functionality should also be checked. The outcome of the planning will be a release plan or product roadmap with the scope of work to be done till specified delivery dates, taking into account the optimistic and pessimistic forecast, as well as possible risks and mitigation plan to address them.

Plány by sa mali pravidelne aktualizovať a šíriť, aby sa vytvorili správne očakávania všetkých zainteresovaných strán v projekte. Tu je uvedený spôsob, ako rje možné plánovať vydania:

  • Podľa funkcií (každá funkcia sa vydáva samostatne, hneď ako je pripravená);
  • Podľa šprintov (na konci každého šprintu sa plánuje uvoľnenie prírastku šprintu); 
  • Podľa agilného vlaku na vydávanie verzií ktorý zvyčajne používa niekoľko tímov, ktoré spolupracujú a synchronizujú sa počas celého procesu vydávania. Vezmime si ako príklad spoločnosť Spotify. Tá vykonáva vydania pomerne často, a to na základe praxe release train. Ako naznačuje názov tejto praxe, release sa veľmi podobá vlaku: tí, ktorí ešte nedokončili svoju prácu, čakajú na ďalší release. Výhody tohto prístupu spočívajú v tom, že tím, ktorému sa nedarí, neodkladá dodanie produktu a nesnaží sa presadiť nedokončené úlohy.

Zvyčajne to závisí od projektu (jeho konkrétnych potrieb a požiadaviek), kedy a ako uvoľniť funkcie. Uvoľňovanie sa môže vykonávať aj na požiadanie alebo samostatne. Preto je lepšie prediskutovať s tímom, akú stratégiu použijete, aby ste sa vyhli ďalším nedorozumeniam. 

#2 Implementácia

Vývojový tím pracuje na vytváraní softvéru na základe používateľských príbehov a akceptačných kritérií. V Scrume sa plánovanie vydania vykonáva iteratívne, často na konci šprintu, keď je jasné, aký pokrok sa dosiahol.

#3 Testovanie

Konkrétna verzia, ktorá obsahuje zmeny/funkcie/opravy chýb, nebude nasadená, kým nebudú zohľadnené všetky pripomienky a kritériá testovania. Verzia s konkrétnym číslom verzie prechádza niekoľkými krokmi počnúc jednotkovým testovaním, integračným testovaním a končiac systémovým testovaním, pričom sa zameriava na funkčné a nefunkčné potreby, vykonáva pozitívne aj negatívne testovacie prípady.

#4 Nasadenie

To znamená všetky činnosti, ktoré pripravujú softvérový systém na používanie. Vo všeobecnosti proces nasadenia pozostáva z niekoľkých vzájomne súvisiacich činností s možnými prechodmi medzi nimi. Táto činnosť môže prebiehať zo strany vývojára alebo koncového používateľa. Keď používateľ nasadzuje verziu, vo všeobecnosti sa to opisuje ako inštalácia softvéru. "Nasadenie" možno vo všeobecnosti interpretovať ako posunutie a organizáciu práce s kódom v konkrétnom prostredí.

#5 Monitorovanie

V tomto okamihu sú zmeny odovzdané do produkcie. Akékoľvek problémy alebo chyby zistené v produkčnom prostredí je tiež potrebné oznámiť zainteresovaným stranám a zodpovedajúcim spôsobom ich opraviť v ďalšej verzii.

Ako riadiť vydávanie verzií v agilnom svete

Na základe našich skúseností môžeme povedať, že je lepšie vykonávať riadenie projektov pomocou agilnej metodiky. Poďme teda diskutovať o tom, ako funguje agilný prístup k riadeniu vydávania verzií. V prvom rade je potrebné spomenúť, že tento prístup sa nazýva kontinuálny vývoj. 

Kontinuálny vývoj je schopnosť rýchlo a spoľahlivo začleniť všetky zmeny (ako sú nové funkcie, zmeny konfigurácie, opravy chýb, experimenty) do produkcie pomocou automatizácie procesov. Tradičný prístup k vydávaniu verzií predpokladá, že budete robiť veľké vydania. V prípade agilného vývoja však budete pracovať s malými a častejšími vydaniami, pretože sú oveľa bezpečnejšie a lepšie ako veľké vydania. 

Takýto prístup k vydaniam pomáha:

  • minimalizovať chyby a nedostatky aplikácií;
  • ľahko prispôsobiť a reagovať na všetky zmeny;
  • poskytovať používateľom aktualizácie skôr;
  • dostávať včasnú spätnú väzbu o kvalite, spokojnosti a stabilite softvéru.

A teraz si podrobne preberieme metodiku CI/CD (continuous integration & delivery). Pozrite si obrázok nižšie a podrobné vysvetlenia jednotlivých uvedených procesov. 

#1 Kontinuálna integrácia znamená, že všetky zmeny vykonané v kóde sú zlúčené do centrálneho úložiska (operácia sa nazýva "zlúčenie"). Zlučovanie sa môže uskutočniť niekoľkokrát denne a po každom zlúčení v konkrétnom projekte sa vytvorí zostavenie a automaticky sa spustí testovanie.

#2 Kontinuálne dodávanie má za cieľ zabezpečiť, aby sa aktualizácie softvéru uskutočňovali nepretržite. Tento súbor operácií zaručuje rýchle nasadenie do produkcie bez zmeny existujúcej funkčnosti. Napriek tomu je vždy potrebné vychádzať z potrieb podniku a procesov implementácie novej funkcionality.

Dôležitá poznámka je, že ak vývoj konkrétnej funkcie nebol dokončený alebo ešte nebola otestovaná, technika ako prepínanie funkcií sa používa. Znamená to, že vývojári skryjú funkciu tak, aby sa neobjavila v používateľskom rozhraní. Môže to ušetriť čas pri vytváraní a udržiavaní ďalšej vetvy pre túto funkciu, ako aj pri riešení konfliktov po zlúčení. Týmto postupom zabezpečíme, že kód je takmer vždy pripravený na vydanie.

#3 Nepretržité nasadenie je zodpovedné za to, aby sa všetky nové funkcie po úspešnom testovaní okamžite automaticky dostali do živého prostredia.

Aby ste dokázali držať krok s dopytom zákazníkov, musíte vytvoriť rozvodnú sieť. Musíte mať všetko pod kontrolou verzií. Musíte automatizovať celý proces vytvárania prostredia. Potrebujete nasadzovací kanál, v ktorom môžete vytvárať testovacie a produkčné prostredia a potom do nich nasadzovať kód úplne na požiadanie.

Erik to Grasshopper, The Phoenix Project © Scaled Agile, Inc.

#4 DevOps je súbor postupov, ktoré spájajú vývoj softvéru (Dev) a prevádzku IT (Ops). Jeho cieľom je skrátiť životný cyklus vývoja systémov a zabezpečiť kontinuálne dodávanie s vysokou kvalitou softvéru.

Model DevOps zabezpečuje produktívne pracovné prostredie tým, že spája vývojové a prevádzkové tímy. Členovia oboch tímov môžu navzájom koordinovať svoju prácu a spolupracovať, čo pomáha znižovať riziká v celom procese vydávania verzií. Správne nastavený proces pomáha včas odhaliť, analyzovať a odstrániť prípadné chyby v ktorejkoľvek konkrétnej fáze: pri plánovaní, vývoji, budovaní alebo uvoľňovaní zmien pred ich nasadením do živého prostredia.

Spolupráca medzi vývojovými tímami a tímami prevádzky IT poskytuje včasné riešenia problémov s aktualizáciami, zmenami v nastaveniach prevádzkového softvéru, bezpečnostných systémov alebo infraštruktúry. Výsledkom je, že koncový používateľ získava výhody aktualizovaného jemného produktu v krátkom čase bez akýchkoľvek oneskorení alebo kritických problémov.

Odborníci zapojení do procesu uvoľňovania

Proces vydávania si vyžaduje neustálu pozornosť mnohých špecialistov, medzi ktorých patria vývojári, inžinieri QA, inžinieri DevOps a dokonca aj vlastník produktu. Všetci vykonávajú určitý súbor úloh a vďaka efektívnej spolupráci je všetko hotové načas a každý problém sa ľahko odstráni. Poďme teda zistiť, čo každý špecialista robí a ako to ovplyvňuje proces vydávania.

Vlastník produktu

Ide o hlavnú zainteresovanú stranu projektu, ktorá komunikuje hlavné ciele, víziu produktu a dodávanú hodnotu. Zúčastňuje sa na celom procese s cieľom zabezpečiť konzistentnosť pri dosahovaní výsledku, zabezpečiť správne a jednoznačné pochopenie konečného cieľa, predvídať a eliminovať prípadné prekážky a znížiť riziká. Zabezpečuje tiež, aby konečný produkt spĺňal obchodné požiadavky, a pomáha organizovať akceptačné testovanie. 

GBKSOFT
Dôležitý pojem

Akceptačné testovanie je úroveň testovania softvéru, ktorej cieľom je zistiť, či vykonané zmeny spĺňajú obchodné požiadavky a prinášajú hodnotu pre koncových používateľov. Akceptačné testovanie je štvrtá a posledná úroveň testovania softvéru vykonávaná po testovaní systému a pred sprístupnením systému na skutočné používanie. Môžu ho vykonávať členovia organizácie, ktorá softvér vyvinula, alebo koncoví používatelia známi ako beta testeri.

Vývojový tím

Vývojový tím je kľúčovým hráčom pri riadení vydávania verzií, pretože sa podieľa na väčšine procesov v životnom cykle produktu. Odhadujú počiatočné náklady a čas, definujú základné požiadavky, vytvárajú dokumentáciu a vyvíjajú funkcie. Za pochodu tiež odstraňujú všetky problémy a zabezpečujú, aby riešenie fungovalo tak, ako má. 

Inžinieri DevOps

Keď hovoríme o agilných metodikách, zvyčajne používame termín DevOps inžinier. DevOps využíva súbor postupov, ktoré spájajú vývoj softvéru a prevádzku IT, ktorých cieľom je skrátiť životný cyklus vývoja systémov a zabezpečiť nepretržité dodávky s vysokou kvalitou softvéru. 

Inými slovami, špecialista DevOps optimalizuje procesy automatizáciou a integráciou s vývojovým tímom s cieľom spoľahlivo a rýchlo vytvárať, testovať a dodávať softvér.

Špecialisti QA

Ich hlavnou úlohou je zabezpečiť, aby vydanie spĺňalo stanovené kritériá a požiadavky. Existujú automatizovaní a manuálni inžinieri QA, ktorí vykonávajú všetky potrebné kontroly rôznymi spôsobmi (pomocou napísaných scenárov alebo manuálnou kontrolou konektivity, funkčnosti atď.). 

Existuje tiež súbor kľúčových úloh, ktoré manažér zohľadňuje počas procesu uvoľňovania. Je zodpovedný za:

  • Monitorovanie rýchlosti a kvality nasadenia;
  • Byť proaktívny, nie reaktívny a riadiť možné riziká;
  • Nie "rozbitie" existujúcich funkcií;
  • Nastavenie plánu na spätné vrátenie; 
  • Flexibilita pri nových zmenách;
  • Zosúladenie termínu dodania produktu s trvaním procesu vydania;
  • Dokončenie stabilných verzií, a tým zníženie počtu nestabilných vetiev a verzií systému git.

Hlavné metriky riadenia vydania

Ako každá iná fáza vývoja, aj správa vydania má svoje výzvy. Preto je dôležité poznať kľúčové ukazovatele, ktoré určujú, či všetko prebieha v poriadku, alebo je potrebné vykonať ďalšie kroky, aby ste dali všetko do poriadku. Zozbierali sme niekoľko hlavných metrík správy vydaní, ktoré by mal poznať každý manažér.

Chyby vs. funkcie

Je potrebné vždy sledovať, na čo tím vynakladá svoje úsilie. Zvyčajne by nemalo dôjsť k situácii, že niekoľko vydaní za sebou obsahuje len opravy chýb, aktualizácie konfigurácie a neprináša žiadne nové vlastnosti alebo funkcie. Napriek tomu sa tím musí prispôsobiť zlatej strednej ceste, rešpektujúc agilnú hodnotu - reagovať na zmeny namiesto dodržiavania plánu, keď niekedy bolo potrebné namiesto plánovaných funkcií čo najskôr dodať hodnotné zmeny.

Okrem toho je dôležité sledovať počet a závažnosť chýb v konkrétnej súčasti softvéru pri každom vydaní. Vďaka tomu budeme vedieť, že táto funkcia si vyžaduje dodatočné testovanie a/alebo určité zmeny. To môže ovplyvniť ďalšiu metriku, odhad nákladov na vydanie.

Odhadovaný vs. skutočný čas odstávky 

Rozdiely medzi odhadovaným časom výpadku verzie a skutočným časom výpadku verzie počas niekoľkých verzií môžu pomôcť identifikovať úzke miesta a optimalizovať ich spresnením plánov budúcich verzií. 

Počet vydaní dodaných podľa plánu

Ak sa zmeny softvéru nedodávajú tak, ako sa očakávalo, mala by sa identifikovať, posúdiť a riešiť príčina. Je to dôležitá súčasť neustáleho zlepšovania. Je potrebné odpovedať na nasledujúce otázky:

  • O koľko sa vydanie oneskorilo?
  • V akom štádiu je vydanie?
  • Aký je dôvod oneskorenia? (Ideálne je, ak sa dôvod oneskorenia zistí vopred, aby bol čas na reakciu, informovanie zainteresovaných strán a prijatie potrebných opatrení.)
  • Čo potrebuje tím, aby sa vrátil na správnu cestu?

ČASTO KLADENÉ OTÁZKY

Sú to približné vydanie projektu, plány pre každé vydanie, následné iterácie a ich plány, vývoj funkcií v rámci každej iterácie a jednotlivé úlohy, ktoré sú potrebné na vývoj a dodanie funkcií.
Všetky procesy sú riadené manažérom, ktorý je zodpovedný za plánovanie, riadenie a koordináciu uvoľňovania. Táto osoba má tiež pod kontrolou všetky riziká a včas rieši problémy, aby nedochádzalo k oneskoreniu vydania a posunom harmonogramu.
DevOps musí byť schopný efektívne komunikovať, zlepšiť viditeľnosť v rámci CI/CD pipeline, sústrediť sa na rýchle budovanie nových funkcií a služieb bez toho, aby sa znížila kvalita riešenia.
Vydanie znamená oficiálne uvedenie hotového riešenia na trh, zatiaľ čo keď hovoríme zostavenie, máme na mysli vyvinutú verziu softvéru, ktorá je daná testerom a kontroluje sa.

Zhrnutie

Každá fáza riadenia vydania projektu je veľmi dôležitá. Dobre zavedené procesy, spolupráca medzi tímami a zainteresovanými stranami, pozornosť venovaná výsledkom v každej fáze vývojového cyklu zabezpečujú včasné a kvalitné dodanie softvérových zmien.

Každý detail by sa mal zohľadniť, pretože ak sa s rizikami nepočítalo vo fáze plánovania alebo sa požiadavky formulovali nesprávne, môže sa dodanie riešenia a jeho vydanie oneskoriť. Je dôležité zvážiť všetky aspekty procesu uvoľnenia a oznámiť ich každému členovi tímu. A práve na to slúži riadenie uvoľňovania projektu. 

Zanechať komentár

Prečo môžete dôverovať spoločnosti Altamira

V spoločnosti Altamira je dôvera založená na odborných znalostiach. Poskytujeme obsah, ktorý rieši hlavné výzvy nášho odvetvia, pretože im hlboko rozumieme. Naším cieľom je poskytnúť vám relevantné poznatky a vedomosti, ktoré presahujú povrch a umožňujú vám prekonávať prekážky a dosahovať pôsobivé výsledky. Okrem postrehov, tipov a odborných prehľadov sa snažíme stať sa vaším spoľahlivým technickým partnerom, pričom na prvé miesto kladieme transparentnosť, odborné znalosti v oblasti IT a agilný prístup.

Redakčná politika
Prihláste sa na odber najnovších správ spoločnosti Altamira

Tešíme sa na vašu správu!

  • Naši odborníci sa vám ozvú do 24 hodín a poskytnú vám bezplatnú konzultáciu.
  • Všetky poskytnuté informácie sú dôverné a podliehajú NDA.