Стендап Сьогодні

Що я зробив, що я хочу зробити, і що це все значить.
Повсякденні здобутки в форматі стендапу.
Детальніше в статті

Підписатись на RSS
📢 Канал в Telegram @stendap_sogodni
🦣 @stendap_sogodni@shevtsov.me в Федиверсі

12.06.2025

Capybara + Playwright: мрії здійснюються?

Не встиг я написати, що втомився від Capybara, як натрапив на незнайому мені досі бібліотеку capybara-playwright-driver. Так, це саме те, як що воно звучить: драйвер для Capybara через потужності Playwright - одного з передових інструментів інтеграційного тестування.

(До речі: знайшов я цю бібліотеку з іншого проєкту - capybara-lockstep - він стабілізує тести через неявне примусове очікування кожної операції. Але з нею досвіду не дуже маю.)

Отже, Capybara із Playwright, за досвідом, працює непогано — порівняно з Selenium, значно більше можливостей та менше місць, де доводиться робити криві обходи. Наприклад: є метод route для легкої підміни запитів з браузера. Дуже корисно для всяких сторонніх інтеграцій. Або Download - для перевірки завантажень. Це взагалі ексклюзив!

Також, оскільки цей драйвер керує звичайним сеансом Playwright, ми можемо трасувати тести, тобто зберігати повний хід виконання, включаючи всі запити до мережі, всю консоль, навіть стан DOM в кожний момент тесту! Це астрономічно більше інформації, ніж дає Capybara.

Втім, трасування виказує й недолік цього драйверу. Він використовує Playwright на простому, низькому рівні. Наприклад, в Playwright є власне очікування операцій — та дуже гарне. Але щоб зберегти поведінку Capybara, драйвер не користується ним, а тільки виконує команду перевірки багато разів.

Тут же ж є й альтернатива: пакет plsywright-ruby-client, на якому збудований драйвер. Він вже дає безпосередній доступ до дій та перевірок від Playwright. Тобто теоретично можна викинути капібару та писати тести прямо на Playwright, але з Ruby! Та зі збереженням повними можливостями підготовки стану та перевірки результатів на бекенді.

Поки я в захваті від цього нового підходу, та сподіваюся, він закриє частину недоліків Capybara. Одне тільки трасування чого варте.


11.06.2025

Відчуття від GTD

(Поки закінчую писати про GTD. Я наче пройшовся по основах, а також зрозумів, що краще писати, коли є натхнення з конкретної теми. Не кидаю надій зробити колись красивий посібник українською.)

Хотілося замість всього цього сухого поговорити про відчуття. Що я відчуваю без GTD та тоді, коли система працює.

Ось сцена, яка мені знайома як рідна. В ній герой хоче замінити лампочку, але натомість занурюється в яму послідовних задач: закріпити полку з лампами, змастити ящик з інструментом, купити мастило, і фінал — полагодити машину, на що в нього йде весь день. В серіалі це виглядає комічно — хіба не можна було закінчити першу справу, а потім братися за наступну? Але саме так я відчуваю себе без системи, в яку можна записати вхідні — я хапаюся за крайню справу, що здається важливою, бо без системи єдиний шанс зробити справу — це натрапити на неї та вхопитися негайно. Я називаю це “режим хомʼячка”.

Тобто звісно, якби всього в житті було пʼять задач, то нескладно розставити їх за порядком. А коли їх сто?

Напевно, все залежить від характеру (та від нейродивергенції.) Моя голова є нескінченним фонтаном ідей буквально для всього, тому в мене завжди більше незробленого, ніж часу. Частина цих ідей — чудові та розвʼязують справжні проблеми. Але інші — нереальні або тільки створюють додаткові проєкти та додаткове навантаження.

Без системи я заходжу на кухню та бачу мільйон задач — від законних “прибрати посуд” до наче важливих, але не зараз “повісити гачки для каструль” до зовсім казкових “зробити вертикальну грядку для зелені”. Виходжу з кухні та бачу ще мільйон задач… Річ не у тім, що всі їх треба зробити, та навіть не в тому, що треба виділити пріоритетні. Система GTD дозволяє мені зібрати всі задачі в єдину купу, та в спокійних обставинах приділити їм належну увагу.

З системою я оглядаю кухню та бачу — все як вчора, про все це я вже подумав. Можна спокійно прибрати посуд. О, і ще оце посилка нова лежить — запишу, щоб з нею розібратися. (Нарешті проєкт з гачками розблокований!)

