Jak Pracujeme

Zde se můžete předem seznámit s tím, jak bude naše spolupráce fungovat.

Než se pustíme do toho, jak Moravio pracuje, rádi bychom Vám krátce nastínili dvě metodiky vývoje software.

Vývoj s pomocí Waterfall metodiky

Metodika vývoje software používaná již dlouhé desetiletí. Obecně lze tuto metodiku poznat dle jejího klasického průběhu (obvykle trvající několik měsíců nebo i déle): soupis požadavků klientem > analýza požadavků dodavatelem > vytvoření finální specifikace > uzavření smlouvy o dílo > implementace > testování > nasazení u klienta.

Tradičním lákadlem waterfall projektů je pro klienty fixní cena a určená doba dodání. Nicméně čím větší je projekt, tím se tyto dva faktory hůře odhadují i při sebelepší počáteční specifikaci. Riziko víceprací, změn v projektu, které musí být zvlášť zanalyzované a naceněné, prodlužování dodání a změn zadání je extrémně velké. To ve výsledku znamená větší náklady a delší dobu dodání projektu pro klienta a často také ztrátovost na straně dodavatele.

Vývoj s pomocí agilních metodik

Agilní metodika se všeobecně snaží být mnohem více flexibilní a doručovat v kratších úsecích (většinou dva týdny) maximální hodnotu. Je postavena na tom, že celý projekt je budován iterativně a rychle se adaptuje na změny v businessu klienta. Agilní metodika pracuje s klientem v reálném čase, a proto je zapotřebí určit na straně klienta osobu, která má schvalovací právo a vystupuje v projektu jako hlavní klientův hlas. Pro klienta to má několik výhod:

  • maximální přizpůsobení potřebám klienta,

  • průběžné nasazování na produkci a průběžné testování,

  • menší množství chyb,

  • větší kontrolu nad celým projektem a jeho směrování,

  • rychlejší dodání projektu na trh.

    Jak tedy pracujeme my v Moravio?

    Běžná praxe a zkušenosti na českém i zahraničním trhu nám ukázaly, že čistě se ani jedna z těchto metodik aplikovat nedá. Neexistuje waterfall bez změn, úprav a víceprací, stejně tak není přijímaný agilní vývoj bez cenového a časového odhadu. Jako nejefektivnější se zatím prokázala kombinace s převahou agilní metody. My v Moraviu pracujeme pomocí agilní metodiky zvané Scrum a tu a tam ji máme mírně zahnutou podle dosavadních zkušeností na českém a zahraničním trhu.

Analýza

S klientem se zpravidla na začátku spolupráce domluvíme na analýze, díky které budeme mít my i klient lepší představu o tom, jakého rozsahu by projekt mohl být. Stanovíme velmi hrubý časový i finanční odhad projektu (v řádech stovek procent) a pokud se naše odhady setkají s klientovými možnostmi a očekáváním, pustíme se do tvorby takzvaného backlogu. V tomto backlogu jsou všechny takzvané user stories, které jsme společně s klientem vytvořili. User story si lze představit jako krátký popis, jak má daná část nebo funkce projektu fungovat nebo co je očekávaným výstupem a popřípadě kdo s danou částí nebo funkcí interaguje.

Po vytvoření počátečního backlogu se s klientem domluvíme, případně doporučíme, čím začít první cyklus.

Vývoj

Vývoj probíhá v rámci dvoutýdenních cyklů, tzv. Sprintů. V každém cyklu probíhá plánování úkolů z Backlogu, samotný vývoj, testování, dokumentace, nasazení u klienta a DEMO s klientem včetně retrospektivy. To umožńuje nasazovat konkrétní, předem domluvené funkce či části projektu. Postupně tak budujeme celý projekt a klient každé dva týdny reálně vidí, co je nového, jak se to používá a jak to zapadá do jeho projektu. Díky tomu je možné také pružně reagovat na změny, protože si klient vše dobře představí.

Code-review

