Přejít k navigační liště

Zdroják » Různé » Proč je dobré dělat věci složité?

Proč je dobré dělat věci složité?

Články Různé

Před týdnem jsme si na tomto místě povídali o tom, jak přílišná kreativita, nespoutaná sebekázní, může být na překážku tvůrčímu procesu. Chválili jsme jednoduchost. Dnes pochválíme složitost a vytváření komplikovaných a drahých věcí. Rozpor? V černobílém a doslovném světě možná; ve skutečném nikoli.

Nálepky:

Přiznám se bez mučení, že tato glosa navazuje na tu z minulého týdne zcela záměrně, a dokonce i k tomu, že její téma, které se tváří jako protiklad a náhlá změna názoru, jsem měl připravené už při psaní té první. S lehkou škodolibostí jsem čekal na to, až mi přijde někdo vysvětlit, že se mýlím, protože lidé složité věci ve skutečnosti chtějí a potřebují.

Jednoduchost je přeceňovaná!

Dělat věci složité je poměrně jednoduché, ale udělat věci jednoduché není vůbec snadné, ačkoli by se zdálo, že tomu je přesně naopak. Zjednodušení totiž může být dobré i špatné. Špatné je takové, kdy někdo od stolu vyškrtá vše, co se mu zdá složité a nadbytečné. Dobré zjednodušení pak spočívá v přístupu, který v diskusi zmínil jeden komentující: Jak to udělat, aby nástroj uměl co nejvíc věcí s co nejmenším počtem funkcí? Tedy v citlivém vyvážení a v pečlivém posouzení každého prvku, každé funkce: Co dělá? Musí to dělat? Neduplikujeme tu něco jiného? Je to nezbytné?

A pak přijdeme na trh s pečlivě vyladěným nástrojem a funkčně čistým designem, a on ho nikdo nekupuje! Lidi kupují něco jiného: kupují programy, s nimiž toho udělají možná míň, ale které jsou od pohledu složité, komplexní a mocné. (Na toto téma doporučuji článek od Dona Normana, který se na věc dívá z podobného úhlu jako následující text.)

Podvědomí a ryzí absurdno

Vysvětlení takového počínání je jednoduché, ale dostáváme se do oblastí soft skills, k oborům jako je psychologie a ekonomie – a není potřeba připomínat, jaké pověsti se tyto obory u velké části čtenářů Zdrojáku těší. Na místě je dodat: …bohužel!

Ochota koupit (či používat) nějaký program totiž není nijak, natož přímo, úměrná schopnostem a vlastnostem onoho programu. Představa, že si budoucí uživatel / zákazník udělá podrobnou rešerši, oproštěnou od jakýchkoli emocionálních vlivů, a rozhodne se čistě na základě naprosto racionální úvahy, založené na věcném porovnání nabídky s vlastní reálnou potřebou, je z říše pohádek. Do rozhodování o koupi totiž vstupuje mnoho dalších, vědomých i nevědomých, faktorů, které nemají s věcným srovnáním funkcí nic společného, přesto významně ovlivňují užitnou hodnotu pro zákazníka.

Pokud se vám nelíbí obchodnický tón, tak si doplňte vám sympatičtější výklad – místo „zákazníka“ dejte „uživatel“, místo „zboží“ třeba „software“, no a místo „koupit“ čtěte „rozhodnout se pro používání“. Princip zůstává téměř doslova stejný.

V první řadě platí, že člověk zboží koupí tehdy, když jeho hodnota je vyšší než cena, kterou za něj zaplatí. Což je prostá operace porovnání dvou hodnot, logická a pochopitelná. Bohužel porovnáváme dvě hodnoty, z nichž jedna je subjektivní a druhá neurčitelná, takže s navyklými mechanickými postupy nevystačíme.

