sobota 19. března 2022

Čím začít při vývoji software?

Business zadavatel má představu, co by měl nový systém dělat a chce ho mít co nejdříve. Ale jak začít? Co třeba začít kreslit obrazovky? Stačí angažovat digitálního specialistu nebo customer journey experta a někoho, kdo ovládá UX tool v kterém lze kreslit obrazovky (setkal jsem se na projektech s Figmou a Axure, ale existuje spousta různých nástrojů). Výsledkem je nakreslená obrazovka, nebo v některých případech prototyp v kterém lze aplikaci procházet. Obrazovky, případně prototyp lze ukázat uživateli a na základě zpětné vazby od uživatele ho snadno upravit. Pak už stačí aplikaci "jen" naprogramovat... 

Vytváření obrazovek jako první krok, přináší následující rizika:

  • Soustředění se spíše na design než na funkcionalitu. Návrh už často vypadá téměř jako finální aplikace a proto svádí k tomu ho "doladit" do nejmenšího detailu. V úvodní fázi je získat zásadní informace co by měl daný systém dělat. Informace, zda má být tlačítko vlevo nebo vpravo a zda má mít zelenou nebo modrou barvu není v úvodu projektu příliš důležitá. 
  • Chybějící znalost datového modelu. Obrazovku často vytváří někdo, kdo má o datovém modelu jen základní informace. To často vede k tomu, že návrh modelu neodpovídá a nelze ho použít.
  • Přidávání zbytečné funkcionality. Přidat další funkcionalitu dokreslením na obrazovku je velmi jednoduché a rychlé. Svádí to k přidávání funkcionality, která se "může hodit" nebo "vypadá dobře".
  • Ignorování alternativních scénářů. Obrazovky se kreslí pro jednoduchý průchod aplikací, když se vše povede. Scénáře, kdy se zákazník nemůže přihlásit, smlouva neexistuje atd. se neřeší. Ale zákazník je bude chtít řešit a to buď přímo v systému, nebo se bude kontaktovat podporu a musí existovat způsob, jak mu poskytnout pomoc. 
  • Ignorování následné analýzy. Máme detailně nakreslenou obrazovku. Na obrazovce je formulář s daty a pod formulářem je tlačítko Uložit. Vývojář zpracuje událost kliknutí na tlačítko Uložit tak, že uloží všechna data z formuláře a analýzu projde je tak zběžně a nemusí si všimnout, že chování popisované při uložení může být podstatně bohatší než jen prosté uložení všech dat. 

Osobně jsem se setkal s projektem portálu pro zákazníky, kde první aktivitou na projektu bylo nakreslení jednotlivých obrazovek. Vstup zákazníka na portál začal registrací. Zákazník měl zadat jméno, příjmení  a své mobilní telefonní číslo. Pokud se mobilní telefonní číslo shoduje s telefonním číslem uvedeným na smlouvě, odešle se zákazníkovi v SMS jednorázový kód, který použije při prvním přihlášení. Bylo to jednoduché a graficky velmi pěkně provedené. Mělo to několik problémů:

  • Firma vůbec neměla mobilní telefonní čísla většiny zákazníků v databázi.
  • Situace, kdy zákazník má uvedené telefonní číslo, ale už ho nemůže použít (z různých důvodů - např. bylo to číslo používané v minulém zaměstnání atd.) nebyla nijak řešená.
  • Stejně tak nebyla řešená ani situace, kdy zákazník nedostal z nějakého důvodu SMS zprávu s kódem.
Začít s kreslením obrazovek je podle mého názoru ve většině případů špatně. Samozřejmě existují výjimky, kdy to smysl dává - takovou výjimkou je velmi složité uživatelské rozhraní, kde jeho nakreslení pomůže k pochopení o co se jedná. Ale u většiny "standardních" systémů je dobré kreslení obrazovek odložit a začít něčím jiným. Mám na mysli sběr uživatelských požadavků a tvorbu případů užití (use case) u funkčních požadavků.

Žádné komentáře:

Okomentovat