Když je kreativita překážkou

Obecně se věří, že úspěch v kreativní profesi, mezi které patří i velká část softwarové vývojařiny, je přímo úměrný kreativitě. Tedy že čím víc nápadů, tím líp. Bohužel to neplatí tak doslova; mnohem důležitější bývá schopnost své nápady ukočírovat a kreativitu omezit. Nebo alespoň najít někoho, kdo nám ji omezí.

Když se ptali George Malloryho, proč, u všech všudy, lézt na Mount Everest, odpověděl legendárním výrokem: Protože tu je! Tato věta se pak stala symbolem všech výzev, dobrodružství a dobývání neprobádaného. Používají ji nejen horolezci, potápěči, polární badatelé, astronauti či vědci, ale její obdobu znají i mnozí vývojáři a používají ji jako odpověď na otázku „Proč má naše aplikace zrovna tuhle novou funkci?“ – Protože to dokážeme naprogramovat! 

Což je hezké, ale programování není výzva (tedy – pro programátory je; když jsem ještě programoval, říkal jsem, že jsem placen za to, že si v pracovní době hraju a zkouším, jestli dokážu udělat to či ono). Programování je činnost, která by měla směřovat k nějakému cíli, a tím je hotová aplikace, která plní nějaké funkce, co potřebuje její uživatel. Uživatel, to je ten člověk, kterému se tak rádi smějete, že nerozumí počítačům (tu diskusi snad ani nebudeme připomínat), ale faktem je, že on to celé platí a očekává, že když už to platí, tak taky dostane něco, co mu bude nějak k užitku.

Tady by se hodila jiná věta, kterou mi říkali rodiče, a vsadím se, že ji říkali v různých variantách snad všem: „Že umíš jezdit na kole bez držení, neznamená, že tak musíš jezdit furt!“ Tedy obecněji: Nemusíš něco dělat jen proto, že to dokážeš.

Proč by matky nelezly na Everest?

Ano, rodiče (a obzvlášť matky) mají speciální talent na to, aby všechny výzvy, dobrodružství a dobývání neznámých zemí uťali už v zárodku. Cesta na autobus přes les se s rodiči (zejména matkami!) jen těžko změní v dobrodružství poznání, protože po nás požadují chůzi pěšinkou. Nechtějí se kochat pohledem na mraveniště, prodírat se ostružiním, lézt na stromy a zkoušet přeskočit potok, ale chtějí dojít na druhý konec lesa, spořádaně se postavit na zastávku a počkat, až pojede autobus.

Představovat si v roli uživatelů své rodiče je velmi dobrá metoda, jak udržet svůj neklidný vývojářský duch na uzdě, a někteří vývojáři své produkty často právě na rodičích, matkách, přítelkyních a manželkách testují. Představa uživatele coby rodiče se ale nemusí hodit jen při přípravě uživatelského rozhraní, ale i obecněji. Představte si vývoj jako tu zmíněnou cestu lesem: Zákazník-rodič má nějakou potřebu (dojít včas na autobus) a je na vás, jak se mu půjde.

„Pojďte, vylezeme támhle na tu skálu!“
„Proč bychom na ni lezli?“
„No, můžeme se rozhlédnout…“
„Proč?“
„Uvidíme jistě spoustu zajímavého… Jo! Uvidíme, kde je zastávka!“
„Vím kde je, to nemusím lézt na skálu. Zastávka je na konci téhle pěšiny!“

Možná že vás napadlo něco, o čem zákazník ani nevěděl, že to chce, dokud jste mu to neukázali. Dejme tomu. Ale ruku na srdce – ze sta nápadů typu „to dokážeme udělat“ je jeden, z něhož je zákazník opravdu nadšen, devět takových, že je bude zákazník nakonec používat, a devadesát bude navždy jen „výplň nástrojové lišty“, pomníček, připomínající, že nějaký programátor dokázal naprogramovat tuhle funkci.


Dave Duarte

Všechno tohle dokážeme naprogramovat!