Code-review je pro nás samozřejmě standard. Jedná se o jednu z možností, jak neustále zachovávat potřebnou kvalitu a tím danou hodnotu pro klienta. Code-review je kontrola zdrojového kódu jednoho vývojáře druhým vývojářem. Pokud je při code-review nalezeno cokoliv, co neodpovídá našim standardům, pak je takový kód vrácen k dopracování. Protože code-review probíhá kontinuálně, případné přepracování nemá vliv na časový rámec vývojového cyklu.

Testování

Moderní software se dnes neobejde bez testování. My v Moraviu testujeme manuálně i automaticky. Na každém projektu provádíme manuální testování a vytváříme automatizované smoke testy. Rozsah dalších testů (selenium, regresní, akceptační, unit, javascript, E2E, API a jiné.) vždy záleží na domluvě s klientem a povaze a velikosti jeho projektu. Manuální a hlavně automatizované testy velkou měrou přispívají k celkové kvalitě projektu a hlavně udržení této kvality.

Nasazování projektů

Všechny projekty spravujeme pomocí služby GitLab. To nám umožňuje správně verzovat, kontrolovat veškeré úpravy a mít nad projektem maximální přehled. V rámci GitLab máme taktéž vytvořené automatické deployment plány pro každý projekt pro nasazování veškerých změn. Všechny nové projekty (pokud klient nemá jiný požadavek) hostujeme v cloudu. Nejvíce zkušeností máme z Google Cloud Computing (GCP), nicméně vyznáme se i v Amazon Web Services (AWS), popřípadě Microsoft Azure.

Testovací a produkční prostředí

Každý náš projekt má vždy vytvořeno minimálně jedno testovací a jedno produkční prostředí. Veškeré námi provedené úpravy nejdříve vždy nasazujeme na testovací prostředí, kde s klientem společně úpravy testujeme. Po schválení pak dochází k nasazení na produkci a opětovnému testování.

Kdo se obvykle účastní Vašeho projektu?

Běžně se u nás na projektu podílí tyto role:

  • klient,

  • produktový manažer,

  • projektový manažer,

  • analytici + vývojáři,

  • testeři,

  • grafický designér,

  • marketér,

  • a další role, pokud jsou potřeba (např.: UI/UX specialista, SEO specialista atd.).

    Jakmile je projekt u konce

    V případě vývoje v rámci fixní ceny a rozsahu je konec projektu vždy přesně daný. Jako “konec” projektu při agilním vývoji obvykle označujeme první, společně s klientem odsouhlasenou verzi projektu. Nejedná se však o reálný konec projektu, ale pouze jeho pomyslný milník. Často je to od začátku předem dané, že se jedná o MVP s určitým rozsahem funkcí (Minimal Viable Product). MVP je v podstatě taková fáze projektu, kdy obsahuje potřebné množství kritických funkcí pro spuštění na produkci.

    Předávací protokol (bez výhrad / s výhradami)

    V této fázi podepisujeme s klientem předávací protokol. Tento protokol buď klient přebírá a podepisuje bez výhrad, nebo protokol obsahuje výčet chyb, které je nutné do konkrétního data odstranit.

    Záruka

    Každý náš projekt má smluvně potvrzenou záruční dobu na chyby po dobu šesti měsíců od spuštění.

    Vícepráce

    Naši klienti si skrze naši aplikaci helpdesk můžou objednávat další vícepráce pro jejich projekty. Každá vícepráce je brána jako konkrétní úkol a dostanete na něj hrubý časový odhad a také akceptační kritéria, které je nutné před započetím prací potvrdit.

    Service Level Agreement - SLA

    S našimi klienty sjednáváme po spuštění jejich projektů tzv. SLA (Service Level Agreement) smlouvy. Tyto smlouvy jsou různé dle požadavků klienta. Nabídnout Vám můžeme tyto služby:

  • garantovaná reakční doba na tikety,

  • garantovaná alokace vývojáře pro Váš projekt,

  • monitoring projektu,

  • bezpečnostní aktualizace,

  • technologické aktualizace.

    SLA smlouvy uzavíráme vždy minimálně na rok, jsou placeny vždy předem a četnost plateb lze nastavit čtvrtletně, pololetně a nebo jednorázovou platbou za celý rok.