Narovinu: pomáhají vám seznamy úkolů při plánování dne? Nebo vám naopak zvyšují stres jako mně? Vyzkoušel jsem miliony appek, ale položky todo-listu v nich nakonec vypadají vždy jedna jako druhá – co úkol, to řádek. Seznamy úkolů jsou prostě neintuitivní a pro získání přehledu naprosto nepoužitelné.

Podívejte se na následující dva seznamy, dlouhý a krátký:

Je to proti intuici: úkoly na dlouhém seznamu lze stihnout do hodiny, úkoly na krátkém seznamu zaberou (aspoň mně) spolehlivě celé dopoledne.

Teprve pokud těmto úkolům odhadnete délku trvání a zobrazíte je díky tomu vizuálně, intuice zafunguje:

Je zvláštní, že tvůrci úkolových aplikací celé roky trvají na seznamech. Udivuje mě to od doby, co je na světě AppStore. Roky vyhlížím nástroj, který by umožnil vidět zbytek dne jako v simulátoru: co mě čeká a co mě nemine – zda odškrtnu i poslední položku a které úkoly nejspíše přetečou do zítřka.

Hluboká pravda time-blockingu a jeho slabá místa

No a pak jsem zjistil, že chytřejší lidé než já už dávno problém vyřešili pomocí obyčejného kalendáře! Říká se tomu time-blocking, anebo time-boxing (přísnější varianta). Zaradoval jsem se a okamžitě začal boxovat. Velkou inspirací mi byl Ondřej Krátký, CEO Liftaga, který ukazoval své workflow na 12. Q&A callu našeho Klubu.

Výchozí myšlenka je geniálně prostá:

Všechno, co plánujeme udělat, vezme svůj čas. A proto je dobré to naplánovat do kalendáře jako pevnou událost a pak se tím řídit.

Proti tomu nelze říct ani ň. Velkým, ale i menším či osobním úkolům přiřadíme začátek a předpokládanou délku. Všechny pak poskládáme do denní agendy podle důležitosti mezi jiné pevné události, takže vše do sebe zapadne jako kostičky lega. Poté se dostaví zasloužený klid na práci. Anebo ne?

Bohužel – přinejmenším u mne – to moc nefungovalo. Odhady časů pro úkoly mi nevycházely a do plánů mi pravidelně něco skočilo. Sotva jsem se hlouběji ponořil do flow a přetáhl naplánovaný čas nebo něco dokončil dřív, škrtnul či přidal jiný úkol, už to celé skřípalo.

Přísnější varianta time-blockingu, time-boxing spočívá v dodržování plánů za každou cenu, ale já takto fungovat neumím; zaškatulkování každé minuty mě stresuje a přináší mi více škody než užitku. Bloky činností ráno připíchnuté do kalendáře neberou ohled na život a tváří se jako nějaký zákonný předpis. A protože jsem chtěl zákon dodržovat (ve snaze získat kontrolu), čekala mě vždy frustrace doprovázená pravidelným přeskládáváním bloků úkolů čekajících na zpracování... a brzy znovu. Nakonec jsem na time-blocking rezignoval.

Proč jsou seznamy nudné, time-blocking hranatý a appky neumějí předvídat?

Tehdy mě napadlo, že nemůže být těžké vyvinout flexibilnější time-blocking, který by prostě položky ve volných slotech posouval sám, byť by přitom úplně neopouštěl nastavené priority. (PS: Kdykoli vykřiknu „Nemůže to být těžké!”, dejte mi facku, děkuji)

„Právě nainstalováno, je to úžasné! Miluju tu kreativitu.” (Uglyfang, Reddit)

꩜ Nautilus jde s časem (i proti němu)

A tak se zrodil můj projekt Šnek, později přejmenovaný na Nautilus. Začalo to jako plugin do Roam Research, nyní už existuje i free webová appka pro každého nazvaná Nautilus Omnibus. Každý v něm může snadno a přehledně vizualizovat – nanečisto plánovat – den a zpětně hodnotit, jak to šlo.

O co tedy jde? Dobrá, obraťme todo-list:

  • Základem je seznam úkolů a událostí pro daný pracovní den, uspořádaný dle priorit. Uživatel seznam vytváří a organizuje jako běžné textové odrážky včetně změny pořadí ap. Vytáhne si ze svých nudných seznamů důležité věci a vkládá je do denní agendy. Může doplnit i speciální značky, které událostem či úkolům přidávají parametry jako trvání či čas splnění. Trvání úkolu si uživatel nastavuje odhadem – v minutách (napíše např. 20m) – ale když to neudělá, použije se defaultních 15 minut. Seznam může vypadat třeba takto:
Výše je seznam úkolů sloučený z obou seznamů ze začátku článku + přidané události (žlutě pro přehlednost)
  • Seznam je sledován pluginem a při každé změně překreslován do podoby spirály (připomínající parkovací hodiny či pizzu), kde události a úkoly jsou zobrazeny jako výseče („dílky pizzy”). Proto navrhuji zavést pojem „time-slicing“. Ptáte se, proč jsem zvolil spirálu? S postupujícím dnem se energie a kognitivní kapacita snižují, čímž se také zmenšuje poloměr dílků. A navíc to vypadá hezky...
    Takto by v Nautilovi vypadalo srovnání vzorových seznamů ze začátku článku, zatím bez vložených událostí:
  • Události jsou umístěny pevně v určené časy (zato úkoly plavou). Při textovém zadávání se události detekují podle toho, že je v textu použit formát hh:mm-hh:mm (nebo taky hh:mm až hh:mm). Události jsou zobrazeny v odstínech žluté, úkoly v odstínech modré:
  • Aktuální čas je vyznačen červenou střelkou, která je současně startovní čárou pro všechny nehotové úkoly. Vše hotové (úkoly) či prošlé (události) postupně šedne. V minulosti holt žádný úkol nenaplánujete (byť jej lze zpětně přidat jako v minulosti dokončený, pro přehled):
  • Nehotové úkoly jsou střelkou tlačeny vpřed a (v pořadí dle seznamu) rozprostřeny do nejbližších volných slotů mezi událostmi. Co se nevejde, poskočí do dalšího volného slotu nebo na konci dne vypadne ze hry. Na následujícím obrázku vidíte, co se stalo, když najednou přibyl spěchající úkol „aktivovat platby”: celá fronta úkolů se posunula vpřed a způsobila dočasné přeskočení kratších i dlouhých úkolů. Okamžitě jsem si tak všiml, že „rozhodnout rozpočet” se najednou nevejde do odpoledního okna a večer na tom pracovat nechci. Nově tedy zhodnotím důležitost ostatních menších úkolů a zkusím o trochu zkrátit odhad pro práci na rozpočtu, aby se mi do odpoledne vešly. Podařilo se – o obrázek níže vidíte, že to nakonec dobře dopadlo :)
  • Hotové úkoly po odškrtnutí zešednou a zůstanou ukotveny v čase, kdy byly dokončeny (jiná volně dostupná extenze jim totiž přidá časovou značku, např. d12:30, což znamená „dokončeno ve 12:30”) – čímž poslouží pro zpětný přehled dne i feedback pro další plánování. Níže vidíte, jak vypadá vzorový dokončený den při zpětném pohledu. Ve skutečnosti jsem: se nestihl oholit, naplánovat účast na akci, naplánovat call s L., přeposlat fakturu, ale zato jsem – díky včasné simulaci nestíhání – stihl rozhodnout rozpočet ještě před večerem s rodinou:
PS: události proběhlé v minulých dnech pravděpodobně též vyznačím jako šedé.
  • S ubíhajícím časem se tedy úkoly a volné sloty samy reorganizují. Ke stejnému přeuspořádání ale dochází kdykoli změníte délku úkolu, nějaký dokončíte, přidáte či změníte pořadí. Děje se to s minimálním úsilím. Vy se staráte jen o to, abyste měli úkoly ve správném pořadí (dle priority) a měli u nich dobře odhadnuté délky.

Co je pak výsledkem: např. už v devět dopoledne je vám jasné, že s daným plánem právě překračujete vaši pracovní dobu či hranici mentální kapacity. Jak čas běží, realisticky v každém okamžiku vidíte, že den se vyvíjí trochu jinak, než jste plánovali. To je v lidské a kupodivu to není stresující, neboť Nautilus vás inspiruje k okamžité adaptaci a dává přehledná vodítka. Zeptáte se sami sebe: mám dost energie a času dělat tohle, když se mi vše přesunulo sem do odpoledne?

Nezískáváte tím sice plnou kontrolu nad vaším časem (to je nemožné, jak vysvětluje Oliver Burkeman ve své čtyřbanánové knize o ne-produktivitě), ale pocitu kontroly se limitně přiblížíte.

Pomůže vám time-slicing?

Těžko říct. Každý máme jiné potřeby, představivost i odlišné silné stránky či slabiny. Mnozí si vystačí se seznamem, kalendářem, nebo dokonce jen s diářem a hlavou (k těm diářově-hlavovým géniům např. patří moje žena Kateřina). Nepotřebují žádné ujeté aplikace.

Přesto vidím, že podobně neurodivergentních osob jako jsem já, je docela dost. Těší mě, že první odezvy uživatelů z komunity kolem Roamu jsou po třech týdnech od uvedení nadšené, některé z nich cituji na jiných místech článku. Zde je jedna výstižná:

„Líbí se mi to. Stáhl jsem si ji a teď ji používám každý den. Pěkný způsob, jak zjistit, jak se mé plány porovnávají se skutečně odvedenou prací!” (Pawel, Slack)

Mám z toho obrovskou radost: jsem poprvé v životě v roli nezávislého vývojáře a rovnou zažívám zvláštní kombinaci pýchy a pokory (a taky chvění, až se někdo podívá do mého kódu a bude si ťukat na hlavu).

Jedinou možností, jak sami můžete zjistit, zda je time-slicing pro vás, je vyzkoušet jej. Buď v aplikaci Roam Research, anebo na webu. (Roam je skvělý systém pro propojené poznámky, outlining, přemýšlení i plánování, takže k jeho použití vás velmi povzbuzuji. Já v něm mám celý svůj druhý mozek. A lze jej vyzkoušet na 30 dní zdarma.) Další možností je přidat se do Klubu Lifehacky – tam mají všichni přístup do sdíleného Roam grafu Hackopedia, kde je Nautilus též k dispozici, dlouhodobě.

A chcete-li se aspoň podívat na vývoj, kód a podrobnosti k pluginu včetně videa, kompletní dokumentaci najdete zde.

PS: Mezitím si všímám, že přibývají appky, které se též pokoušejí vkládat úkoly do kalendáře a pracovat s nimi. Namátkou appka Morgen či krásná, česká a Nautilovi podobná Kyugo zřejmě s velkými ambicemi. Zatím jsem si nevšiml, že by některá měla jednoduchou, ale mocnou funkci tlačení úkolů vpřed – dnes je trendem spíše využívat AI (k tomu jsem ovšem zatím velice skeptický).

Jak Nautilus používám?

Radostně — už od července 2023 mi ulevuje denně (i o víkendech) v každodenním souboji s plánováním. Je vyloučené, abych s ním jediný den zapomněl zkonzultovat své plány. Navíc si všímám, že se učím lépe předvídat a tedy přesněji plánovat. Dokonce jsem na schůzky přestal chodit na poslední chvíli ...

Moje návyky vypadají zhruba takto:

  • Zvykl jsem si seskládat svůj den buď už večer nebo v daný den u ranní kávy. Dost se na to těším.
  • Úkoly i události popisuju minimalisticky, jedním dvěma slovy, jak jsem zvyklý z papírového systému bujo, který jsem kdysi používal.
  • Nejdřív vložím pevné události z kalendáře (používám Apple Kalendář, k němuž jsem si udělal skript, který vykopíruje a zkonvertuje denní události pro Nautila). Události jsou vyznačeny žlutě a mají fixní začátky: schůzky, cally, vyzvedávání dcery, tréninky apod. Vytvoří tak sloty, přes něž nejede vlak, jen čas. (je šikovné zvýraznit události žlutě i v seznamu pomocí značek highlightu ^^, je to pak názornější).
  • Poté ještě coby kratší události doplním „transfery”, tedy bloky nezbytné pro přesuny, aby Nautilus nepočítal s časem pro úkoly v době, kdy třeba budu na cestě na schůzku.
  • A pak přijde slíbená magie. Zatímco kouzelník tahá z klobouku králíky, já vytahuji z backlogů a inboxů úkoly: abych je s rozmyslem vyskládal do seznamu a přidal odhady délek trvání. Přidávám i zdánlivé samozřejmosti: snídani (20min), čištění zubů a hygienu (15min), procházku se psem (20min), meditaci (15min), holení (5min) ... a podívejme: půlka dopoledne je pryč.
  • Jakmile vidím, že se mi den plní, nutí mě to k úpravám priorit: na první místa dám důležité rychlovky, ale mnohdy rovnou hlubší práci a strategičtější věci, abych je stihl ještě před polednem pln elánu. (A řeknu vám: jedna věc je slýchat císařskou radu, že mám začít den velkými balvany: nejdůležitějšími/nejnáročnějšími úkoly, druhá věc je vidět aktuální den v simulaci – máloco mě donutí začít balvanem jako pohled na Nautila).
  • Úkoly ležící v seznamu za událostí umísťuje Nautilus až po uplynutí dané události, což fakticky znamená, že daný úkol nemůže být naplánován dřív. Typicky: zdřímnutí se hodí umístit těsně po obědě, operativu je lepší naházet později odpoledne ap...
  • Ve své simulaci všedního dne si nechávám bílá místa: čas pro změny a náhodu. Odpočinek nebo cvičení si pravidelně naplánuju jako úkol (až přidám barvy, bude paprsek odpočinku zelený).
  • Než úkol odškrtnu jako hotový, zkontroluju a upravím jeho reálné trvání. Většinou to vede k okamžité sebereflexi, protože většinou vše trvá déle, než člověk doufá. Navíc pak zpětně vidím, co jsem vlastně reálně celý den dělal.
  • Během dne některé úkoly na konci seznamu přetečou pracovní dobu. Workoholici mají velké oči. Všiml jsem si, že mi ale díky lepšímu odhadování sil přetékají mnohem méně. Je přesto nesmírně poučné pozorovat, jaké typy činností to jsou, a podle toho nad nimi uvažovat i dlouhodobě: neměl jsem to delegovat? Je to vůbec důležité? Přetoky pak přesouvám do dalšího dne (mám na to klávesovou zkratku), vracím do backlogu, nebo je prostě smažu.

