ObrázokAlan Cooper je človek, ktorý sa živý dizajnom. Nielen že má firmu, ktorá robí poradentsvo ohľadom tejto problematiky, ale aj o dizajne píše. Kniha The Inmates Are Running the Asylum ale nie je o tom, ako robiť dobrý dizajn, ale prečo ho robiť. Je to príbeh o tom, ako je za väčšinu dizajnu dnes zodpovedný Homo logicus a prečo sa veľa programov podobá na tancujúceho medveďa.

V prvom rade treba povedať, že ak si pod pojmom dizajn predstavíte výber farieb, ikon a obrázku na pozadí, tak sa vaša predstava tak úplne nezhoduje s autorovou. Ten totiž pod dizajnom chápe nie len to ako aplikácia vyzerá, ale aj ako sa správa. Ide hlavne o interakciu alebo ovládanie. To, aké okná sa vám budú zobrazovať a v akom poradí. Kde budú tlačidlá a koľko klikov budete potrebovať na to, aby ste dosiahli svoj cieľ. Dizajn je teda v Alanovom chápaní čokoľvek, s čím príde používateľ do kontaktu pri používaní aplikácie.

Pomerne veľká časť knihy je venovaná kritike súčasného stavu a ten je taký, že za rozhranie je často zodpovedný programátor. To by samo o sebe ešte nebolo zlé, ak by programátor nebol Homo logicus (na rozdiel od ostatných ľudí, ktorí sú Homo sapiens). Taký Homo logicus je vlastne človek, ktorého bavia komplexné problémy. Zložité ovládanie chápe ako výzvu. A keďže väčšina jeho známych sú tiež Homo logicus, tak sa mu tak trochu javí, že zložité ovládanie aplikácie je správna vec a problém nie je v aplikácii ale v používateľovi. Alan má jednoduchý test toho, či ste Homo sapiens alebo Homo logicus. Predstavte si, že máte letieť liedalom, pričom si môžete vybrať, či budete lietadlo pilotovať v kabíne plnej rôznych ovládacích prvkov a ukazovateľov alebo budete sedieť v kresle pasažiera s dvoma tlačidlami na ovládanie klimatizácie. Homo sapiens si vyberie kreslo pasažiera, Homo logicus samozrejme kabínu (… ja by som sa jednoznačne šiel aspoň do tej kabíny pozrieť 🙂 ). Výsledkom toho, že programátori sú zodpovední za ovládanie aplikácie, sú tancujúce medvede. To sú programy, ktoré sa ťažko ovládajú, ale v podstate plnia svoj účel. Keďže používateľ inú alternatívu nemá, tak robí aj s programom, ktorý sa ťažko ovláda. Ale robiť s takým programom je ako keď medveď tancuje – je to skôr paródia.

Alan vo svojej knihe pomerne silno útočí na programátorov. Tvrdí, že sú to ľudia, ktorí si myslia, že vedia dizajnovať (ale nevedia), ktorí by mali dodržiavať návrh (ale nerobia to) a ktorí by mali vykonávať prácu (a pritom niekedy projekt viac riadia). Pri tomto na chvíľu odbočím od recenzie, pretože to naozaj stojí za zamyslenie.