Ve velmi pěkné knize Designing the Obvious od Roberta Hoekmana (dostupné i pro Kindle, mimochodem…) je (sebe)obrana před podobným přístupem jedním z leitmotivů. Dokonce i názvy některých kapitol jsou velmi výmluvné: „More Features, More Frustration“ či „Drop Nice-to-Have Features“.

Stejné ponaučení naleznete i v knihách Getting Real od 37signals nebo v Krugově bestselleru Nenuťte uživatele přemýšlet: Vezměte to, co chcete udělat, a vyházejte vše, co není nezbytně nutné, aby vám zůstalo jen to podstatné. A pak to udělejte ještě jednou.

Leckdy pomůže přesně opačný přístup

Omezte svou kreativitu!

Práce vývojáře je ve své podstatě dobrodružstvím ducha, objevováním, hrou… Je tedy pochopitelné, že vývojáři mívají často tendenci tomuto přístupu podlehnout. V žertu se o vývojářích říká, že jsou schopni se celou dobu, kterou na práci mají, věnovat jednomu zajímavému, ale naprosto podružnému detailu, a zbytek aplikace napsat v noci před předáním zákazníkovi. U některých však nejde o žert ani nadsázku…

Ze stejného soudku je i výše popsané chování, tedy snaha nacpat do aplikace vše, co do ní nacpat dokážeme. Někdy se vývojáři ani nemusí snažit, někdy to jde samo a stačí se jen nebránit. Výsledkem je cosi, co „umí udělat všechno“ – výtvor, na který jsou jeho autoři nesmírně hrdí a velice těžce nesou, když po nich někdo chce, aby většinu funkcí vyházeli. Obvyklým protihmatem zhrzených tvůrců pak bývá prohlášení o tom, že se jedná o „nástroj pro profesionály, kteří jej dokáží plně ovládat, a kteří přece vyžadují plnohodnotný software“. Což je pravda, ale pravda je i to, že profesionál potřebuje pracovat, ne se učit obskurní uživatelské rozhraní a ovládání miliardy parametrů (zde upozorním, že slovo miliarda je použito v nadsázce).

Pro tvůrčí lidi, kterými vývojáři často jsou, bývá obtížné udržet kreativitu na uzdě a nepodlehnout svodům své vlastní fantazie. Programátory jejich vlastní tvořivost a schopnosti leckdy svádí k tomu, že dělají věci proto, že je dokáží udělat. Co na tom, že to zákazník nepotřebuje a nechce (a nezaplatí) – bude tam mít přece ikonku navíc, která mu nabídne něco, co mu konkurenční software nenabídne. Kreativní – ale technický – mozek programátorů očekává, že zákazník se rozhoduje podle počtu funkcí jednotlivých aplikací, a když ta naše umí víc než ty ostatní, tak koupí tu naši, to je přeci jasné. Ve skutečnosti tomu tak není, a programátoři většinou důvod nechápou („přece nikdo nekoupí za stejný peníze software s míň funkcema?!“)

V už zmíněné knize o návrhu samozřejmého přirovnává autor podobné uvažování k běhu v první bojové linii: Můžete běžet, ale musíte pořád střílet; jak přestanete střílet, musíte se skrýt. Podobně se můžete s konkurencí neustále trumfovat, vymýšlet další a další nové funkce a sepisovat sáhodlouhé seznamy schopností, co bude oddělení PR psát do tiskových zpráv k novým verzím. Když oni šedesát nových ikon, tak my sedmdesát, a větších! Jakmile na tenhle styl přistoupíte, musíte v něm pokračovat, dokud buď vy nebo konkurence nepadne. Navíc nelze nikdy vyhrát – ať uděláte sebenadupanější verzi („The most complete release ever!“), vždy se může objevit konkurent, který k tomu ještě něco přidá – a běží se dál.