Hodnota konkrétního zboží (programu, …) je naprosto subjektivní, pro každého člověka jiná. Samotný materiální zisk, který konkrétní zboží přinese („ušetříme XYZ peněz“, „získáme zakázky za ZXY peněz“, „udělám Xkrát víc práce za stejný čas“), je jen jednou její složkou. Co dál určuje hodnotu?

  • vkus („zelený hranatý mobil? No fuj!“)

  • móda („musí to mít dotykový displej“, „musí to mít kulaté rohy“) – módní zboží je vnímané jako modernější, výkonnější, lepší, …

  • vliv na sociální status (situace dobře známá u mobilních telefonů z 90. let – kdo měl vyskakovací Nokii, byl nadsamec, kdo měl plastového Alcatela, byl socka)

  • kulturní kontext (jen dva příklady: červené auto a červené boty mohou stát mnohem víc než totéž v jiné barvě)

  • sociální kontext (jinou hodnotu bude mít zlatý řetízek a tepláková souprava pro programátora na srazu programátorů, a jinou pro majitele autobazaru na srazu majitelů autobazarů)

  • atd.

Všechno tohle při rozhodování hraje roli, a nikoli zanedbatelnou. Zákazník objektivně porovnává, zda je výhodnější program A za X peněz, který přinese zisk Y, nebo program B, který stojí XX peněz a vydělá YY – a přitom subjektivně k ziskům připočítává věci jako „budu si před těma kašpárkama z jinejch firem připadat dobrej, když mimoděk na rautu utrousím: já mám ve svý firmě účetnictví na ou’reklu“. Jakou cenu má takové prohlášení? Jak pro koho, že…

K ceně, tedy druhému faktoru rozhodujícím o koupi, lze říct totéž: Subjektivně vnímaná cena, kterou člověk opravdu zaplatí, souvisí s částkou na cenovce jen velmi volně. Nejen proto, že pro každého má stovka jinou hodnotu, ale i proto, že v této částce nejsou zahrnuté další náklady, které s věcí budeme mít, tzv. náklady na vlastnictví. Tam lze započítat jak přímé náklady, např. cenu spotřebního materiálu, ale i náklady na opravy, dostupnost servisu či čas nutný k zaškolení – a každý z nás tyto faktory vnímá jinak, a některé dokonce opomíjíme (protože je opominout chceme – koupíme to, co je bezprostředně levnější, i když vlastnictví bude pak mnohonásobně dražší). Lidové pořekadlo shrnuje tyto náklady v lakonickém označení určitého zboží slovy „zadarmo drahý!“

Koeficient ješitnosti

Pro mnoho lidí je důležité, že na jejich notebooku, mobilu, oblečení, autě… je nějaké konkrétní logo. Pro někoho není důležité samotné logo, ale podřídí se tlaku skupiny, aby „nevypadal jako socka a hňup, co tomu nerozumí“ – jak mnozí říkají „Já bych si koupil i jiný, ale to bych byl out“. No a další si zcela nepokrytě pořizují věci podle toho, jak chtějí, aby je jejich okolí vnímalo (typicky: koupí si nejlevnější MacBook, aby podtrhl snahu vypadat jako nezávislý kreativní jedinec, co jde proti proudu).

Procesem zvaným racionalizace si pak vnitřně zdůvodní, že vlastně přesně toto potřebují, a čím silněji racionalizovali, tím agresivněji své rozhodnutí obhajují. (Opět je vhodný okamžik připomenout čtenářům, že pokud jim připadá, že oni sami se tak nechovají, neznamená to ani že obecné tvrzení není pravdivé, ani že autor sám se chová tak, či smýšlí onak. Keyser Söze by dodal, že nejlepší racionalizací je přesvědčit sám sebe, že žádnou racionalizaci neděláme.)

Čímž se dostáváme k vysvětlení situace, zmíněné v úvodu. Lidé často koupí i objektivně horší program za víc peněz, pokud bude působit jako složitější. Faktor „složitosti“ tu totiž podvědomě působí na zkušenost většiny lidí, která jim říká, že „profesionální“, „odborné“ a „opravdové“ věci jsou složité k ovládání. Že řídicí pult jaderné elektrárny je hrozně složitý a obsluhují ho odborníci. Že kokpit dopravního Boeingu je plný čudlíků, páček, ukazatelů a kontrolek, a tudíž za něj může usednout jen dlouho školený profesionál. (Don Norman správně podotýká, že vnímaná složitost záleží na znalostech a zkušenostech – pilotovi připadá kokpit přehledný a sdělný.)

