Blog | Jak je to s tou jednoduchostí

Jak je to s tou jednoduchostí

Píše o tom Martin zde a zde a není jediný. Píší o tom 37 Signals v obou svých knihách, ale i Joel Spolsky s (podle mě) odlišným pohledem. Sám často a rád prototypuji, přemýšlím o použitelnosti a o tom, jak rozhraní navrhnout.

Přesto se nemůžu zbavit pocitu, že se diskuze vydala nesprávným směrem. Mít málo vlastností nebo hodně vlastností se přeci nedá ilustrovat tím, jaké všechny lišty si můžete ve Wordu naskládat pod sebe. Mít hodně funkcionalit nemusí znamenat vůbec „zasvinění“ uživatelského rozhraní.

Jaké máme požadavky na software? Problém je v tom, že každý jiné. Na čem se ale nejspíš všichni shodneme:

  1. Chci v software udělat svou práci.
  2. Nechci být při té práci příliš vyrušován.
  3. Budu-li dělat nějaké volby, chci dělat jen ty nezbytné.
  4. Pokud se může něco rozbít, chci o tom vědět.

Znamená to, že pokud dělám všestrannou práci, která může mít tisíce různých podob, budu pracovat v programu, který musí mít „rozsáhlé UI“?

Vim

vim

Editor Vim patří k důkazům toho, že můžu mít velmi silný (řekněme spolu s Emacsem nejsilnější na planetě) editor textu bez rozsáhlého UI.

A použitelnost není jen o tom, kolik klikátek vidíte (nebo spíš nevidíte). Je to i o tom, zda dokážete udělat svou práci.

Vrátím se k Vimu, protože je to typický software s nulovou počáteční použitelností a výkonem při práci a s obrovským výkonem, jakmile se do toho dostanete.

Řekněme, že mám report v HTML a chci nechat jen 100 posledních elementů <tr> včetně jejich obsahu. Jak by to bylo řešené řekněme ve Visual Studiu? V Eclipse? Psali byste si plugin? Nějaký vlastní skript? Vždyť je to trivální hloupost, nač psát skript?

Feature less řešení (kterých je 99 %) to nevyřeší nijak snadno. A teď koukneme na Vim:

G – jdi na konec souboru
?<tr[ENTER] – najdi <tr směrem nahoru
99n – poskoč o 99 výsledků
k – o 1 řádku výše
Vg – označ vše od této řádky až na začátek souboru
d – vymaž výběr

(poznámka: poslední 2 příkazy Vgd se dají vyřešit alternativně dgg, která zarytým Vimistům bude připadat logičtejší, znamená totiž: smaž vše od kurzoru po začátek souboru)

Ve zkratce: G<[ENTER]99nkVgd – stiskli jsme 10 kláves a problém je vyřešen. A teď – je takové řešení použitelné?

  1. Chci v software udělat svou práci – ano, udělal
  2. Nechci být při té práci příliš vyrušován – musím ve svém editoru umět hledat, mazat a pohybovat se. Základní pensum znalostí, které se naučíte po 10 minutách. Musí tedy mít člověk zvláštní schopnosti? Podle mě ne.
  3. Budu-li dělat nějaké volby, chci dělat jen ty nezbytné – to byly jen ty nezbytné. Našel jsem 100 výskyt od konce a smazal jsem vše nad tím.
  4. Pokud se může něco rozbít, chci o tom vědět – nic se rozbít nemohlo. Pouze pokud by nebylo v souboru 100 elementů tr, viděl bych, že jsem zase na začátku

Skoro v každém editoru by byla úloha podobně trivální, to není jen vimem. Je to tím, že editory nemívají vlastnost: jdi o N výsledků vyhledávání dál. Cena za chybějící vlastnost? Nejspíš nutnost psát si skript, nebo to provést ručně (i to může být jednoduché – pokud jsou data v table podobná, spočítám si počet řádek mezi tr a /tr a vynásobím to stovkou – tam najdu první tr, který má ve výběru zůstat. Problém je, že to není univerzální, jednoduché ani produktivní.

Automator

A teď jinak. Chci zveřejnit článek, mám v článku pár obrázků a samotný text. Na webu mám SOAP bránu, která přijme článek a zveřejní ho (v Zend Frameworku na pár řádek).

Co potřebuji k tomu, abych rychle, zábavně a správně vložil článek? Napsaný článek vložím do schránky, označím soubory, které chci zveřejnit s článkem a spustím akci. Jakou akci? Nějakou složitou? Něco, co jsem celou noc programoval? Něco, co jsem si odněkud stáhnul?

Nikoliv, použil jsem Automator a akci jsem naklikal za 5 minut.

automator

Toto řešení patří k nejjednodušším, jaké může člověk vymyslet. Je zajímavé, že rozhraní Automatoru je primitivně jednoduché a zároveň snadno rozšiřitelné a netrpící nedostatkem vlastností.

Quicksilver

A další příklad. Rád piju sypané čaje. Kdo z vás je pije taky, ten ví, že je nutné čaj nepřelouhovat. U takového Gao shanu stačí i jednotky vteřin, nejčastěji ale necháváme čaj 3 minuty. A ty si člověk musí nějak odměřit. A co vy? Máte kuchyňskou minutku? Nebo software na počítači? Oko? Stopky na mobilu? Kolik stiknutí kláves potřebujete pro nastavení 3 minut a zobrazení zprávy „čaj“? Já použil nástroj Quicksilver (web mi ve chvíli psaní nefungoval, autor má ale software i na GitHubu) o kterém ode mě ještě jistě uslyšíte.

Quicksilver je spouštěč aplikací. Ale umí toho daleko víc. Resizovat obrázky, posílat soubory mailem nebo na FTP, hledat soubory, vkládat text do souborů, zobrazovat velký nápis na obrazovce (používám často při školení), ovládat SVN a asi tisíc dalších akcí (které je možné snadno doplnit pomocí pluginů).

A jak Quicksilver donutit, aby po 3 minutách zobrazil „čaj“?

[Alt][Alt] – zobrazím si Quicksilver
. – vstoupím do zadávacího módu (v něm se místo programů a příkazů píše text
čaj – napíšu čaj
[Tab][Ctrl-Enter] – přepnu se do části s akcí a dám Quicksilveru vědět, že defaultní akce „large type“ bude modifikována
d – místo spuštění totiž chci spuštění „Run after delay“
[Tab] – přepnu se do dalšího okýnka, kam můžu zadat čas
3m[Enter] – chci za 3 minuty 

Ve zkratce [Alt][Alt].čaj[Tab][Ct­rl-Enter]d[Tab]3m­[Enter], 14 stisknutí klávesy. A to ještě neříkám všechno – kdybych si ten Quicksilver naskriptoval, stačilo by mi [Alt][Alt]č[Enter], tedy 4 klávesy. Přitom rozhraní je velmi jednoduché. A nástroj nedostatkem vlastností netrpí.

Hledáme společný jmenovatel

Společným jmenovatelem jsou dvě maličkosti: extrémní použití klávesnice a paměť. Přemýšlím nad tím, zda člověk, který neumí pracovat na klávesnici nebo má slabou paměť (ještě víc než já), může být produktivní. Právě pro tyto lidi jsou programy plné klikátek, lištiček apod. A pro ty nejspíš bude platit, že je rozhraní buď jednoduché (protože toho sw víc neumí) nebo zabordelené (protože podle pravidla 80/20 jsou pro ně čtyři pětiny zbytečný bordel).

Pro ty, kteří se nebojí použít klávesnici a mozek, existují nesmírně produktivní a zároveň neobtrusivní řešení už po desítky let.

Použitelnost

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