IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

4. diel - Lean Software Development a Kanban

V minulej lekcii, Metodika SCRUM , sme sa pozreli na vývojovú metodiku SCRUM, ktorá dáva dôraz na tímovú spoluprácu a na to, že problém nemôže byť pochopený alebo definovaný vopred.

V tejto lekcii si povieme niečo o "štíhlom" vývoji softvéru a tiež niečo o špeciálnu nástenke, ktorá slúži ako pomôcka pre rôzne metodiky.

Lean Software Development

"Štíhla" výroba je postup, pri ktorom dochádza k odstráneniu nadbytočných častí výroby a sústredí sa iba na tie najpodstatnejšie faktory, ktoré zákazníka naozaj zaujímajú a ktoré naozaj potrebuje. Lean Software Development je akási derivácia tohto súboru pravidiel. Tieto pravidlá sú ľahko aplikovateľná na vývoj softvéru, pri ktorom dochádza k zníženiu programovacieho úsilia, rozpočtovanie a miery vád až o jednu tretinu.

So štíhlou výrobou prišla po konci druhej svetovej vojny firma Toyota. Tejto novej metodike výroby, ktorá vedie k zníženiu plytvania, začali hovoriť Lean Manufacturing.

Princípy

Lean Software development uznáva 7 základných princípov:

1. Eliminácia plytvanie - Plytvanie alebo odpad je všetko, čo zákazníkovi nepridáva hodnotu. K tomu, aby sme eliminovali odpad, musíme odpad prvý rozpoznať. Priemyselný prieskum nám odhalil niekoľko príkladov plytvania:

  • Vytváranie zlého produktu
  • Zlý manažment nevybavených položiek
  • Prepracovanie (v zmysle zahodiť už urobenú prácu a začať od začiatku)
  • Nadbytočne zložité riešenie
  • psychické zaťaženie
  • Čakanie / Multitasking
  • Stratu nabitých vedomostí
  • neefektívne komunikáciu
  • Zjednodušene, ak sa dá cieľ dosiahnuť alebo sa dá daná aktivita obísť, je to plytvanie. K eliminácii plytvania / odpadu sa používa technika, pri ktorej sa mapujú hodnoty položky a procesy, ktoré počas vývoja vznikajú. Ďalším krokom pri tejto technike je určiť si položky a procesy, ktoré sú odpadom (tieto veci majú pri mapovaní najnižšiu hodnotu). Odstraňovanie tohto odpadu by malo prebiehať opakovane tak dlho, kým nie sú aj tie zdanlivo nevyhnutné položky a procesy zlikvidované.

2. Rozvíjanie učenie - Kód sa stavia pred dokumentáciu a plánovanie. Vývoj softvéru je proces, pri ktorom dochádza k neustálemu učeniu pri jednotlivých opakovaniach písania kódu. K tomu väčšinou patria aj písanie dokumentácie a plánovanie toho, čo sa vlastne bude programovať. Pri Lean Development Process dochádza k mene dokumentovanie a k menej plánovania. Namiesto toho sa sústredí na krátke iteračné cykly. S výsledkom týchto krátkych cyklov sa potom ide za zákazníkom, ktorému sa výsledky predvádza a dohaduje sa, čo sa bude diať ďalej. Dochádza k zrýchleniu učenia a to vďaka rýchlejšiemu zisteniu potrieb a nájdenie hlavného problému.

3. Rozhodovanie sa čo najneskôr - Čakáme na čo najviac informácií, než učiníme rozhodnutie. Čím viac komplexný softvér, tým viac musí byť prispôsobený prípadným zmenám. Vytváranie takto prispôsobeného softvéru potom odďaľuje vývoj potrebných a dôležitých častí tohto softvéru. S čakaním na viac informácií a požiadaviek si tak dokážeme ušetriť čas, ktorý by sme venovali do stavby robustného systému, ktorý nemusí byť to, čo zákazník naozaj chce.

4. Dodanie čo najrýchlejšie - Krátke iterácie umožní zákazníkovi lepšie rozhodovanie. Ako tomu bolo už u metodiky Rapid Application Development a SCRUM, tak aj tu platí to, že čím skôr zákazníkovi dodáme ukážku produktu, tým skôr nám povie, čo vlastne chce. Čím kratšie iterácie, tým lepšie učenie (avšak nesmie sa to zase prehnať).

5. Splnomocnenie tímu - Tím by sa mal riadiť sám, manažér by mal byť iba koordinátor. Dôležitá je tiež motivácia. Podobný prístup ako u metodiky SCRUM.

