Programátor vs. uživatel vol. 1 - kytky a zájezdy
Již delší dobu mi leží v hlavě série článků na téma "programátor vs. uživatel" popisující rozdíly v uvažování programátora a uživatele. Během své programátorské praxe jsem měl hodně možností dostat se do kontaktu přímo s reálným uživatelem mého software, čímž jsem získal mnoho zajímavých zkušeností a poznatků. Některé z nich byly velmi zajímavé a poučné, tudíž by bylo škoda je nesepsat.
Pokud ve své referenci označuji projekt jako "top projekt," vyjadřuji tím, že měl v mé kariéře zásadní význam. Může se jednat o projekt významný sám o sobě, mnohdy však byl pro mne zdrojem zajímavých poznatků a zkušeností. Mohu říci, že to "byla pro mne škola," ať už se týkala čehokoli.
Jedním z top projektů je i projekt Rostlinolékařské pasy. Smysl projektu byl jednoduchý: nahradit stávající "ruční zpracování" intranetovou aplikací. Nic světoborného, nicméně první zkušenost s reálným uživatelem a navíc velmi úspěšný projekt. Jistou paralelu jsem našel i v práci, který jsem dělal pro agenturu Zájezdy.cz. Oba projekty pro mne představovaly významnou zkušenost, co se týče komunikace s uživatelem. V článku se zaměřím na Rostlinolékařské pasy (zkráceně RL pasy), doplním jej ale o paralely a úvahy ze Zájezdů, ale také z reálného života.
První kontakt
Než jsem započal vývoj RL pasů, absolvoval jsem spoustu jednání se zákazníkem, většinou obchodního charakteru. V rámci nich jsme spolu s projektovým manažerem zorganizovali setkání přímo s koncovými uživateli, což se ukázalo jako výborný nápad. Během jednání nám budoucí uživatelé vysvětlili problematiku, o co jde, popsali způsob jejich práce a také jejich očekávání. Prostě jsme je "nechali, ať se vypovídají." Na základě tohoto setkání jsem pak udělal prvotní návrh a implementaci.
V Zájezdech jsme občas řešili problém, co vlastně ten uživatel přesně chce, ať to pro něj můžeme udělat. Zvláště když uživatel byl typický manažer: "nemám čas!" Nějak jsme to vždycky udělali k oboustranné spokojenosti, ale s trochou nadsázky jsem říkal, že nejlepší by bylo, kdybychom si s ním sedli, nalili do něj láhev rumu a nechali ho vypovídat. Aspoň bychom věděli, co vlastně chce.
Rady obchodního zástupce
Když jsem měl vývoj RL pasů tak asi v polovině, objevil se v pobočce obchoďák, který zakázku zajišťoval. Zeptal jsem se ho, jestli chce vidět průběžný stav vývoje. Zvědavý byl dostatečně a trochu času na předváděčku a diskusi si také našel.
- Já: "Teď se soustředím na funkcionalitu, design dodělám potom."
- Obchoďák: "Ne, udělej ten design rovnou, ať se v tom poznají."
A měl pravdu, ne nadarmo se říká, že "zboží prodává obal."
Nedá mi to, abych si při té příležitosti nevzpomněl na souboj operačních systémů Microsoft Windows 95 a IBM OS/2. V době mých vysokoškolských studií horké téma. Přestože OS/2 byl stabilní, svižný a více procesů najednou na něm skutečně běželo (další horké téma té doby), cenu pro vítěze braly tenkrát Windows 95 - synonymum pro nestabilitu, padavost a mizerný výkon. Jednoduše byly hezčí a zřejmě měly i lepší marketing.
Je zajímavé, že v historii techniky vyšší kvalita neznamenala vždy komerční úspěch - viz VHS versus Betacam. Také je zajímavé, že mnoho komerčně úspěšnýcy objevů znamenalo v podstatě krok zpátky - např. magnetofonová kazeta, která ve svých počátcích poskytovala horší kvalitu zvuku než klasický kotoučový magnetofon - přesto si ji uživatelé oblíbili. A také první iPad znamenal po technické stránce krok zpět - nepoužíval např. v té době nejlepší dotykový displej.
Konzultace v průběhu vývoje
Dalším dobrým nápadem při vývoji RL pasů bylo pozvat budoucího uživatele (resp. budoucí uživatelku) do firmy a předvést ji aplikaci v aktuálním stavu vývoje. Uživatelka si aplikaci vyzkoušela a v rámci zhodnocení spoustu původních informací upřesnila. Znamenalo to sice několik předělávek, ale bylo to dobré vodítko do dalšího vývoje a ve výsledku aplikace lépe odpovídala jejím požadavkům.
Občas zaznamenám, že uživatel řekne důležitou informaci jen tak mimoděk, a nemusí to být mezi řádky. Přitom se může jednat o informaci zásadního charakteru. Považuji proto za dobré pozorně naslouchat, co uživatel říká, a důkladně analyzovat, jestli podobná informace nezazněla. Tak například manažer prodeje v Zájezdech používal report odměn operátorek nejen pro výpočet prémií svých podřízených, ale i pro analýzu prodeje jako takového. Což byla informace, kterou vypustil jen tak mimoděk. Naopak hlavní ekonomická manažerka preferovala více jednoúčelových a jednoduchých reportů, což jsem opět zjistil pozorováním jejího stylu práce (což ovšem neznamená, že bych ji pořád seděl za ... zády ...). Nicméně na základě takovýchto "informací mimoděk" jsem mohl vytvářet řešení přímo na míru danému uživateli.
Také se mi stává, že uživatel, ale i někdo jiný (třeba i náhodný pozorovatel) vyloženě "plácne" nějakou myšlenku. Při důkladnější analýze se však taková myšlenka ukáže jako velmi dobrý nápad. Opět je potřeba zapojit naslouchací talent a myšlenky, jakkoli mohou na první pohled vypadat nesmyslně, zaznamenávat. A nemusí se implemtovat hned, pokud je dost času, může se myšlenka nechat "uzrát." S odstupem času mohu myšlenky implementovat podstatně lépe a vytvořit elegantnější řešení, než bylo původně zamýšleno.
Předání a závěr
Když jsme aplikaci RL pasů předávali, uspořádali jsme dvoudenní sezení za účelem zaškolení prvotních uživatelek. Jedním z výsledků bylo několik stránek v mém poznámkovém bloku popsaných požadavky na drobné úpravy - práce tak maximálně na dva dny. Ale v průběhu zazněla od uživatelek věta: "to je přesně tak, jak to děláme." V ten okamžik jsem věděl, že projekt uspěl.
Moje zkušenost říká, že pokud je zákazník spokojen, začne si vymýšlet: "a mohlo by to umět ještě ... a šlo by udělat ... ?" (Z pohledu obchoďáka dobrý okamžik začít kasírovat.) Však také přišly další požadavky na úpravu aplikace, ale o tom psát nebudu. Důležité je, že se mi podařilo vybudovat s tímto zákazníkem dobré vztahy, zejména s jejich IT oddělením. A tu osobní PFku, kterou jsem od nich dostal, ještě někde doma mám. Nebyla adresována firmě, pod jejíž hlavičkou jsem aplikaci vytvářel, ta patřila mně osobně.