Тобто, GTD існує (всупереч назві?) не заради того, щоб зробити всі справи, а щоб можна було спокійно взаємодіяти з життям та вже на ґрунті цього спокою будувати все інше. Та щоб я не захотів будувати - GTD допомагає рухатися до мети. Як кажуть, в GTD будь-що стає проєктом — значить, будь-що можна зробити - задачі, ідеї, мрії, турботи, тривоги. Ось заради цього спокою та впевненості я завжди повертаюся до GTD, скільки б не кидав.


10.06.2025

Звички GTD: огляд

Всю систему GTD можна розділити на дві частини:

“Активна” частина — це списки наступних дій та вхідні. Вона потребує щоденного перегляду. Дії ми просто робимо (сподіваюся), а вхідні обробляються за схемою. Це все, що потрібно робити постійно, щоб залишатися з робочою системою. (Ну й, звісно, користуватися календарем.)

Решту системи ми переглядаємо щотижня. Це називається, очікувано, тижневий огляд.

По-перше, під час тижневого огляду переглядаються всі проєкти; якщо є такі, що не мають наступної дії, чи застрягли без прогресу, то виправляються. Часто розумієш, що проєкт чи дія поставлені невірно та переформулюєш. Або — видаляєш / пересуваєш до “мабуть/колись”! Бо зайвих проєктів повинно не бути.

По-друге, ми додаємо нові проєкти. Вони можуть братися з календаря нагадувань, з “мабуть/колись”, або просто з навколишніх обставин. В офіційних посібниках для того є довжелезний перелік питань-тригерів, але можна зібрати й власний — з усіх сфер життя, де можуть виникнути проєкти.

Чому тижневий? Можна було б й рідше. Але краще стежити за обсягом системи та не брати більше справ, ніж можна переглянути за годину кожного тижня.

Що я не роблю щотижня, так це перегляд всіх “мабуть/колись” - їх просто надто багато. Натомість переглядаю тільки по одній категорії. Гадаю, це в моїй системі слабке місце, але з тим “мабуть/колись” - найменш термінова категорія, та зазвичай готова чекати.

Без регулярного огляду система розвалюється. Але, як бачите, саме завдяки систематизації нам вже не потрібно робити якийсь епічний огляд всього життя в абстракції, а достатньо переглянути кілька списків. Та, дуже приємно щотижня знати, що ти все переглянув та задачам більше немає де приховатися.


09.06.2025

GTD: систематизація

Нарешті я трохи підготований перелічити, з чого складається система GTD, а також де ці частини розташовані в мене. За моїм досвідом, немає ідеального застосунку для GTD просто через різноманіття потреб та функцій. І це нормально.

Серце системи — Списки наступних дій за контекстами та список проєктів — про ці я детально розповідав в останні дні. Я на те зробив собі застосунок CoreGTD, яким досі (вже майже рік!) користуюся.

Список очікування — сюди пишемо все, чого пасивно чекаємо, щоб 1) не забути та 2) відстежувати, що проєкт заблокований. В мене це просто ще один контекст, який я переглядаю щодня.

Календар — в ньому залишаються всі справи з конкретним часом. Календар — це святе. В мене календар в Apple Calendar.

Календар нагадувань Йдеться про нагадування на далекі дати. Наприклад, “купити подарунки на Різдво”, “фестиваль”, чи “перевірити систему опалення на зиму”. Англійською називається tickler file - я завжди думав що це вигадка GTD, але насправді така картотека існує ще з перших нотаріусів. В мене такі в Apple Reminders, де зручно налаштувати повторення.

Мабуть/колись — це величезне сховище ідей та планів на майбутнє. В мене воно все на канвах в Obsidian, за посиланням детально написано.

Плани проєктів — бо планування точно не закінчується на меті та наступній дії! План — це не тільки перелік дій, а ще й нотатки, довідки, ідеї, ілюстрації — все це обовʼязково варто збирати до купи. Це теж я тримаю в Obsidian, по канві на проєкт (якщо потрібно.)

База знань — без неї теж голову не спустошити, хоч до задач база знань не має відношення (майже за означенням). Тут можна залучити будь-яку систему, яка подобається (або ніякої.) І тут в мене теж Obsidian.

Вхідні — це теж частина GTD, бо повинно бути місце, куди легко записати на ходу. Для мене це передусім Drafts.


08.06.2025

Система GTD: контексти