6. Udržiavanie integrity - Integrita vnímanie projektu, refaktoring, ako funguje projekt ako celok, testy. Zákazník potrebuje celkový zážitok so systémom, nielen s jeho časťami. Udržiavanie integrity znamená stavať systém tak, aby všetky časti systému fungovali dobre a to aj v moment, kedy sa spojí dohromady. Toho môže byť dosiahnuté pochopením základného problému a jeho riešením v rovnakú chvíľu, namiesto riešením takéhoto problému sekvenčne. Informácie potrebné na riešenie tohto problému potom prichádzajú po malých častiach, pokiaľ možno pomocou face-to-face komunikácie. Je dôležité, aby takéto odovzdávanie informácií bolo konštantné v oboch smeroch (od zákazníka k vývojárom a naopak). Takéto konštantné odovzdávanie informácií potom eliminuje niekedy až stresujúce množstvo informácií po dlhej odmlke.

7. Mali by sme vidieť celok - "Think big, act small, fail fast, learn rapidly". Moderné softvér systémy nie sú len zlátaniny ich menších dielikov, ale aj produkt interakcií týchto dielikov medzi sebou. Chyby v softvéri sa na seba počas vývoja nabaľujú. Vďaka správnej dekompozícii väčších úloh na malej časti môžeme tieto problémy ľahšie nájsť a eliminovať. Čím väčší systém, tým viac ich do procesu zapojených účastníkov a tým viac vývoja rôznymi tímami. Vďaka toho musíme čo najlepšie stanoviť vzťahy medzi jednotlivými zúčastnenými stranami, aby sme dosiahli systému, ktorého komponenty spolu spolupracujú čo najlepšie. Počas dlhšieho vývoja je preto lepšie mať väčšiu reťazec subdodávateľov, ktorí s nami spolupracujú dlhodobo, než krátkodobé spolupráce. Je tiež veľmi dôležité, aby všetci členovia dobre chápali zásady a princípy tohto "štíhleho" vývoja, pretože zásady Lean vývoja, implementované spoločne, tvoria predpoklady pre úspech.

KANBAN

Kanban rovnako ako Lean Manufacturing pochádza pôvodne z Japonskej Toyoty (preklad slova KANBAN znamená cedule či billboard). Táto metodika je úzko spojená so zásadami Lean (štíhlej) výroby a výrobou Just-in-Time. Je tu veľký dôraz na vizualizáciu. Ľahko je tak rozpoznateľné, ako práca postupuje, koľko je hotovo a čo treba urobiť. Rovnako ako v metodike SCRUM aj tu si pracovníci úlohy vyberajú sami tak, ako im to kapacity umožňujú.

Fungovanie

Kanban nástenku tvorí stĺpce a riadky. Stĺpce môžu byť fázy vývoja, v ktorých sa položka nachádza. Jednotlivé položky sa na Kanban nástenke posúvajú v rozmedzí riadku. Akonáhle niekto vyrieši úlohu spojený s danou položkou na danej pozícii, posunie položku zase o políčko v stĺpci ďalej. Pri používaní Kanban je dôraz kladený na obmedzenie súčasne vykonávanej práce, tzv. W ork- Aj n- P rogress (WIP). Ak je napríklad v jednom stĺpci 5 položiek a limit WIP je taktiež 5, nemôžu byť do tohto stĺpca presunuté ďalšie položky. Kolegovia tak síce nemôžu posunúť svoju prácu z predchádzajúceho stĺpca, ale vďaka vizualizované nástenke vidí, kde je problém a môžu pomôcť pri jeho riešení:

Metodiky vývoja softvéru

Ukážka Kanban nástenky

Záver

Lean Software Development a Kanban sa bežne používa sa spojenie s ďalšími metodikami ako napríklad SCRUM, ktorú Kanban vylepšuje.

V nasledujúcom kvíze, Kvíz - Metodiky RAD, DSDM, SCRUM, Lean a Kanban, si vyskúšame nadobudnuté skúsenosti z predchádzajúcich lekcií.


 

Predchádzajúci článok
Metodika SCRUM
Všetky články v sekcii
Metodiky vývoja softvéru
Preskočiť článok
(neodporúčame)
Kvíz - Metodiky RAD, DSDM, SCRUM, Lean a Kanban
Článok pre vás napísal Lukáš Grossmann
Avatar
Užívateľské hodnotenie:
Ešte nikto nehodnotil, buď prvý!
Aktivity