Československá literární komunita

Tak jako generace autorů před vámi, publikujte svoji psanou tvorbu. Podělte se o svoje názory a sbírejte zpětnou vazbu na svoje díla. Inspirujte se a učte od nejlepších.

Přidejte se

o kompromisech uživatelské přívětivosti

27. 10. 2011
2
6
2808
Autor
Danny
Každému z nás se někdy při spolupráci s počítačem stalo, že si povzdechl: "Proč je to udělané právě takto? Nešlo by to jinak, ____?" Záměrně jsem vynechal konec věty: jsou totiž dva různé povzdechy tohoto typu. Ti z vás, kteří s výpočetní technikou spíše bojují než spolupracují, si na vynechané místo doplní slůvko "jednodušeji". Takoví lidé se často diví, proč je "kolem toho", co chtějí udělat, tolik dalších matoucích hejblátek a věcí, ve kterých se třeba moc nevyznají. Po přečtení této úvahy, která je míněna z větší části pro ně, by měli pochopit, že situace prostě není tak jednoduchá, protože je tu zakopaná celá smečka psů. Existuje totiž druhé možné doplnění povzdechu v prvním odstavci této úvahy. Místo slůvka "jednodušeji" tam potom bude slovíčko "aby..." následované popisem některé vlastnosti daného softwaru, které by mluvčí rád viděl. Ono "aby" je v jistém smyslu v opozici k tomu "jednodušeji", jak uvidíme dále. Dohromady tvoří něco jako váhy, na kterých se musí balancovat. Abych začal prvním náhledem odpovědi na otázku "proč to nejde jednodušeji", odpovím nejpovšechněji kvůli obecnosti. Většina přístrojů, se kterými se člověk potká, slouží k jednomu nebo několika málo účelům: autem se dostáváme odněkud někam, pomocí rádia posloucháme hudbu, fotoaparát snímá obrázky okolního světa... Počítač je udělán tak, aby byl obecný. Tak rozdílné úkoly jako psaní článků, přehrávání hudby, komunikace s jinými lidmi, hraní her, prohlížení internetu... vše zvládne jediný přístroj a není omezen jen na tu oblast použití, kterou dostal "do vínku" od svých tvůrců. Mohou vzniknout programy i na podporu činností, které ještě neexistovaly (nebyly lidstvem vynalezeny) v době, kdy se daný druh počítače projektoval. Ona obecnost je poté motorem dalšího vývoje a může se dostat do křížku s uživatelskou přívětivostí - "jednodušeji" se dostane do křížku s "aby...", jak uvidíme dál. Je nutné si totiž uvědomit, že i když je počítač obecný, je to stále "jenom" stroj - nedokáže věci "odhadnout" lidským zdravým rozumem. Vezměme si například jednoduchý uživatelský vstup, kde počítač vypíše "Zadej jméno:" a poté očekává od uživatele, aby toto jméno napsat. Uživatel napíše například "Petr", chvíli čeká ... a nic. Pokud bude začátečník, bude se divit, co má ještě udělat - ovšem stroj nemůže vědět, že už napsal celé jméno - musí tam být nějaká možnost, jak potvrdit, že jsem napsal všechno, co jsem chtěl napsat - touto možností může být třeba zmáčknutí ENTERu, stisknutí nějakého tlačítka "OK" nebo tak něco: a už nám tu "vylezl" čistě počítačový pojem (ať už toho ENTERu, nebo tlačítka) - který je ovšem nutný k tomu, že ať je stroj chytře naprogramovaný jak chce, nemyslí. Kdybychom zkoušeli vyřešit problém nějak jinak, "přátelštěji", dostaneme se do potíží jiného druhu. On ten počítač sice může mít nějakou databázi existujících jmen a po dopsání jména se podívat, jestli člověk nenapsal nějaké "normální, existující" jméno a potom bez ENTERu či tlačítka přijmout vstup. Jenže - stejně nemůže vědět, jestli chtěl uživatel napsat jméno "Petr", či "Petra" nebo "Petronius" - tedy, ani s touto databází, nemůže uhodnout, zda je vstup celý, nebo ne. Nehledě k tomu, že pokud by dané jméno mělo být například přezdívkou na nějakém serveru, pak bývá zvykem, že to nemusí být některé z existujících jmen, ale něco libovolného, co si uživatel vymyslí, třeba PetrSvetr. Dále, i když předpokládáme, že "chceme" jenom "normální" jména, by při použití databáze poté měli smůlu lidé, kteří mají méně rozšířené jméno, které třeba v databázi není: kvůli jednoduchosti jsme ztratili obecnost. Myšlenku databáze tedy musíme odložit. Můžeme jít jiným směrem a zkusit brát to, že uživatel při zadání jména přestal psát, jako signál, že jméno je celé. Ovšem tím místo toho, že uživatelskou přívětivost zvýšíme, ji nakonec naopak zcela "zabijeme" - stačí, aby se uživatel při psaní na nějakou dobu zamyslel, zavolal mu někdo telefonem a tak podobně - a vyprší odpočet a zadá se nekompletní jméno. A případný pokročilý uživatel bude nadávat, že mu "to" dělá zbytečně "samo" něco pod rukama. Takže jsme dvěma alternativními způsoby zkusili řešit situaci, ale v obou případech, ač vypadaly na první pohled třeba zajímavě, jsme narazili. Uvedu jiný příklad, reálnější. Máme diskusní systém na nějakém serveru a chceme tam dát možnost vkládat obrázky - typu smajlíků a podobně. Jsou dvě možnosti: buď dáme uživateli na výběr nějaké portfolio předdefinovaných obrázků, ze kterých může vybírat třeba kliknutím. Druhá možnost je zadat možnost odkázat na nějaký libovolný obrázek na celém netu - uživatel potom ale musí vědět o existenci odkazů, jak je zkopírovat a tak dále. Opět máme buďto větší jednoduchost (vybíráme ze seznamu obrázků) nebo větší obecnost (odkazujeme na libovolný obrázek) a balancujeme. Třetí příklad, který se mi opravdu stal: zadával jsem do tabulky číslo verze jednoho dokumentu. Tento dokument měl dříve číslo 0.9, čili následuje verze 0.10 Ovšem - poté, co jsem tabulku odeslal kolegovi, ten mě upozornil, že tam mám napsanou verzi 0.1 - program prostě, aby uživatel nemusel vědět, že položky v tabulce mohou být typu "číslo" "text" a podobně, sám odhadoval, jakého typu položka je - a skutečně pokud by se jednalo o reálné číslo 0.10, je to "stejné" jako 0.1 (v Americe se používá desetinná tečka místo čárky). Balancujeme mezi obecností ("můžu napsat cokoli") a jednoduchostí (počítač pozná, že je to číslo a pak může třeba sčítat) Naše balancování je trochu podobné situaci, když balíme zavazadlo na dovolenou: buď toho nabalíme hodně a pak se budeme tahat s těžkým zavazadlem, nebo toho nabalíme málo a pak riskujeme, že nám nějaká věc, kterou potřebujeme, bude chybět. V naší analogii buďto nabídneme uživateli obecnější volby a pak se může cítit přetížen (protože se bude muset naučit, co je co), nebo toho dáme "málo" a potom hrozí, že někdo, kdo potřebuje nějakou věc udělat, ji udělat nebude moct. Přitom rozpětí se táhne přes celé spektrum od maximální obecnosti, jíž je samotné přímé programování (k němuž musíme znát programovací jazyk, umět algoritmizaci...) k maximální jednoduchosti, kterou je nějaký jednoúčelový program, který dělá jednu jedinou věc a nedá se nijak nastavit. V praxi se setkáváme se systémy po celé šířce mnou uvedené osy. Jako zajímavost uvedu, že je možno se setkat s prostředími a systémy, které jsou blíže tomu "obecnému" konci spektra, než většina běžných programů. Pak člověk nemá jen nějakou "klikací" aplikaci, ale vlastně široké pole možností, v rámci něhož dává velice obecné "kostičky" dohromady a může vytvořit věci na které původní tvůrce programu vůbec nepomyslel. Zase ale musí znát použitý mechanismus nebo jazyk a naučit se ho - to je cena, kterou za to platí. Existuje také kompromis, který se mi jeví zajímavý: přemýšlel jsem o něj podle metafory kapoty v autě. Běžný uživatel pracuje s nějakou "normální" dávkou funkcí a nastavení, kterou je nutné vstřebat, aby s programem pracoval. Pokročilý uživatel, který se chce "vrtat", pak může nějakou netriviální akcí "odklopit kapotu", čímž se dostane ke složitějším nastavením a tam si pošteluje, co potřebuje. Programy, které něco takového obsahují, potom mají naději, že budou přijaty na obou stranách barikády: budou dostatečně jednoduché při běžném používání "normálními" uživateli a zároveň uživatelé pokročilí nebudou naštvaní, že nějaká věc, kterou chtějí nastavit, nastavit nejde. Závěrem bych rád napsal, že uvidíme, jaký vývoj ještě u rozhraní, které jsem popisoval, nastane. Obor se zatím stále ještě hledá a třeba se v budoucnu najde někdo, kdo postaví Kolumbovo vejce na špičku - a vymyslí nějakou syntézu, která vyřeší dilema, nebo jej alespoň zmírní. Dík za to, že onen program "Kolumbova vejce" poběží na počítači, který byl sestrojen předtím, než "vejce" někdo vymyslel, patří právě oné obecnosti, o níž byla tato úvaha.