Programátori sú jedna zo skupín, ktorá má na starosti vývoj softvéru. Okrem nich sú to napríklad analytici, testeri, správcovia databáz alebo systémov a dizajnéri. Zo všetkých týchto skupín majú asi programátori naozaj najväčší vplyv na to, čo sa deje. Bez ohľadu na to, či to je alebo nie je správne, je to asi preto, lebo programátori vytvárajú zo všetkých tých skupín najhmatateľnejší výsledok a ich práca je veľmi ťažko zastupiteľná. Hlavne to druhé je dôležité, lebo ak by už na to prišlo, tak programátor vie urobiť nejakú analýzu, nejaké testovanie, nejaký návrh databázy a nejaký návrh používateľského rozhrania (sám som kedysi v „Malovaní“ vo windows kreslil ikony). Kvalita takýchto prác asi nie je veľká, ale podstatné je, že to dokáže. Málokto z iných skupín vie zastúpiť programátora. To, že nikto iný neovláda ich prácu nie len zvyšuje ich dôležitosť ale spôsobuje, že veľmi ťažko sa hľadajú argumenty pri diskusii s nimi. Ak vám napríklad programátor povie, že to rozbaľovacie pole sa nedá urobiť s tabuľkou vo vnútri, tak na to, aby ste si tento fakt overili, by ste museli rozumieť, ako sa skladajú ovládacie prvky a aké sú ich možnosti. Preto sa veľmi ľahko môže stať, že ak chce programátor presadiť svoje, vytiahne z rukáva eso takého typu a pokiaľ neovládate jeho obor, je celkom možné, že vás prebije. Každopádne Alan nie je jediný človek venujúci sa dizajnu, ktorý si o vplyve programátorov myslí svoje. Podobné narážky ma aj Steve Krug vo svojej knihe Webdesign.

Vráťme sa ale späť k Alanovi Cooprovi. Ten tvrdí, že kvalitný dizajn má priamy vplyv na obchod, ktorý sa so softvérom robí a snaží sa to dokázať príkladmi z praxe. Zaujímavý je v tomto jeho názor, že nevadí, že prídete na trh ako druhý s nejakou ponukou. Ak máte kvalitnejší softvér (lepšie sa ovláda), môžete vyhrať.

Okrem iného, v knihe tiež píše o nástroji, pomocou ktorého sa snaží skvalitniť aplikácie. Sú to takzvané Personas. Sú to vymyslené osoby, ktoré reprezentujú skupiny používateľov aplikácie. Nie sú konkrétni zákazníci ani univerzálny všeobecný používateľ. Je to niečo medzi tým. Sú to osobi s menom, príbehom a fotkou (+ ďalšími dodatočnými údajmi). Jedna z nich takzvaná primárna persona a okolo nej by sa malo všetko točiť. Podstatné je, že tieto osoby formujú vývoj a slovník, ktorý sa používa. Vždy keď sa rozpráva o nejakej funkčnosti, malo by byť jasné, pre akú personu to je. A ak sa rozpráva o tom, ako sa to bude ovládať, mali by sa brať do úvahy schopnosti tejto osoby.

Na personach je zaujímavé to, že ich prebrali aj agilné metódy ako techniku na zastavenie vyrábania odpadu (teda funkcionality, ktorú nikto nepotrebuje). V tom, že by sa aplikácia nemala zbytočne obohacovať o rôzne vylepšenia, ktoré len zastierajú jej pôvodný účel, sa autor s agilnými metódami zhoduje. Tam ale podobnosť končí. Na rozdiel od agilných metód Alan tvrdí, že dobrý dizajn vyžaduje veľke prípravy dopredu a iteračnú metódu prirovnáva k behu cez mínové pole, kde až keď vybuchne mína (zákazník s niečim, čo sme mu vyrobili nie je spokojní) viem, že je zle. Myslím, že to pramení z toho, že pri agilnom vývoji sa prakticky od začiatku začína programovať a jedna z myšlienok, ktoré Alan opakuje je, že ak sa už začne programovať na dizajn je neskoro, lebo slovo preberajú programátori a s nimi už nikto nepohne.

K tejto knihe som sa dostal práve cez spomínané Persony, ale odniesol som si z nej omnoho viac. Veľmi zaujímavý je prípad, keď píše o tom, ako zmenili ovládanie počítača zabudovaného v sedadle lietadla, kde si cestujúci vyberá film, ktorý si chce pozrieť. To je pekný príklad, že sa dá vylepšiť niečo, čo vám na prvý pohľad pripadá v poriadku. A veľmi silná myšlienka je aj tá, že softvér sa namiesto neustálym pridávaním novej funkcionality dá zlepšovať aj lepším prepracovaním dizajnu. Častokrát je to slepé nabaľovanie ďalších funkcií jediná cesta, ktorou softvérové projekty idú…