čtvrtek 10. července 2014

Lazy registration a další minimalistické návrhové vzory

Mám rád minimalismus, zejména pak takový, který klade co nejmenší nároky na uživatele. Nenuťte uživatele přemýšlet, říká pan Krug, a nenuťte ho dělat něco, co nechce a nezbytně nemusí. Typickým případem je návrhový vzor lazy registration.

Proč by se měl zákazník e-shopu registrovat, když to k ničemu nepotřebuje? A i kdyby se zdálo, že potřebuje, opravdu je klasická registrace správné řešení?

Malá odbočka: Na jaře jsem na Vsetínském barcampu ve Zlíně přednášel o Čaji týdne a mj. jsem zmínil, že sledujeme historii objednávek jednotlivých zákazníků. „Jak to děláte,“ zeptal se mě udiveně někdo z publika, „když na webu nemáte registraci a přihlašování?“ „Jednoduše,“ odpověděl jsem, „stejný člověk se obvykle stejně jmenuje, má stejný e-mail a stejnou adresu.“

A opravdu to děláme takhle jednoduše. Každá nová objednávka se automaticky porovná s archivem, když je shoda jednoznačná (např. stejný e-mail a jméno, nebo stejné jméno i adresa), připojí se automaticky ke stávajícímu zákazníkovi, a když jednoznačná není, administrace nabídne podobné zákazníky a obsluha rozhodne, zda objednávku k některému připojí, nebo jedním kliknutím založí zákazníka nového.

Není to samozřejmě úplně přesné, ale to není ani normální registrace. Bez hesla také zatím nemůžeme zákazníkům zobrazovat či předvyplňovat jejich data, protože by to ohrožovalo jejich soukromí. To ale časem vyřešíme automaticky vygenerovanými hesly, která zákazníkům zašleme, až jim to opravdu bude k něčemu dobré. Podstatné je, že zatím nikoho neotravujeme zbytečnostmi.

Dalším takovým minimalistickým návrhovým vzorem bylo zadávání adresy v objednávkovém formuláři. Donedávna jsme na celou adresu měli jedinou textareu, protože jsme nechtěli zákazníky nutit psát do zbytečně mnoha políček. Chtěl jsem na to časem napojit validátor adres, který adresu automaticky zkontroluje, doplní a správně nastrukturuje. Bohužel jsem takový pro ČR nenašel, a když jsme tedy chtěli začít tisknout adresní štítky, museli jsme rozdělit adresu do víc polí. Dost mne to ale mrzí, a jakmile použitelný validátor najdu, k původnímu řešení se vrátíme.

Do třetice ještě jedna klasika: jméno a příjmení. Proč by na to měla být ve formuláři dvě pole, když je uživatel k ničemu nepotřebuje? Že je můžu potřebovat já, třeba kvůli e-mailingu? To je ale můj problém a musím ho vyřešit tak, abych jím zákazníky neobtěžoval.

Když to shrnu, snažím se o každém problému uvažovat, jako kdybych ho viděl poprvé v životě, a hledám řešení, které je pro zákazníky nejjednodušší.

Související:



42 komentářů:

  1. jó, kdyby k tomu takhle každý přistupoval podobným stylem... Taky razím podobnou cestu.

    OdpovědětVymazat
  2. Ta klasika s jménem a přijmením je z praxe. Pokud je jedno pole, tak lidi vypisují jen jméno a na přijmení zapomínají. To stejné je s adresou. Jak není oddělena ulice a číslo popisné, tak taky problém. Šikovně to má www.alza.cz. Tam se kontroluje snad vše.

    OdpovědětVymazat
    Odpovědi
    1. Jasně, Petro, vím, že zapomínají. No a co? Kvůli jednomu ze sta, který zapomene, přeci nebudu komplikovat život zbylým devadesátidevíti.

      Vymazat
    2. Z jistého úhlu pohledu souhlasím, ale počkejte tak rok dva až se Vám eShop rozjede a budete řešit vícero objednávek a současně budete šetřit pracovní síly protože to jsou další a další náklady, pak najednou zjistíte že i taková maličkost jako rozdělení jména na dvě pole vám šetří čas/peníze

      Vymazat
    3. Petro, jedno pole s celým jménem jde automaticky validovat stejně jako dvě pole.

      Vymazat
    4. Vždycky se dá validovat jestli jsou v inputu dva stringy s mezerou. A pokud nejsou, vyhodí se chybka.

      Vymazat
    5. Navíc zcela striktně vzato, k doručení zboží celé jméno není ani potřeba. Stačí jméno rodiny (Novákovi), jen příjmení nebo firma.

      Vymazat
    6. Nebo taky když se jmenujete například prof. Ing. Václav Klaus, CSc. a formulář má na jméno jen dvě políčka, je to pěkně k vzteku.

      Vymazat
    7. Přesně tak, Davide. Dokonce se můžete jmenovat prof. Ing. Václav Klaus, CSc. ml. Takových máme v databázi hned několik. Tedy bez toho prof. Ing. Václav Klaus, CSc. :-)

      Vymazat
  3. Na webu Vitalita.cz má brácha lazy registration drahně let a občas mu volají lidé, že by si rádi nakoupili, ale nenašli nikde na webu registraci :)

    Dělení jména a příjmení je samozřejmě hloupost, ale s tou adresou v podobě textarea opatrně. Tím naopak nutíš uživatele přemýšlet (zadal jsem vše?), často zapomenou něco zadat (třeba PSČ) a hlavně musí psát, protože prohlížeče neumí textareu předvyplňovat.

    OdpovědětVymazat
    Odpovědi
    1. Já vím, Davide, že ta textarea na adresu má i své zápory. Právě proto by byla ideální až s tím validátorem. Já měl dokonce připravený prototyp pomocí Google Maps API, ve kterém se adresa automaticky doplňovala hned během psaní, jenže Google má v podmínkách, že v takovém případě musí být zobrazena i mapa, což je v objednávkovém formuláři blbost.

      Vymazat
  4. Nedávno mě takhle příjemně potěšil Kosmas, pár týdnů po nákupu bez registrace jsem použil stejný mail pro registraci a ejhle, v historii objednávek byl můj minulý nákup.

    Pohrával jsem si s myšlenkou generování názvů měst po zadání PSČ, přece jen napsat "370 01" je jednodušší a rychlejší, než "370 01, Ćeské Budějovice" a vytvořit takovou tabulku by pro programátora neměl být problém. S ulicemi už je to horší...

    Jméno a příjmení by se pak mohlo automaticky doplňovat do stejného políčka při platbě kartou.

    OdpovědětVymazat
    Odpovědi
    1. On ani s ulicemi není problém. Ulice s číslem (obzvlášť nějakým vyšším) už je často v rámci ČR unikátní a systém může automaticky doplnit město i PSČ. Google to umí -- viz moje odpověď Davidovi výše.

      Vymazat
    2. Zkuste http://vdp.cuzk.cz/ Bude to sice trochu práce si to impelmentovat sami, ale výsledek by mohl stát za to. Horší je to pak s adresami na Slovnesko, tam netuším, zda něco podobného mají.

      Vymazat
    3. posta ma len toto: http://psc.posta.sk/

      Vymazat
    4. tu je komplet otvoreny dataset na tieto ucely:

      Vymazat
  5. Marku, a co by měl zmíněný validátor umět? Já mám ze stránek MVČR (http://aplikace.mvcr.cz/adresy/) stažené XML se seznamem adres, rozparsované v databázi a po zadání ulice a čp mi v případě jedinečného zadání vyplní město, kraj, psč. Otázkou je, jak moc přesné to je v případě malých vesnic...

    OdpovědětVymazat
    Odpovědi
    1. Karle, to mě zajímá. Nezkusíme z toho něco udělat? IMHO by to byla zajímavá služba, která by se hodila hodně lidem. Pro zahraničí takové existují. Stoprocentně přesné to být nemusí, byla by to jen nápověda a měkká kontrola. Něco jako https://developers.google.com/places/documentation/autocomplete, ale u toho se mi to nepodařilo nasadit tak, aby to uživatele neomezovalo v psaní.

      Vymazat
    2. Třeba dynamické doplnění názvu ulice a vygenerování všech souvisejících měst, ze kterých už by se vybíralo radio buttonem?

      Vymazat
    3. Marku, děkuji za odkaz, podívám se, jak to funguje u Google a ozvu se e-mailem.

      Vymazat
    4. MVČR databáze není aktualizovaná, nekompletní a vůbec nesedí s českou poštou a o to vám asi hlavně jde, z ČP jsem dostal jejich databázi taky ale opět problém s aktualizacemi, pravidelně nejsou schopni aktualizovat, vždy dlouhé jednání, nebo za peníze jsou pak ochotni klidně každých 14 dní zasílat aktualizace, ale poplatek je nesmyslný tuším 1500Kč

      Vymazat
    5. Ta služba na doplňování adres už v ČR existuje: http://www.smartform.cz/index.html

      Možná to není co chcete, bude potřeba to mít rozdělneé na inputy, ale zkuste mrknout.

      Vymazat
    6. Tomáši, díky, je to skoro ono. Už mi to někdo poradil na Facebooku a už to zkouším.

      Vymazat
    7. Ještě lépe - ČUZK pravidelně vydává seznam adresních míst. Stáhnout, validovat interně?

      http://nahlizenidokn.cuzk.cz/StahniAdresniMistaRUIAN.aspx

      Vymazat
    8. Pro práci s RUIAN je třeba je data nejen stáhnout z internetu, ale i nějak z nich vytvořit databázi a tu pravidelně aktualizovat. K tomu ČÚZK žádnou podporu neposkytuje. Řešením může být třeba produkt OKadresy - viz www.okadresy.cz. Nad tím se pak dá již postavit nejrůznější zadávání a ověřování adres.

      Vymazat
  6. Takže předchozí post byl jen takový pokus o flame, protože je stejně rozhodnuto. Když s takovými požadavky přijdete za pronájemci eshopů, anebo ohýbači opensourců, tak se budou smíchy válet po zemi :)

    A podle letmo zmíněných vlastností vaší administrace se mi váš vývojář jeví jako poměrně schopný :)

    OdpovědětVymazat
    Odpovědi
    1. Čaj týdne se zatím vyvíjel interně v mé firmě, což bohužel do budoucna nepůjde. Stále jsou otevřené všechny tři varianty.

      Vymazat
  7. Čím jednodušší pro uživatele, tím lepší pro e-shop. My jsme někde na půl cesty - uživatel zadá pouze "doručovací údaje" + e-mail a telefon, heslo mu dogenerujeme a zašleme e-mailem. Bohužel jsme měli špatnou zkušenost, že když jsme telefon nepožadovali, dost se zvedlo procento nevyzvednutých zásilek.

    OdpovědětVymazat
  8. tenhle diskusní systém je příšerný :) ukázka opensource :) vůbec to nefunguje, už to píšu po 5té možná? vždycky si říkám, že už na to kašlu, ale pak mi do emailu přijde nějaký koment a tak to sem zase napíšu, každopádně ty adresy volně ke stažení zkuste tohle (i na ten smartform)

    Kramolna 169, 54701 Náchod

    tohle je adresa co používá pošta a validuje pošta, a teď co vyleze vám z těch katastrálních rejstříků a smartformu?

    OdpovědětVymazat
    Odpovědi
    1. Blogspot není opensource. Ale Google :)

      Vymazat
    2. Tu adresu máte zadanou špatně. Správně to má být:
      č. p. 169
      54701 Kramolna
      RUIAN vám tu adresu takhle také ukáže. Za PSČ už se totiž nepíše název dodací pošty (ta je dostatečně identifikována právě tím PSČ), ale obec.

      Vymazat
    3. nebylo by lepší tuhle diskusi zakázat a přesunout na facebook? tam to alespoň funguje :) je ironické psát příspěvek o přístupnosti do diskuse, která je naprosto nepřístupná a totální shit.

      ad. špatná adresa, no a to mě trochu děsí, že je ten problém, lidé nejsou zvyklí na tento tvar adresy, nepochopí jestli je to správně nebo špatně, protože celý život to píšou jinak, všude je ta adresa uvedena včetně města, prostě tohle neznají, navíc kramolna poštu nemá, tak je divné vedle psč vidět kramolna a ne náchod, navíc pošta svými validátory to také nepovažuje za správné

      takže z hlediska odesílání balíků je to špatně, z hlediska přístupnosti taky, je tedy dobré implementovat tuto databázi? podotýkám že mám našeptávač vytvořen na základě stejné databáze, ale dost mne tohle štve, mám to třeba na eshopu, kde je denně 1000 objednávek a je to častý problém a hodněkrát už jsem přemýšlel jestli to raději nevypnout, plus nové domy i přesto, že aktualizujeme co 14 dní, tak nová popisná čísla to nezná :( (ale to už je asi detail)

      Vymazat
  9. Jak byste ohodnotili eshop www.comfort-shopping.cz ?

    OdpovědětVymazat
    Odpovědi
    1. Děs běs. Hlavně že máte modul anketa. Ale je to Z A - D A - R M O!

      Vymazat
    2. Co je na Anketě špatného? Má ji na webu kde kdo. :D
      Ráda bych viděla nějaký příklad "vzorového" internetového obchodu, vážně.

      Vymazat
    3. Třeba Alza do toho sype slušné peníze a na jejich obchodu je to vidět. Ale anketku tam nikde nevidím, asi to dělají blbě :)

      Pro cz inspiraci si projděte reference H1, Dobrého webu, WebTOP100. A v zahraničí toho je nepřeberně. awwwards.com, shopify.com/design-awards atd atd.

      Váš eshop - obojky pro psy a šperky? WTF? Prezentace formou jedné rozmazané mini fotky? To snad ani nemá smysl komentovat.

      Vymazat
  10. Ad lazy registration - cca 10 rokov sme prevadzkovali hotelovy web pre Bratislavu, kde si bolo mozne rezervovat mnozstvo hotelov, hostelov, apartmanov atd.

    Cez princip lazy registration (nasadeny okolo roku 2005) sme dokazali bez registracie s 99+% uspesnostou rozoznavat zakaznikov, ktori sa vracali bez toho, aby sme od nich vyzadovali akukolvek registraciu.

    Primarne fungovala identifikacia v tomto poradi:
    1) emailova adresa (odhadom min. 70% ludi pouziva ten isty email)
    2) telefonne cislo (pomerne jedinecny identifikator)
    3) meno a priezvisko a krajina/stat (opat dost vysoka schopnost identifikacie)
    4) ...este par inych veci...

    Ak sa nepodarilo ani po 4 krokoch, tak to slo na manualne spracovanie. Clovek potom priradil danu emailovu adresu existujucemu uzivatelovi a nasledne uz uspenost pri dalsom kontakte bolo opat vyssia.

    OdpovědětVymazat
  11. Ahoj, dívám se na podobu objednávkového formuláře cca půl roku po publikaci tohoto článku, líbí se mi jeho jednoduchost, ale... jak řešíte jinou dodací a fakturační adresu, případně IČ u firem? Vše to lidi (resp. firmy) vkládají do poznámky?
    Moje domněnka: Toto řešení je zvoleno, protože u Vás typicky nakupuje koncový uživatel, firmy minimálně, takže nevadí, že firmy musí o něco více přemýšlet?

    A druhý dotaz - řešili jste nějak, jestli tato objednávka splňuje zákony ČR? Řešili jste nějakou kontrolu, zda to něčemu neodporuje, něco tam nechybí?

    Nikde tam např. nevidím souhlas s obchodními podmínkami. Někdo to řeší checkboxem (z toho někdo předzaškrtnutým, někdo nutí uživatele zaškrtnout jej), někdo to řeší větou, že odesláním souhlasíte s podmínkami a někdo to neřeší vůbec...

    OdpovědětVymazat
    Odpovědi
    1. Firmy občas kupují, ale odlišná fakturační adresa zatím nebyla potřeba, s výjimkou pár větších případů, které se ale stejně řešily mimo běžný objednávkový systém.

      Promýšleli jsme obchodní podmínky, byla k nim i dost rozsáhlá debata pod článkem http://dokosiku.blogspot.cz/2013/08/o-nelidskych-obchodnich-podminkach.html. Zaškrtávat souhlas s obchodními podmínky pod objednávkou považujeme za zbytečné obtěžování zákazníka. Když si kupujete v trafice noviny nebo v restauraci večeři, taky nemusíte nic podepisovat.

      Vymazat
  12. A přidám svoje zkušenosti s validací adresy - na projektu (ve špičkách cca 30.000 návštěv denně) jsme na začátku měli UIR-ADR - sami jsme si synchronizovali ulice, města, městské čtvrti, PSČ apod. - z toho jsme pak vytvořili něco jako průvodce pro vyplnění adresy.
    Provozovatel byl spokojený, že má validní adresy, ale zákazník moc spokojený nebyl - průvodce byl dost uzavřený v tom, co jde kde vyplnit a pokud byl člověk ve slepé uličce (nejběžnější případ zaseknutí byla neexistující adresa v DB - čerstvě vzniklá adresa v satelitu :), zákazník se tam ztrácel. Ano - průvodce by šel udělat tak, aby nebyl tak uzavřený a zákazník si tam mohl napsat prakticky cokoliv - což je řešení ala www.smartform.cz - to jsem taky zkoušel a použitelnost mi připadá dost mizivá. Než jsem tam vyplnil svoji adresu, už bych to měl 3x napsaný ručně.

    Na zmíněném projektu to nakonec dopadlo tak, že jsme jakékoliv validace a našeptávače dali pryč, provozovatel se spokojil s nějakými daty (raději než s žádnými :) a zákazníkovi nejsou házeny klacky pod nohy.

    Pro něco jako našeptávač bych klidně byl, ale s velkým důrazem na to, aby to lidem především pomáhalo = ušetřilo čas, případně minimalizovalo překlepy, což je ale podle mě skoro nemožné navrhnout :-)

    OdpovědětVymazat

Díky za váš čas věnovaný článku a za váš komentář. Všechny věcné připomínky, doplnění či otázky k článku mi pomohou posunout náš obchod dál. Nechcete-li komentovat veřejně, napište mi prosím na marek@sovavsiti.cz.