Kdysi jsem míval v agendě dlouhý seznam „co udělat dnes“ (v krásné legendární todo-appce Things – denní agenda se v ní jmenuje ⭐️ Today). A téměř každý večer, kdy z něj nebyla odškrtnuta ani polovina, mě naplnil pocit marnosti a frustrace. Což se nyní neděje a já končím s čistým listem a hlavou.

Nautilus je jako jízda s nastavenou trasou v GPS: ať děláte, co děláte, do cíle dojedete vždy ve vypočteném čase.

Jak Nautilus vznikal a proč miluju Clojurescript?

Trvalo mi přes rok, než jsem mohl svůj nápad poprvé vyzkoušet. Musel jsem se nejdřív naučit programovat. Základy kdysi oblíbeného Turbo Pascalu z univerzity kupodivu nestačily. Na má středně stará kolena se mi ale nechtělo učit mainstreamový procedurální jazyk; toužil jsem do staronového koníčka zamíchat nějaké to objevování.

A tehdy se protnuly dvě trajektorie: moje okouzlení krásou funkcionálního programování (LISP byl vynalezen v roce 1958 a může být napsán „sám v sobě”), a fakt, že právě Roam Research je napsán v Clojure(scriptu), funkcionálním, ale velice moderním a pragmatickém dialektu LISPu se silnou interoperabilitou Java/Javascript. Během dalšího roku jsem se tedy po večerech učil Clojure/Clojurescript, a po mnoha kurzech, pokusech/omylech i natvrdlých dotazech (kamarádi vývojáři i chatGPT) si osvojil také základy SVG, GITu, databází atd.

Nutno říct, že pro dané prostředí (textově orientovaný Roam) i pro danou úlohu se Clojurescript skvěle hodí. Kód Nautila v Clojure je svým způsobem jedna „velká funkce” transformující text (seznam úkolů) na text v kódu SVG, který zobrazí spirálu. Při práci s Clojure mě nejvíc baví právě způsob myšlení, kdy kód a data do značné míry splývají a postupně se mění z jednoho ve druhé. Pomocí REPLu můžete vyhodnocovat části kódu a dokonce přepisovat kód za běhu programu.

Hurá: a teď je Nautilus konečně součástí nabídky extenzí v Roam Depotu (Roam Research) a už má několik stovek uživatelů. Denně přibývají další.

Jsem nicméně developer-začátečník, a ač můj kód není optimální, idiomatický a zatím jsem ho ani pořádně nerefaktoroval, chová se Nautilus – právě i díky Clojurescriptu – velice svižně. Samozřejmě, mám seznam chyb, optimalizací i fíčur, na nichž můžu pracovat do konce svých dní. Děkuji všem uživatelům, kteří mě podpořili a píšou mi svůj feedback, nejen jako tento:

„Dnes jsem v Roam Depotu našel váš výtvor Nautilus a poprvé po dlouhé době jsem šťastný.” (H.O., e-mail)

Já taky! A když už jsem u toho: moc mi pomohla aktivní komunita Roam na Slacku. Děkuji i Baibhavu Bistovi z Roam Research za laskavost a trpělivost a též Adamu Kaliszovi, který mi je průvodcem do světa Clojure. A ještě něco: za nápad přejmenovat šneka na Nautilus vděčím Christianu Klaperkovi, který byl prvním betatesterem.

Dejte mi vědět, zda jste Nautila vyzkoušeli, anebo aspoň jak bojujete (či naopak jak si užíváte) plánování dne. Rád se opět něco nového naučím.

Děkuji za pozornost!

🥇
Přidej se do klubu lifehackerů (předplatné pouze 30€/rok):
- 📝 velké články
- 🩳 kraťasy
- 📧 lifehackerletter (legendární newsleter + přístup přes web)
- ⭐ bonusový obsah a akce (meetupy, Q&A cally s hosty, aktivní spojení se mnou a komunitou na Discordu, přístup do Lifehacky Wikivíce informací zde).