Давайте головне: хоч GTD пропонує охопити всі сфери твого життя, але 100% немає мети охопити всі діяльності. Немає ніяких просвітлених монахів GTD, які з ранку до ночі роблять все життя по системі.

За моїм досвідом, у дні є трішечки часу, коли ти звернеш увагу на систему GTD. Спочатку — все рутинні справи, календарні події, відпочинок в решті решт. І от, між всім цим, є моменти, коли можна встигнути зробити щось неординарне. GTD нас готує до цих моментів, щоб ми не загубилися та влипли в телефон, а мали чіткий список дій, над яким більше не треба думати — час діяти!

Але з усіх дій ще треба обрати одну. Якщо їх мало, можна просто перебрати. (Або використати FVP чи інший алгоритм.) Втім, зазвичай дій багато — кілька десятків — та це обтяжує. Тому ми розбиваємо список дій на менші списки — за контекстами. Контекст задає обставини, в яких ми хочемо бачити ту чи іншу дію.

(Наприклад: в моїй системі для роботи контекстів немає, бо поточних дій не більше 20, та я дійсно можу взятися за будь-яку - “робота” це вже достатній контекст.)

В книжці про контексти написано якось абстрактно, та вони виходять надуманими: “вдома” чи “місто”, чи “комп”. На мою думку, тобі варто подивитися на своє життя, та на доступні в ньому ситуації та базувати контексти на них.

Коли контексти надумані: “Місто” велике, та ти не буваєш регулярно в усьому “місті”. Більшість поїздок треба планувати заздалегідь — то може краще мати контекст “планування справ”? А “комп” - поганий контекст, бо й так весь день за компом і це ні про що не каже. Може, краще “швидкі справи рано вранці” чи “поки чекаю дитину з тренування”. Або “дослідження”, теж зручно.

А от контекст “дзвінки”, чи в мене - “комунікація” - дуже мені подобається: я до нього звертаюся в понеділок зранку, та послідовно закриваю всі стресові дії. Та це інший підхід до контекстів: збирати схожі дії в пачку. Тільки все одно треба розуміти, коли ти ними займешся; контекст, в якому ти не буваєш — поганий контекст.


07.06.2025

Система GTD: проєкти

Вчора зачепив тему проєктів, але вона варта окремого поста, бо “проєктом” можна називати зовсім різні речі. Ось я вже писав про проєкти.

Зокрема, це зовсім не те що проєкт в керуванні проєктами. Наприклад, в мене проєктами в GTD стають задачі чи епіки з Jira. На мою думку, “проєкт” на цей день надто перевантажене слово, але маємо те що маємо.

Вчора ми розкручували задачі в наступні дії. З одного боку, тепер їх легше почати — та закінчити. З іншого, також мусимо памʼятати, до чого ми хочемо дійти. В GTD проєкт — це результат, до якого спрямовані наступні дії. Тож окрім списку наступних дій, ми ведемо список проєктів. Не просто “задач” незрозумілого рівня, а саме бажаних результатів.

Наприклад: “Зробити пошук в каналі”, “Приготувати карбонару на вечерю”, чи “Підготуватися до відпустки” - це все проєкти.

Список проєктів нам потрібний для контролю. Ми не звертаємося до нього для вибору задачі — на те є список дій. Але ми передивляємося список проєктів, щоб помітити застряглі справи та оцінити навантаження. Дивно, але за GTD цей список достатньо переглядати раз на тиждень. Це, певно, за тих умов, що після виконання дії ми додаємо наступну, бо інакше робитимемо по одній дії на проєкт щотижня (це якщо встигнеш!)

Проєкт — це великий чи малий результат? Я гадаю, в ідеалі від тижня до місяця роботи. Тиждень — бо це інтервал огляду; менші проєкти змушуватимуть звертатися до планування частіше. Місяць — бо надто великі проєкти втрачають чіткість та розтягуються. Такі краще розбити на кроки. Для мотивації важливо, щоб ми могли закрити проєкт та рухатися до наступного, а не жувати місяцями один й той самий.

Існує ціла школа правильної постановки цілей, як-от SMART тощо. Це, мабуть, гарно і для проєктів, але система працює і без того, завдяки оглядам.

Є ще питання надто маленьких проєктів, коли здається, що одна дія — це й все. Тут офіційних порад не бачив, але я схиляюся що проєкт краще знайти навіть “на одну дію”. Ніякі дії не існують в вакуумі. Тож варто визначити, звідки ця “одна” дія взялася, та для чого. Також краще мати віху для контролю, що справа зроблена, бо після виконання “однієї дії” часто зʼявляються продовження.