6 názorů

Ts, ts, co je to za učené diskuse, to je přesně ono - o tom ta úvaha je. Moc mne potěšila. Jsem ten nejběžnější uživatel a a vaše diskuse jsou "ti druzí". Z té diskuse jsem pochopila, že nejsem jediná "negramotná", že je to běžnější jev, když se nad ním uvažuje i zde. Zrovna se snažím jako samouk pochopit Exel a je to dřina. Pro mne. Což lidé s takovými diskusemi nad toolem (nevím, co to je), verzemi s číslováním apod. zajisté nepochopí, jak někdo se to vůbec musí učit...Potěšila mne krásná perspektiva ve vývoji počítačů v této úvaze. Vzpomněla jsem si na první mobil u mne doma. V roce 95? Veliká a těžká bedýnka. Nikdo nevěřil (myslím laickou veřejnost), co všechno budou mobily umět a nikdo nevěřil, jak moc se zmenší a později zase zvětší pro prababičky a pradědy....To kdyby mi někdo tehdy řekl, že i moje matka, 86 let bude mít mobil!?..Dnes už věřím všemu a těším se na kapotový program. U mně bude mít "nobelovku".

StvN
27. 10. 2011
Dát tip
Jistě, vždyť taky 0.10 a 0.1 je to samý. To nemůžeš mít nikomu za zlé, že nepochopí nějaká specifická pravidla.

Danny
27. 10. 2011
Dát tip
postup byl přesně takovýto 1) v jednom toolu mám verzi 0.9 2) udělám změny a ten tool zahlásí, že teď je to 0.10 3) pustím adobe acrobat a tam do tabulky zadám (bez ohledu na předchozí 0.9, o čemž acrobat nic neví) 0.10 4) adobe acrobat to sám změní na 0.1

StvN
27. 10. 2011
Dát tip
O to nešlo. Jde o to, že ty nepřímo viníš počítač z toho, že to pomotal, přitom ten, kdo to motá jsi ty, potažmo tedy zaměstnavatel.

Danny
27. 10. 2011
Dát tip
StvN: číslování verzí tímto způsobem je věcí toho konkrétního toolu mého zaměstnavatele, nemám žádný vliv na to rozhodovat o tom, jakým způsobem se dělá

StvN
27. 10. 2011
Dát tip
Nezlob se na mě, ale matematicky po 0.9 nenásleduje 0.10 Po 0.9 následuje 1.0 Pokud bys uváděl 0.90, pak by následovala verze 0.91

Na psaní názorů musíte mít ověřený email.
Sdílení
Nahoru