Je to vyčerpávající závod – nejen pro vývojáře, ale i pro uživatele a zákazníky. Platí totiž jednoduchá pravidla: Čím víc funkcí to má, tím víc se musí uživatel naučit. Čím víc nastavení, tím víc nastavování. Čím komplexnější aplikace je, tím míň s ní lidé pracují a tím víc času věnují nastavování.

Ano, jsou uživatelé a zákazníci, kteří tohle všechno vyžadují a potřebují a jsou ochotni se to naučit. Jsou uživatelé, kteří si to koupí, protože chtějí věřit, že jsou profesionálové a odborníci, a k tomuto dojmu jim nesedí jednoduchý nástroj. Ale většina uživatelů (dokonce i většina profesionálů) dá přednost dobře použitelnému programu, který dělá míň věcí, zato perfektně, před něčím „vše-v-jednom“. Profesionál se nebude ptát, jestli máte víc funkcí než konkurence, ale co s tím dokáže udělat a jak.

A jaká že je ta myšlenka dne otce Fourata (správně francouzsky Fouras)? Až někdy budete váhat nad tím, jestli přidat novou funkci, vzpomeňte si: Nemusíte dělat něco jen proto, že to dokážete udělat!

Začal programovat v roce 1984 s programovatelnou kalkulačkou. Pokračoval k BASICu, assembleru Z80, Forthu, Pascalu, Céčku, dalším assemblerům, před časem v PHP a teď by rád neprogramoval a radši se věnoval starým počítačům.

Komentáře: 44

Přehled komentářů

Radek Ale opravdu přidáváme funkce proto?
Joey Re: Ale opravdu přidáváme funkce proto?
keff Re: Ale opravdu přidáváme funkce proto?
keff Re: Ale opravdu přidáváme funkce proto?
keff Re: Ale opravdu přidáváme funkce proto?
Tuhraklen Re: Ale opravdu přidáváme funkce proto?
Martin Malý Re: Ale opravdu přidáváme funkce proto?
- Re: Ale opravdu přidáváme funkce proto?
Martin Malý Re: Ale opravdu přidáváme funkce proto?
Jan Re: Ale opravdu přidáváme funkce proto?
Martin Malý Re: Ale opravdu přidáváme funkce proto?
- Re: Ale opravdu přidáváme funkce proto?
Martin Malý Re: Ale opravdu přidáváme funkce proto?
anon Re: Ale opravdu přidáváme funkce proto?
- Re: Ale opravdu přidáváme funkce proto?
Martin Malý Re: Ale opravdu přidáváme funkce proto?
Dan Re: Ale opravdu přidáváme funkce proto?
Radek Hulán Re: Ale opravdu přidáváme funkce proto?
- Re: Ale opravdu přidáváme funkce proto?
Radek Hulán Re: Ale opravdu přidáváme funkce proto?
- Re: Ale opravdu přidáváme funkce proto?
donnie Re: Ale opravdu přidáváme funkce proto?
- Re: Ale opravdu přidáváme funkce proto?
Lokutus Re: Ale opravdu přidáváme funkce proto?
VfB Re: Ale opravdu přidáváme funkce proto?
co je navíc ? Re: Ale opravdu přidáváme funkce proto?
FilipK Hillary vs Mallory
Martin Malý Re: Hillary vs Mallory
Lokutus Úvaha na podobné téma
rohlik Nebudte kreativni
Bubak UI design
Dan Re: UI design
biq Re: UI design
JosefK Pěkný článek
I/O Vzpomínám si na svá studentská léta,
František Kučera Re: Vzpomínám si na svá studentská léta,
Pavel Re: Vzpomínám si na svá studentská léta,
Clock Zdroj?
Death Plati to len pre programatorov?
Oldis k tem matkam co maji tu vlastnost ze objevovani utinaji uz v zarodku
MCE Proč nepřidávat další vlastnosti?
100% Lenin Je to pěkné a obecné.
Tuhraklen Z pozice uživatele
uf nekdy je to proste i zabavne
Zdroj: https://www.zdrojak.cz/?p=3356