Zkušenost nelže. To jen lidské podvědomí rádo podléhá logickým klamům, jako že „potom je proto“ nebo svodu obrácené implikace. Lidé zkrátka vidí, že u složitých zařízení sedí opravdoví odborníci, a dedukují si z toho dva chybné závěry – totiž že odborník může sedět jen u složitého zařízení, a pak že každý, kdo sedí u složitého zařízení, je odborník. Racionálně víme, že to není pravda, ale podvědomí nepracuje vždy racionálně. A i kdyby naše podvědomí racionální bylo, tak nebude racionální u našeho okolí. (Co jste to za odborníka, když to vaše zařízení má jen jedno tlačítko a jeden ukazatel? Vždyť to by uměl každej!)

Pamatujte: Lidé se při rozhodování chovají na první pohled iracionálně. Ale iracionalita jejich chování je předvídatelná – pokud k tomu máte patřičné ekonomické, psychologické, sociologické atd. soft skills, chtělo by se škodolibě dodat.

Ať to aspoň vypadá…

Běžní zákazníci si nakonec koupí dražší výrobek, protože kdyby si koupili lacinější, byť dostačující, bude je okolí považovat za „socku“. Navíc je napadne zákonitě úvaha: „Proč to je tak levné? Museli to ošidit!“ Koupí si ten, který bude módní, protože jim připadá moderní. Koupí si ten, který vypadá složitě, protože si budou moci připadat jako odborníci, nebo tak budou připadat svému okolí. I když to nikdy nepřiznají – racionalizací si zdůvodní, že to vlastně potřebují.

Rada, která je na pohled přesným opakem té z minulého týdne, tedy zní: Dělejte věci, co vypadají „odůvodněně složitě“. Komplikovaná UI s mnoha nastaveními a spoustou funkcí. Na trhu budou vypadat „profesionálně“, a ty, jejichž autoři zjednodušovali, budou vedle těch vašich vypadat jako neschopné dětské hračky. Vaše věci tak budou svým majitelům dávat nezanedbatelnou přidanou hodnotu, totiž „pocit, že jsou odborníci, když pracují s takovým složitým verkem“.

Dělejte věci přiměřeně drahé. Levné zboží působí podezřele, navíc cena zboží pro majitele zvyšuje jeho hodnotu. Dražší zboží vnímají lidé často jako luxusní, což je pro některé opět nezanedbatelná hodnota. Vlastnictví věcí, vnímaných jako luxusní, totiž zvyšuje sociální (sebe)hodnocení. (Jsou jedinci, co se považují za „lepší lidi“, protože vlastní nejlevnější výrobek „luxusní značky“, nebo si pořídili nejlevnější dovolenou v „luxusní destinaci“.)

Další informace na toto téma najdete ve výborném blogu Pricing Idiota, který na první pohled vypadá, že je věnovaný tvorbě cen – ve skutečnosti se zabývá lidským chováním a ilustruje ho na cenotvorbě… Velmi zajímavé čtení, které souvisí s vývojařinou víc, než by se na první pohled zdálo.

Jak to tedy, u všech všudy…?

I programátorský potěr ví, že boolovská proměnná nemůže být zároveň truefalse. Jak tedy může autor tvrdit, že by věci měly být rozumně jednoduché, a zároveň nabádat k vytváření drahých a složitých? V zásadě si to můžete vyložit dvěma způsoby:

  1. Autor neví co plácá, ale plácá, jen aby udělal dojem, a dělá přitom mindtwisty s kopnutím do vlastních zad. Nejcennější jsou tu odkazy na Pricing Idiota a Dona Normana.

  2. Autor nedává doslovný návod, jen naznačuje a provokuje k zamýšlení i mimo obor, třeba těmi odkazy na Pricing Idiota a Dona Normana

Záleží jen na vás, který způsob je pro vás přijatelnější a který má pro vás větší hodnotu.

Hledání jednoznačného pravidla

