Poslední úprava 4/2/25, 12:02 PM

Co je to Design Sprint?

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í.

Cíle Design Sprintu:

  • Ověřit a upřesnit požadavky definované ve Strategii řešení (či požadavky externě dodané, využití Strategie řešení není podmínkou)
  • Vytvořit konkrétní prototypy klíčových částí budoucího systému
  • Získat včasnou zpětnou vazbu od budoucích uživatelů
  • Ověřit navržená řešení v praxi před zahájením nákladného vývoje
  • Připravit detailní backlog pro první implementační fázi
  • Stanovit realistické odhady pracnosti pro vývoj
  • Vytvořit konkrétní a realistickou nabídku na implementaci prvního vývojového sprintu

Jaké jsou výhody a výstupy Design Sprintu?

Hlavní přínos Design Sprintu spočívá v rychlém vytvoření vizuální reprezentace budoucího systému, což umožňuje:

  • Včasnou identifikaci nejasností a chybějících informací v požadavcích;
  • Získání konkrétní zpětné vazby od budoucích uživatelů;
  • Vytvoření sdíleného porozumění mezi všemi zainteresovanými stranami;
  • Minimalizaci nákladných změn během samotného vývoje;
  • Zkrácení celkové doby implementace.

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ý.

Klíčovými výstupy Design Sprintu jsou:

  • Interaktivní prototypy ve formě obrazovek, které věrně simulují uživatelské rozhraní a chování budoucího systému;
  • Závazná cenová nabídka na realizaci prvního implementačního sprintu;
  • Jasné zadání pro navazující implementační fázi projektu.

Balíčky Design Sprintu

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.

Proces Design Sprintu

Prerekvizity

Pro úspěšný průběh Design sprintu je nezbytné splnit následující podmínky: 

  • Všichni zúčastnění mají na dobu Design sprintu vyhrazený dostatečný čas tak, aby se mohli plně věnovat této aktivitě.
  • Vybraní uživatelé společnosti jsou k dispozici pro zodpovězení dodatečných otázek, které mohou během prototypování vyvstat.
  • Všem účastníkům jsou k dispozici potřebné komunikační kanály a nástroje využívané během sprintu (např. Teams nebo FigJam).

1. Konkretizace backlogu

Na základě funkčních a nefunkčních požadavků :

  • Vytvoříme strukturovaný backlog pro první implementační sprint;
  • Rozvedeme požadavky do konkrétních user stories (strukturovaných požadavků ve formátu “Jako [role] chci [funkci] aby [přínos]”);
  • Stanovíme jasná akceptační kritéria pro každou user story;
  • Identifikujeme vzájemné závislosti mezi požadavky;
  • Doplníme chybějící detaily potřebné pro následné prototypování.

2. Prototypování

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ů


3. Prezentace výsledků

Fáze Design sprintu je uzavřena finální prezentací shrnující:

  • Interaktivní prototypy klíčových oblastí;
  • Detailní backlog pro první implementační fázi;
  • Odhad pracnosti / cenovou nabídku první implementační fáze;
  • Harmonogram realizace první implementační fáze;
  • Návrh plánu pro navazující Design refinement sprinty.

4. Design Refinement Sprint

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áší:

  • Rychlejší dodání hodnoty v prioritních oblastech;
  • Postupné budování systému založené na reálných zkušenostech;
  • Lepší kontrolu nad rozpočtem a harmonogramem;
  • Flexibilitu při změnách požadavků nebo priorit.

Každý Design refinement sprint využívá stejnou metodiku jako původní Design sprint, ale obvykle v menším rozsahu, protože:

  • Už máme k dispozici výstupy předchozích fází;
  • Jsou již nastaveny základní principy designu a technické architektury;
  • Tým má vyšší znalost domény a kontextu.

Typický Design refinement sprint zahrnuje:

  • Zpracování 8-20 user stories;
  • Návrh 16-40 obrazovek uživatelského rozhraní;
  • 2 prototypovací workshopy;
  • 2 cykly úprav;
  • Vypracování backlogu pro následující implementační sprint.

Na konci každého Design refinement sprintu získáte:

  • Prototypy další části systému;
  • Přesnou cenovou nabídku na implementaci této části;
  • Aktualizovaný odhad celkového rozsahu projektu.

Předplacené aktivity

Indikativní přehled průměrně stráveného času na aktivitách.

Jednorázové aktivity prvního Design Sprintu

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

Běžné aktivity (v prvním i v refinement sprintech):

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 čem se Design Sprint liší od jiných přístupů k vývoji softwaru?

-+ Srovnání dvou základních přístupů k vývoji

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.

-+ Proč není výstupem Design Sprintu obsáhlá dokumentace?

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.

-+ Jak vypadá definice požadavků pro potřeby Design Sprintu?

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

  • Vytvoření a správa faktur
    Jako účetní chci mít možnost vytvářet a spravovat faktury, aby byl účetní proces efektivnější.
  • Správa kampaní a nabídek
    Jako marketér chci spravovat kampaně a nabídky, abych mohl snadno aktualizovat marketingové materiály.
  • Přidání platebních metod
    Jako zákazník chci mít možnost přidat více platebních metod, aby moje platby byly flexibilnější.

Špatně definovaný požadavek

  • Vytvoření a správa faktur
    Vytvořit komplexní systém pro správu faktur pro malé a střední podniky, který by zahrnoval automatické generování faktur, jejich odesílání zákazníkům a sledování platby
    Komentář: Tento požadavek je příliš komplexní a míchá více funkcí do jednoho požadavku. Také nedodržuje strukturu požadavků.
  • Zlepšení uživatelského rozhraní
    Uživatelské rozhraní by mělo být přehlednější
    Komentář: Nadpis a popis jsou příliš vágní, bez konkrétního uživatelského příběhu a specifikace

Specifika Design Sprintu

-+ Jaké role by se měly účastnit?

Pro efektivní průběh jednotlivých iterací prototypování doporučujeme účast následujících osob: 

  • Ze strany Společnosti 
    • Specialisté s detailní znalostí procesů: Reprezentují typického koncového uživatele, znají jeho každodenní práci a problémy a dokáží odpovědět na otázky týkající se fungování jednotlivých oblastí.  
    • Klíčoví uživatelé: Účastní se zejména závěrečných iterací, testují vytvořenéprototypy a poskytují zpětnou vazbu.
  • Ze strany Dodavatele
    • Business analytik: Pomáhá definovat a strukturovat požadavky, vede diskuze a zajišťuje souhlas prototypů s obchodními cíli projektu.
    • UX designer: Přispívá do diskuse znalostmi o designu, připravuje návrhy GUI a prototypy. 
    • Architekt řešení: Zajišťuje technickou proveditelnost navrhovaných řešení a optimalizuje prototypy z hlediska budoucí implementace.

-+ Proč není bezpečně možné říct cenu za celý projekt již na jeho začátku?

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.