Blog | Prototype driven development

Prototype driven development

Dnes vám popíšu proces, pomocí kterého jde předejít velké spoustě chyb při vymýšlení webu a zadávání práce programátorům. Říkám mu prototype-driven development a nevylučuje se s žádným jiným způsobem řízení.

V čem to spočívá?

Udělá se vám geniální nápad a chcete ho zrealizovat. Čím rychleji, tím lépe. Ale počkat! V tuhle chvíli byste se měli zastavit, zamyslet a popřemýšlet nad tím, jak bude na webu probíhat interakce.

Chyba by byla sednout, vyrobit tabulky v databázi a hned si vygenerovat CRUD. V prototype-driven developmentu si naopak nejdřív ze všeho vyrobíme prototypy.

Co takový prototyp obsahuje?

Seznam všech stránek

Seznam všech ovládacích prvků na stránkách

Definici průchodů mezi stránkami

Co získám tím, že se budu dělat s prototypy?

Hned od první hodiny mám určitý základ pro testování použitelnosti. Můžu to jít ukázat kamarádům (aby mi řekli, že je to blbost, hned zezačátku). Můžu s tím utíkat třeba na za potenciálním investorem (a pokud se mi něco povedlo už v minulosti, mám šanci, že na to nějaké fondy získám). Taky má člověk testování interakcí. Vidí přibližně ohyb stránky a tuší, že tady na to tlačítko už mu lidi klikat nebudou. Je možné začít myslet na konverzní trychtýř ještě předtím, než se naprogramuje byť řádka nebo utratí halíř za grafika.

Důležitým prvkem, jak šetřit peníze při vývoji jakéhokoliv software, je možnost selhat rychle, odhalit chyby, poučit se v rané fázi a pokračovat bez velkých následků dál. Chyba objevená už v prototypu stojí zdaleka nejméně peněz.

A když mám tedy prototyp, co s ním udělám?

Zhotovím HTML podle prototypu a prototyp pošlu i grafikovi. Teprve potom se doplňuje funkcionalita na backendu.

O backendu platí, že tak jak se v TDD programuje minimální kód, který projde testy, zde se vyvíjí minimální funkcionalita (třeba s testy), která projde prototypem.

Člověk nepoužije generovaný CRUD tam, kde je výsledek až příliš odlišný, ušetří si tím čas. Taky už má člověk hned šablonu, hned při vývoji vidí, že občas bude nevalidní formulář a prototyp s tím nepočítá atd. a tak si vyžádá aktualizaci.

Jakmile se zrealizuje logika a grafika, projekt se deployne. Mezitím je možné na šablonách dělat testy použitelnosti. Tripomatic, který jsem tu už dříve popisoval, máme pokrytý celý prototypy. Jakmile je součástí zadání wireframe, mám daleko větší jistotu, že to i jako programátor udělám dobře (ve spojení s tím, že mám nějaké classy, které v různých situacích automaticky dávám k nějakým prvkům, je výsledek téměř hned nastylovaný a kolega s grafickým citem udělá jen doladění a to ne vždy).

A jak na průběžný vývoj?

Prototyp je živý stejně jako šablona projektu. Může se měnit a taky se mění. Vždy při změně (ne doplnění) zadání se vytvoří kopie a zařadí se do následujícího sprintu. Pokud se tedy bude GUI nějaké stránky měnít, na příští iteraci už mám jistotu, že vím, jak to bude vypadat a chovat se.

Prototypy na další sprint vznikají v průběhu současného sprintu, je možné je kritizovat. Zároveň se vytváří dva prototypy pro situaci, kdy buď je nějaký výpis prázdný (vidím ho poprvé), nebo už jsou v něm data. Vyhnem se tak hloupé situaci, kdy prázdný výpis rovná se prázdná tabulka jen s názvy sloupečků.

Závěrem jaké nástroje se dají dobře používat?

Osobně používám Omnigraffle Professional a papír s tužkou. Dál můžu doporučit MockFlow (je ale bohužel v Airu), Axure (nejdražší, ale asi nejlepší prototypovadlo na světě) a Balsamiq Mockups (prototypy vypadají docela hezky).

Programování Použitelnost Podnikání & Startupy

Předejte zkušenosti i dalším a sdílejte tento článek!



Jiří Knesl
Business & IT konzultant

Jiří Knesl poprvé začal programovat v roce 1993. Od té doby, díky skvělým učitelům a později zákazníkům, měl možnost neustále růst v oboru vývoje webových aplikací a informačních systémů. v roce 2002 se přidal zájem o ekonomii a v roce 2006 o organizaci práce. Vším tím se konstantně profesně zabývá jak ve svém podnikání, tak i u zákazníků. Za posledních 5 let vydal na tato témata přes 400 článků.

Prohlédněte si moje reference

Mám zkušenosti z rozsáhlých projektů pro korporace, velké podniky, střední i malé firmy, ale i pro startupy v cloudu. Zvyšoval jsem jejich know-how, pomáhal nastavovat jejich organizační strukturu, byl lektorem a mentorem v náročných situacích. Podívejte se, jak vidí můj přínos samotní klienti.

Sledujte mé postřehy na sociálních sítích