Co si tedy z těchto dvou protichůdných článků odnést? Navíc když vůbec nebyly na první pohled o programování. Dvě protikladné glosy, dva protikladné závěry, co tedy máme použít? Použijte hlavu! Svět je složitý, nejednoznačný, nepředvídatelný a neexistují v něm jediné objektivní pravdy. Žádné pravidlo ani rada není univerzální, a pochopit jeho obsah znamená mít jen půlku sdělení. Druhá půlka spočívá v jeho správné aplikaci v pravý čas na správném místě správným způsobem.

Ale to už z žádné knihy nevyčtete, v debuggeru nenajdete a IDE vám v tom nenapoví. Musíte se spolehnout na svou zkušenost a rozhled.

PS pro čtenáře, co i přes to všechno hledají nějaké jasně formulované pravidlo, kterého by se měli držet: Všechno by mělo být uděláno tak jednoduše, jak jen to jde. Ne však jednodušeji. – Albert Einstein

Komentáře

Subscribe
Upozornit na
guest
27 Komentářů
Nejstarší
Nejnovější Most Voted
Inline Feedbacks
View all comments
Michal

Mě se prostě Vaše články líbí. Jdete přesně tím směrem, který tu dlouho chyběl na nějaké „známější“ úrovni (když pominu Plaváčka, pixyho a další lidi, kteří přesně ví, proč píšou to co píšou a nekydají jen bludy v diskuzích).

Vy musíte být pro iinfo, potažmo zdroják, požehnání :-) Věřím tomu, že člověk, který to má v hlavě srovnané, dokáže sepsat na jedné straně plně odborný článek a na straně druhé trefnou glosu, je placen zlatem.

Jen víc takových článků, jen více takových lidí. Díky a těším se na další články.

blizzboz

jednoduché problémy sa riešia jednoducho, zložité problémy komplexne, veľakrát sú príliš jednoduché riešenia cesta do pekla a na prvý pohľad najjednoduchšie riešenie je nakoniec to najzložitejšie

em

Za dob textových terminálů nás válcovaly obarvené tabulky na PC. Uměly jen hrubou evidenci, ale byly barevné. My jsme měli vymakanou funkčnost, ale to se vidělo až při použití.

Zrovna tak dopadnou firmy se SAPem. Někdo nařídí pořídít SAP, protože se dohodli na golfu. Starý funkční systém se zahodí, dva roky se přechází na SAP, platí se drahé školení, konzultace a úpravy, nic se nedá najít, lidé mají víc práce. Po dvou letech se řekne, že to bylo super a děkujeme pánům, kterí to měli na starost.

A buď zavedeme něco dalšího nebo si to vyrobíme sami.

Naith

SAP, to je ten systém, co pro každou blbost chce vygenerovat papir?

backup

to s tim SAP dnes uz neplati tak obecne. Nejpadnejsi argument je dnes banka, ktera da stredne velke firme kredit teprve pote, kdy provede hloubkovy rozbor hospodarskych vysledku.

A v teto chvili ma ta stredni firma jediny trumf – ze pouziva SAP. Pak muze tem ‚kontrolorum‘ rict -> tady je SAP, to je standard, vytahni si z toho co chces. Kdyz by mela firma nejaky mene znamy ERP, tak ji bude banka neustale buzerovat, protoze ten ERP system neni nic znameho, standardniho, udaje toho systemu se budou neustale zpochybnovat atd.

Toto je dnes nejvetso problem – naproti tomu vest sklad a objednavky a to vsechno okolo je skutecne jiz zvladnuto.

Petr Staníček

Ano, obojí je pravda, oba přístupy platí – lidi současně chtějí jednoduché věci, a současně z určitých podivných důvodů kupují i ty složité. Ale nemyslím si, že to platí současně na stejné cílové množině. On je podle mě totiž problém v tom slově „lidi“. Jinými slovy existuje cílová skupina, která chce věci jednoduché a intuitivní, a cílová skupina, která chce věci komplikované a maximálně multifunkční. A podle mých zkušeností je tím klíčovým slovem pro třídění pojem „fanoušek, nadšenec“.

Blázen do aut a sportovní řidič prostě slintá po mašině plné hejblátek s přístrojovkou hodnou boeingu a nejméně pěti pedály na podlaze. A řidič, který auto bere jako nezbytný nástroj k přepravě, ocení vůz s jedním kolem na kroucení a ideálně s jediným pedálem (už se na tom pracuje!). Geek je nadšen z pětiúrovňového systému preferencí, BFU miluje jediný přepínač on/off. A tak dále.