06.06.2025

Звички GTD: обробка поточних задач

(Організаційне питання: я подумав, що перейменовувати продукт із торговою маркою — погана ідея. Тому далі буде просто GTD, без вигадок.)

Задачі приходять до нас в різній формі: “додати фічу X”, “повісити москітні сітки”, “купити сорочку”, “купити хліб”. Всі їх можна виконати. Але центральний момент GTD в тому, що ми недостатньо плануємо наперед. Може здатися, що план — це зайвий, якщо й без нього можна все зробити. Але якщо звернути увагу, тоді виходить, що ми змушені “планувати” в момент вибору задачі, та виходить це кепсько.

Наприклад: “повісити москітні сітки” наче зрозуміло… але самі сітки лежать в гаражі, то туди ще треба сходити забрати. “Купити сорочку”… та яку саме ще не вирішили. З хлібом зрозуміло, але його потрібно купити не зараз, а коли будеш в крамниці. Таке мікропланування ми робимо щоразу, коли читаємо список задач, та саме через нього список переростає у незрозумілу купу.

GTD пропонує додумати кожну задачу заздалегідь, на етапі обробки. Це не так нудно, як звучить. Всього лише потрібно від тієї початкової “задачі” піти: вгору, щоб визначити очікуваний результат, та вниз, щоб визначити справжню наступну дію.

Наприклад: з сорочками може результат бути “мати свіжий одяг на літо” (бо сорочки ж не самоціль?) А наступна дія - “спитати в друга, де він купував сорочку.” А ні, то не мій друг, а чоловік подруги дружини. Ну тоді спочатку “спитати контакт в дружини.” Ми розкручуємо задачу, поки не дійдемо до дії, яка не має передумов (окрім контексту, про нього буде окремо пізніше).

(До речі: для GTD нас цікавить тільки наступна дія, а не повний план. План можна зберегти за бажанням, але все одно кожний крок будемо розкручувати так само — виходячи з обставин.)

А “купити хліб” - це взагалі не задача, а пункт списку покупок! Немає сенсу такі рутинні дії тримати в GTD. Та це ще один нюанс: знати, де пора зупинитися. GTD це точно не система “для всіх задач в житті”.

Для складних проєктів варто завести нотатку та обробляти формально. Прості можна й в голові. Хоча по правді кажучи, в голові погано виходить, легко себе надурити. Ще є магічні дії “подумати” та “розпланувати” - це ми фактично відкладаємо осмислення на потім. Головне, щоб в нас був час, коли це осмислення відбудеться, бо часто така дія сидить аж до наступного огляду, коли доводиться приділити їй увагу.

Та так, думати — важко. Допомагає ставитися до цього як до творчої задачі. Ну як наче ти пишеш квести для гри. Чіткий список наступних дій — задоволення само по собі, про що ми будемо говорити, коли доберемося до виконання.


05.06.2025

Звички GTD: обробка

Завдяки регулярній обробці у вхідних нічого не залежується — а значить, ми впевнені, що звідки б не звалилися обовʼязки (та коли б не вистрілило натхнення!), все це не залишиться без уваги.

В GTD / БДС є центральна блок-схема для обробки — вона на ілюстрації. В ній є два ключових питання: чи потребує це дій? та коли? Обидва питання критично важливі, щоб не завалити себе незрозумілими “задачами”.

Частина вхідних або просто непотрібна, або записана для довідки. Такі ми викидаємо чи переносимо в нотатки та інші зручні місця. Тут все просто.

А далі залишається велика маса того, що можна “робити”. Це й прямі обовʼязки, нагадування, запитання. Та ще ідеї, навʼязливі думки, проблеми, плани, фантазії, афіші. “Задачі” приходять в широкому різноманітті.

На оригіналі схеми є питання: is it actionable? Довгий час я думав, що воно значить — чи можна взагалі щось по цьому зробити? Це неправильно! Робити можна майже все. Навіть мрія починається з маленької дії сьогодні. Проте справжній сенс цього питання в розгалуженні: беремося робити в найближчий тиждень, або почекає?

(Я для конкретики написав тиждень, бо це правильний проміжок між оглядами. А на огляді ми маємо шанс переглянути списки відкладеного та поповнити активні задачі. Взагалі в БДС багато чого відбувається в ритмі оглядів.)

