Princip minimálního překvapení
Princip minimálního překvapení (anglicky principle of least astonishment) se vztahuje na návrh uživatelských rozhraní, design a ergonomii software. Někdy je označován také jako pravidlo/princip nejmenšího překvapení.
Princip minimálního překvapení souvisí s použitelností, přístupností, uživatelskou přívětivostí.
Princip vychází z tvrzení, že uživatel je součástí systému. Uživatelské rozhraní má proto respektovat jeho zkušenosti, očekávání a mentalitu. To co je méně překvapující často záleží na konkrétním koncovém uživateli daného systému. Uživatelské rozhraní programu by mělo být nastaveno tak, aby ve výchozím stavu uspokojilo potřeby a komfort většiny cílových uživatelů.
Jinak řečeno se tento princip snaží využít existující očekávané znalosti uživatele k minimalizaci doby učení se ovládání nového programu, například tím, že při návrhu uživatelského rozhraní využijeme prvky podobných, uživateli známých programů. V tomto ohledu může být očekávání uživatele úzce spojeno s konkrétním systémem nebo platformou, na kterou je uživatel zvyklý. Například u programů obsahujících ovládací prvek podobný Unixové příkazové řádce je uživatelem očekávána i podobná syntaxe příkazů. Stejně tak programy systému Windows by měly respektovat obvyklé klávesové zkratky.
V abstraktnější rovině, jako je programové API nebo zdrojový kód programu, se očekává logické pojmenovávání funkcí a metod, kde již z názvu má být patrná funkcionalita. Složitější funkce u kterých to tak není by měli být doplněny o vysvětlující komentáře.
V případě, kdy je prvek uživatelského rozhraní nejednoznačný, mělo by jeho chování uživatele co nejméně překvapit (dle principu nejmenšího zla). Konkrétně by se měl programátor pokusit vžít do role budoucího uživatele systému a chování navrhnout pochopitelně i pro uživatele bez znalosti vnitřního fungování programu.
Obecná pravidla a firemní kultura
editovatPro návrh uživatelských rozhraní existují obecná pravidla pro jednotlivé operační systémy a platformy. Pro vývojáře je vydává například firma Apple (Mac OS X Human Interface Guidelines) nebo Microsoft.
Stejně tak pro psaní zdrojových kódů jednotlivých programovacích jazyků existují konvence, jak psát kód co nejlépe čitelný a srozumitelný. Navíc, jelikož mnoho programovacích jazyků nabízí pro stejné funkce různé programové konstrukce a syntaxe, vyvíjí mnoho firem další iniciativu aby usnadnili práci svým zaměstnancům a zavádějí vlastní konvence, jak psát zdrojové kódy tak, aby jim snadno rozuměli všichni zaměstnanci, kterých se to týká.
Jednotlivé programovací jazyky mají také své vlastní nástroje a způsoby jak komentovat zdrojové kódy programu, aby se v nich budoucí programátoři vyznali. Například pro programovací jazyk JAVA je známý systém Javadoc.
Příklady
editovat- Představme si situaci, kdy se uživatel chystá vyplnit své jméno a heslo (či jiná citlivá data) do jednoho programu a je vyrušen příchozí zprávou z chatovacího programu. Některé chatovací programy po příchozí zprávě automaticky přejdou do popředí a kurzor nastaví do pole pro odpověď, protože předpokládají, že uživatel bude chtít na zprávu odpovědět. Uživatelé, kteří při psaní sledují klávesnici a nikoli monitor mohou pak nečekaně zjistit, že do chatu odeslali své jméno a heslo.
- Klávesa F1 je ve většině programů využita k otevření nápovědy. Uživatelé očekávající okno s nápovědou bude nemile překvapen, pokud ve chvíli kdy hledá nápovědu programu jí nenajde.
- Dva způsoby zápisu stejného forcyklu v jazyku java mohou zmást především začínající programátory.
int[] cisla = {1,2,3,4,5,6,7,8,9,10};
for (int cislo : cisla) {
System.out.println("Cislo je: " + cislo);
}
int[] cisla = {1,2,3,4,5,6,7,8,9,10};
int cislo;
for(int i=0; i<cisla.length(); i++) {
cislo = cisla[i];
System.out.println("Cislo je: " + cislo);
}