A teď jde o to, co a pro koho vyrábíme. Většinový uživatel ve většině oborů je laik, a proto taky většinově platí ta poučka o jednoduchosti a simplifikaci až samou dřeň (a pak ještě dvakrát). Na mainstreamovém trhu se s tímhle přístupem nedá prostě střelit vedle. Mnozí výrobci a jiní applové by o tom mohli vyprávět. Nicméně ani ten menšinový trh není nezajímavý. Geeků a nadšenců je málo – ale často tvoří majoritu konkrétních úzce zaměřených cílových skupin a často mají výrazně víc peněz než onen mainstreamový dav. Proto taky ferrari nemá automatickou převodovku a přístrojovku s jedním budíkem, a proto smart vozítka nemají pět pedálů a extra ukazatel pro tlak ve vzduchovém filtru. Proto je iPod blbuvzdorně jednoduchý a hi-fi receivery za půlmega nemají ekvalizér s výběrem ze tří přednastavených hodnot.

Hlavní je jen se trefit. Není nic horšího, než Madle na nákupy pořídit masserati, profesionálnímu fotografovi dát na úpravy fotek iPhoto, mojí mámě podstrčit Operu a Hulánovi iphone. Když se střelí vedle – tak nebo tak – je to prostě vždycky špatně.

caracho

Souhlas. Jeste jsi tam ovsem zpomnel moment, kdy se z techle nadsencu a odborniku stavaji tzv. opinion leaderi (viz. dvojstupnova komunikace – Lazarsfeld a Katz) a ostatni se ridi podle nich.

backup

rad by zejmena pro mladsi diskutery, kteri to jeste nevedi doplnil, ze priklad s automobilem nesmi chybet v zadne diskuzi…

em

A co řeknete na názor: To vypadá složitě, to se v životě nenaučím. Nakonec mi stačí Poznámkový blok a ještě ušetřím.

Weeze

Kdyby měl Poznámkový blok automatické ukládání, proč ne. Tím to všem zesložiťuju.

Oldis

papirovi poznamkovi blok automaticke ukladani samozrejme ma :-D

em

ano „papirovi poznamkovi blok“ by ale tento vyraz neoznacil jako chybny.

uf

Proč lidé nedají dopustit na Eclipsa, někdo na InteliJ Ideu a někdo na NetBeans? Proč lidé používají Vi?

Dost záleží na tom, co začali používat. Nebo co museli používat, když začínali. Nebo odkud přišli – např. od Delphi.

Mě například nevyhovuje styl a filozofie borlandáckých IDE, Eclipse mi připadal nepřehledný a nepřirozený (totéž třeba JBuilder). V NetBeans člověk ví, co a jak má dělat.

Může to být i odvolávkou na inteligenci. Já jsem např. vymyslel supr UI, ale uživatelé se museli ptát, jak se s tím zachází. „Vždyť to tam je vše jasně vidět!“, říkal jsem si a myslel si, že jsou natvrdlí. Dnes jim dávám za pravdu, že jsem to měl udělat jináč.

iki

Pro mě je primárním faktorem rychlost a funkce, takže dělám všechny projekty ve FARu, i když to znamená mít na linuxech wxp ve virtualboxu.

Oldis

no a me borlendacke api prislo hrozne tezkopadne a stejne sem nakonec presel z MFC na Win API

mikiqex

Chtěli po mě kalkulaci pro výběrové řízení, tak jsem ji udělal. Snažil jsem se o maximální efektivitu, paralelnost a tak, za udržení dostatku času na testování a ladění. Na závěr jsem přihodil pár procent jako marži a výsledek odevzdal.

Bylo mi to vráceno s tím, že je to moc levné, že si budou myslet, že je to nějaká „garáž“. Zakázku nakonec vyhrála obří třípísmenná firma. Servery, které jsme si pro své řešení vybrali, jim výkonnostně nestačí ani na LDAP…

František Kučera