Все, що чекає — йде у “беклог” під назвою “мабуть/колись”, про який я вже писав, але напишу ще в пості про систематизацію. Це наш великий довідник занять на майбутнє.

Нарешті, залишається те, що треба робити ось зараз чи найближчим часом. Я гадаю, найважливіша частина БДС — це те, як ми обробляємо поточні задачі. Тому її я виділю окремо.


04.06.2025

Звички GTD: збір

Про збір можна дуже швидко сказати: записуй все.

Підкреслю, що збираються не задачі, а нотатки. В цьому й сенс збору як окремої практики: ми вільні записувати все, що завгодно. Поки - невідомо: може, то задача, а може, ідея на майбутнє, а може просто зайва думка. Зібрані нотатки називаються “вхідні” та обробляються наступним кроком тоді, коли це зручно (зазвичай щодня.)

Вхідні створюють буфер між неконтрольованим світом та нашою системою. Бо, я гадаю, якщо у тебе вже є список задач, то може ти пробував відразу збирати в нього задачі. Так зʼявляється безформний список не то задач, не то нагадувань, не то ідей, якому не можна довіряти та який тільки створює стрес.

Не всі вхідні доводиться збирати вручну. В нас багато місць, куди вони приходять самі: пошта, повідомлення, робочий стіл тощо. Такі місця достатньо перелічити та точно окреслити — тобто знати, коли там є що обробляти. Я відстежую понад 20 категорій вхідних, де є, наприклад, “відкриті вкладки браузера” та “речі не на місці”.

Власне, з пошуку таких місць можна й почати. А також, завести собі зручну записничку. Зараз це 100% телефон — то обрати програму, куди легко заносити нотатки. Для мене це Drafts, але зовсім на ходу надиктовую Siri в нагадування.

Звичка збору надає впевненість, що ми ні про що не забули. Але ж щоб цю впевненість зберегти, вхідні потрібно регулярно обробляти.


03.06.2025

GTD - з чого складається ця система?

GTD / БДС є системою звичок, а вже в другу чергу організації даних. Тому вона й вижила 24 років — бо книжка вийшла у 2001, ще коли не було ані смартфонів, ані інтернету в сучасному сенсі. Інструменти змінилися, але ми так само ходимо з повною головою та хочемо зробити більше, ніж можемо.

Сенс цих звичок в тому, щоб звільнити голову від всього, що нам не потрібно на цей момент. Та зробити це так, щоб ми були впевнені, що всі справи, обовʼязки, обіцянки десь записані, а не загубились. Сьогодні перерахуємо ці звички.

1. Збір. Це звичка завжди записувати все, що захоплює твою увагу та потребує дій в майбутньому. Багато чого приходить до нас вже записане — як-от повідомлення чи пошта. Але збирати варто все, за що чіпляється розум, від скрипучих дверей до ідей продуктів. Та, звісно, всі обіцянки та прохання теж.

2. Обробка. Вхідні — це ще не задачі; “вхідним” може бути все що завгодно, та першим чином їх треба розділити: що робити, що відкласти на потім, що зберегти для довідки, а що викинути. Цей крок дозволяє нам спокійно оцінювати задачі, замість того, щоб реагувати на них в моменті.

3. Систематизація. То, мабуть, найбільш знайома всім звичка про розкладання задач в різні списки. В БДС на диво списки дуже прості, тому влаштує буквально будь-яке сучасне рішення, від блокнота та текстового файлу. Вся магія не в списках, а в осмисленні, яке їм передує.

4. Перегляд. Звичка, яка все повʼязує. Щотижневий перегляд зберігає впевненість у повноті та актуальності системи. Без нього швидко втрачаєш довіру. Не лякайся, переглядаються тільки поточні справи, та ті, що можливо пора починати — тому перегляд виходить цілком осяжний. (І надзвичайно корисний!)

5. Виконання. Нарешті, те, заради чого ми все це робимо. За моїм досвідом, хоч БДС охоплює всі частини життя, але тільки невелику частину часу. Здебільшого це ті справи, що просто так не робляться: “важливе, але не термінове.” А більшість часу займає всіляка рутина та термінові несподіванки. Тому без звички виконання будеш щотижня сумно переглядати той самий список задач.

На мою думку, коли люди займаються типовим тайм-менеджментом, то обмежуються систематизацією та виконанням. Переглядом — хіба як щось епічне-новорічне.

А особливо сумно за збір, бо саме завдяки збору приходять гарні ідеї, а інколи — справжнє просвітлення. Про це — завтра.