Představte si informační systém, který si poskládáte podle vlastních představ a upravíte na míru přímo Vašim potřebám.
Design Sprint představuje efektivní metodiku prototypování, která výrazně urychluje cestu od konceptu k finálnímu návrhu systému. Celý proces se skládá z několika iterací upřesňujících prototypy do finální podoby. V rámci sezení umožní rychle navrhnout požadovaný systém a jeho výstupy (sada interaktivních obrazovek a základní backlog) společně nahrazují potřebu příliš detailního navrhu systému a rozsáhlé dokumentace, která velmi rychle přestává být aktuální.
V celkovém procesu vývoje softwarových řešení by měl Design Sprint následovat po vydefinování produktové strategie a předcházet samotnému vývoji a implementaci řešení.
Hlavní přínos Design Sprintu spočívá v rychlém vytvoření vizuální reprezentace budoucího systému, což umožňuje:
Jasná definice požadavků a tvorba a prezentace prototypů klientovi již v úvodní fázi projektu umožňuje konzultantům lepší pochopení toho, jak by měl produkt fungovat jako celek. Tím se zlepšuje celková struktura navržených řešení, plánování závislostí a přesnost implementačních úkolů. Úpravy a změny prováděné během prototypování jsou také značně levnější, než změny prováděné nad hotovým vyvinutým produktem.
Z těchto důvodů je Design Sprint pro naše zákazníky nejen doporučený, ale i povinný.
Nabízíme tři balíčky Design Sprintu, které dodávají různé úrovně detailu a liší se počtem revizí prototypů. Je důležité důkladně zvážit, který z těchto balíčků nejlépe odpovídá vašim potřebám a očekáváním – čím méně pozornosti se věnuje projektu v přípravné fázi, tím větší je riziko nepřesného odhadu a pozdějších úprav.
Pro úspěšný průběh Design sprintu je nezbytné splnit následující podmínky:
Na základě funkčních a nefunkčních požadavků :
Proces prototypování se liší podle zvolené varianty:
• Varianta Review: 2 prototypovací workshopy a 1 cyklus úprav zaměřený na klíčové funkcionality
• Varianta Regular: 3 prototypovací workshopy a 2 cykly úprav s širším záběrem funkcionalit
• Varianta Detailed: 5 prototypovacích workshopů a 3 cykly úprav s komplexním pokrytím
Jednotlivé iterace prototypů zahrnují:
• První workshopy: definování a vytvoření základních prototypů
• Cykly úprav: zapracování zpětné vazby a vylepšení prototypů
• Závěrečný workshop: prezentace finálních prototypů a shrnutí zjištěných poznatků
Fáze Design sprintu je uzavřena finální prezentací shrnující:
Design refinement sprinty jsou pokračováním cyklického procesu vývoje projektu. Zatímco Strategie řešení pokrývá celý projekt, první Design sprint se u rozsáhlejších projektů zaměřuje pouze na nejprioritnější oblasti z Impact Value Analysis (IVA). Po implementaci těchto oblastí následují Design refinement sprinty, které postupně pokrývají další části projektu dle priorit stanovených již ve Strategii řešení.
Tento cyklický přístup (Design sprint → Implementace → Design refinement → Implementace…) přináší:
Každý Design refinement sprint využívá stejnou metodiku jako původní Design sprint, ale obvykle v menším rozsahu, protože:
Typický Design refinement sprint zahrnuje:
Na konci každého Design refinement sprintu získáte:
Indikativní přehled průměrně stráveného času na aktivitách.
Popis aktivity | Ø trvání úkonu | Odhadovaný počet úkonů | |||||||
---|---|---|---|---|---|---|---|---|---|
Review | Regular | Detailed | |||||||
Analýza a rozpad požadavků ze strategie pro celý projekt | 180 | 1x | 1x | 1x | |||||
Návrh základní struktury a navigace systému | 360 | 0.5x | 1x | 1x | |||||
Vytvoření designových standardů a systému komponent | 480 | 0,5x | 0,75x | 1x | |||||
Nastavení prototypovacího prostředí a workflow | 240 | 0,5x | 0,75x | 1x |
Popis aktivity | Ø trvání úkonu | Odhadovaný počet úkonů | ||
---|---|---|---|---|
Review | Regular | Detailed | ||
Sběr požadavků koncových uživatelů | 120 | 1x | 2x | 3x |
Zpracování user stories | 90 | 8x | 14x | 20x |
Prototypovací workshop | 120 | 2x | 3x | 5x |
Výroba a úprava obrazovek | 60 | 16x | 28x | 40x |
Příprava technického řešení a odhadů pracnosti | 15 | 8x | 14x | 20x |
Optimalizace technického řešení | 60 | 1x | 2x | 2x |
Workshop pro představení výstupů | 120 | 1x | 1x | 1x |
Úprava výstupů na základě zpětné vazby | 60 | 1x | 1x | 1x |
Zpracování výstupní dokumentace | 120 | 1x | 1x | 1x |
Celkový čas | 3120 | 5250 | 7320 | |
Cena bez DPH | 109 200 Kč | 183 750 Kč | 256 200 Kč |
Poznámka: Při překročení předplaceného počtu položek (funkčních celků, user stories, obrazovek atd.) bude každá další položka účtována samostatně dle aktuálního ceníku. V případě, že bude dodržena celková pracnost, ale změní se rozložení mezi položkami (například méně komplexnějších user stories místo více jednodušších), bude toto řešeno individuální dohodou bez dodatečných nákladů pro zákazníka.
Vývoj softwaru je svým způsobem umění a existuje mnoho různých cest, jak k němu přistupovat. Pro pochopení konceptu Design Sprintu si nyní představíme dvě z hlavních – Waterfall a Agile.
Metodika Waterfall je model vývoje softwaru, který postupuje lineárně a sekvenčně od jedné fáze projektu k další. Každá fáze (analýza, návrh, implementace, testování, nasazení, správa) musí být kompletně dokončena předtím, než se přejde k další. Tento model spoléhá na přesné a důkladné plánování a pevně dané specifikace na začátku projektu – to je ovšem v prostředí vývoje moderního software takřka nemožné.
Model také ze své podstaty ztěžuje adaptaci na změny požadavků během vývoje. Zákazník je obvykle zapojen především na začátku při schvalování specifikací a poté až na konci při předávání hotového produktu. Pokud se ale během vývoje změní cíle či představy zákazníka, je velmi obtížné a nákladné dodané řešení upravit, což vede ke zpožděním a vyšším nákladům.
Agile je na druhou stranu flexibilní a iterativní přístup k vývoji softwaru, který se zaměřuje na průběžný vývoj a pravidelné dodávky funkcionalit. Projekt je v něm rozdělen do krátkých iterací a na konci každé iterace je zákazníkovi prezentována fungující část produktu. Tento přístup umožňuje týmu rychle reagovat na změny požadavků, které mohou vzniknout v průběhu vývoje, a okamžitě získávat zpětnou vazbu od zákazníka.
V metodice Agile je zákazník více zapojený do procesu vývoje a má větší kontrolu nad výsledným produktem. Díky pravidelným prezentacím a úzké spolupráci s týmem může zákazník průběžně ovlivňovat směr vývoje a zajistit, že konečný produkt lépe odpovídá jeho potřebám a očekáváním.
Vzhledem k našim zkušenostem používáme na všech projektech metodiku Agile.
Big Design Up Front (BDUF) je přístup k vývoji softwaru spadající do metodiky Waterfall (viz výše). Vyznačuje se tím, že je návrh softwaru kompletně dokončen a dotažen do detailu před samotným začátkem implementace. Tento přístup je problematický v tom, že staví zejména na předvídání průběhu a výsledků projektu bez využití prototypů, a navíc se těžko adaptuje na jakékoliv pozdější změny požadavků.
Functional Design Document (FDD) představuje obsáhlou dokumentaci požadavků, specifikací a cílů pro celý projekt vývoje softwaru. Poskytuje detailní rozbor toho, jak budou fungovat jednotlivé prvky výsledného řešení. Technical Design Document (TDD) je dokument popisující technické aspekty řešení a jeho jedntlivých částí. Problémem takto obsáhlé dokumentace je fakt, že velmi rychle zestárne a často nepokryje klíčové části systému – čistě z toho důvodu, že je pro lidi těžké již předem vnímat a sepsat tak velké množství informací, jaké si žádá komplexní IT systém. Navíc se jedná o přístup, který bývá zejména u komplexnějších projektů poměrně zdlouhavý.
Byť jdou výše zmíněné přístupy správným směrem, chybí jim jeden klíčový prvek – vizualizace. Při prototypování obrazovek se totiž zákazník nad systémem začne zamýšlet jinou cestou, než při pouhém sepisování požadavků, a často přijde na další souvislosti. I pro analytiky je proces prototypování užitečný – sledujeme, jak zákazník nad řešením přemýšlí, a můžeme ho při návrzích na základě našich zkušeností usměrňovat.
Díky zapojení zákazníka do návrhu výsledného navržení systému se předchází předělávání již hotových řešení a vytvořené specifikace zůstávají déle aktuální. Validování a grafické navrhování myšlenek přináší nové koncepty a ladí očekávání obou stran.
Správně definovaný požadavek by měl být stručný a přesný, aby byl srozumitelný při pohledu na celý backlog.
Definujme si strukturu požadavku. Jeho název by měl být krátký a výstižný, například „Vytvoření a správa faktur“ nebo „Správa kampaní a nabídek“. Neměl by obsahovat postavy ani hlubší popis.
Více do detailu se dostaneme v samotném popisu požadavku. Ten by měl začínat definicí uživatelského příběhu (kdo, co, proč?): Jako <persona>, chci <udělat něco> tak, aby <přidaná hodnota>.
Např. Jako zákazník e-shopu chci mít možnost uložit si oblíbené produkty, aby se mi při další návštěvě snáze vybíralo.
Také může být v případě potřeby přidán stručný popis, který požadavek více popíše.
Je nutné, aby požadavky dodržovaly výše popsanou strukturu a nezahrnovaly dlouhé a nepřehledné popisy.
Správně definované požadavky
Špatně definovaný požadavek
Pro efektivní průběh jednotlivých iterací prototypování doporučujeme účast následujících osob:
Jedním z výstupů Design Sprintu je závazná cenová nabídka na realizaci prvního implementačního sprintu. Stanovit ale přesnou cenu za celý projekt je na jeho začátků velmi problematické, a to z několika důvodů.
Jedním z hlavních je proměnlivost zadání v průběhu vývoje. V dynamickém prostředí softwarového vývoje se požadavky na projekt často mění v reakci na trh, zpětnou vazbu uživatelů nebo nové technologické možnosti. Tento neustálý vývoj požadavků znamená, že původní plány a odhady se mohou stát neaktuálními.
Z tohoto důvodu je důležité přistupovat k odhadu nákladů flexibilně a očekávat, že finální cena projektu se může od původních předpokladů lišit.