Otázka je, zda „obří třípísmenná firma“ a živnostník mají vůbec nějaký průnik zákazníků. Podle mého ne – možná je to smutné… ale nedá se s tím nic dělat (resp. buď změnit sebe nebo zákazníky). Někdy je prostě nejlepším rozhodnutím říci ne – a věnovat se něčemu perspektivnějšímu.

sorry, teď koukám, že koukám, že od 2008 pracuješ i pro nějaké s.r.o., tak pokud to „my“ bylo myšleno takhle, tak ten můj komentář ignoruj :-) (i když i tak se ty cílové skupiny velkých a malých dodavatelů často míjejí)

mikiqex

Ono to má něco do sebe i pro s.r.o., protože i tam ten průnik může být pofidérní. Ono stačí nasazovat existující produkt. Zmíněná firma má Learning Management System, kterému velmi slušně konkuruje Moodle. Zde zmíněný průnik existuje a implementaci Moodle může zvládnout i živnostník sám.

iki

z popsaného paradigma sice vycházíme, nicméně současná doba přináší dost změn, a čím dál více jsou úspěšné (generují zisk) i projekty, které dávají smysl … cílem je imho transofrmace k efektivitě/smyslu, nicméně je pravda, že přechod je postupný a musí respektovat účinek předchozího paradigma

sarki

Výborně napsáno a naprosto souhlasím.

Petr

Vaše články je radost číst ať jsou na jakékoliv téma. Díky a jen tak dál.

Weeze

Keyser Söze je nějaký turecký teoretik?

TFG

Spíš praktik :-)))

Pavel Dvořák

S tím stanovováním cen produktu to je mnohem ošidnější, k tomuto tématu doporučuji starší článek od Joela nazvaný Camels and Rubber Duckies.

Jakub Vrána

Teď jsem si teprve uvědomil, že to přesně pasuje na srovnání phpMyAdminu a Admineru. Lidem se phpMyAdmin zdá složitý, tak mají pocit, že toho asi bude hodně umět. A když o tom píšou, tak uvedou „základní funkce Adminer má“ a přitom obvykle nedokážou vyjmenovat ty pokročilé funkce, které by phpMyAdmin měl a Adminer ne. A už vůbec je nenapadne, že by Adminer měl nějaké funkce, které phpMyAdmin nemá.

Teď je ale otázka, co s tím? Má Adminer zkomplikovat uživatelské rozhraní, aby bylo nepřehledné? Pořádně znepříjemnit instalaci? Nebo třeba program alespoň uměle zpomalit, aby se zdálo, že dělá něco šíleně sofistikovaného?

Metod

Prvotně jsem měl již doslova škubání v prstech.
Pak mne napadlo, že se sem vůbec nehodím.
A nakonec jsem se přiměl nabrat trošku větší odvahu.
Série článků je výborná, jde o záslužnou činnost.

Sdílím názor, že teoreticky se dá stavět na ramenech předchozích, jen u toho potřebujeme velkou pokoru.
V tomto ohledu je potřeba také více skromnosti, to rozhodně.
Tudíž napřed ještě poděkuji za poučení, i když jsem už dědek v důchodě.
Takže ? No, trochu o sobě, pro pořádek.
Jsem samouk, skoro ve všem, ačkoliv jsem se podílel na hromadě činností, mnohdy nad moje síly.
Vrtám do elektroniky od roku 1964.
Jak si tak stárnu, shledávám, že opravdu na hodně věcí je skoro pozdě. Ale taky potvrdím, že jsem měl štěstí na lidi, od kterých se dalo hodně naučit.
Poslední léta však pro mne byla souborem, který by se dal označit za nepřehledně „zablábolený“.
Ale to sem nyní nepatří, až se nabažím čtením, a pookřeji, tak se možná dopustím dalšího psaní.
mail Ferr@volny.cz
ale jsem i na Skype a ICQ

Enum a statická analýza kódu

Mám jednu univerzální radu pro začínající programátorty. V učení sice neexistují rychlé zkratky, ovšem tuhle radu můžete snadno začít používat a zrychlit tak tempo učení. Tou tajemnou ingrediencí je statická analýza kódu. Ukážeme si to na příkladu enum.