Стендап Сьогодні
📢
Канал в Telegram @stendap_sogodni
🦣
@stendap_sogodni@shevtsov.me в Федиверсі
Пости з тегом #GTD
06.11.2024
Порожній список дій на роботі та висновки
Останнього тижня мені пощастило піти у коротку відпустку… та так вийшло, що я це зробив з абсолютно порожнім списком наступних дій. Це в мене безпрецедентно, та до того ж дуже приємно. Хочеться повторяти цей успіх, тому занотую спостереження.
Йдеться про список наступних дій; список проєктів, звісно, не залишився порожнім, бо там деякі справи тривають місяцями. Виходить, в цьому розділенні на два списки є додаткова користь — тільки один з них можна закінчити. По поверненню з відпустки я, звісно, пройшовся по проєктах та досипав ще дій — але визначним був той момент, коли дій не було. Хотілося б досягати такого щотижня.
Це моя перша роздільна система для роботи та дому. Раніше робота завжди була контекстом (текою, зоною) в спільній системі. Зараз в мене окремий компʼютер для роботи та я намагаюсь відокремити роботу від особистих справ, тому було логічно й системи задач зробити дві.
Виявилось, що розділення значно спрощує робочу систему: в ній лише один контекст, тобто єдиний список задач (дій.) Я просто відкриваю його та роблю дії по черзі; нові задачі додаються в кінець. Майже не доводиться думати, що робити далі. Зате тепер доводиться окремо робити щоденний та щотижневий огляд, що в цілому тільки перевага.
В домашній системі до такого успіху ще далеко, бо там все (поки?) вдесятеро складніше. Контекстів багато, проєктів багато, вони всі різні. А головне — потрібно вставати з-за компʼютера. Бо дійсно, зараз робота стала такою зоною комфорту, де все заздалегідь впорядковано — сиди та роби. Раніше так хіба з компʼютерними іграми було. Втім, такий успіх надихає влаштувати особисті справи так само.
Коли мене просять щось зробити, то воно йде або в кінець списку, або — якщо це терміново — то я роблю його невідкладно. Але головне, що є надійне місце для всього, що невідкладно не зробиш. Це звільнює від “режиму хомʼячка”, де бігаєш по колу та робиш останнє, що впало в очі.
До речі, майже всі нетермінові прохання я обробляю вранці під час щоденного огляду; протягом дня я їх записую в нотатки чи зберігаю в Slack, а вранці обробляю ці вхідні та перетворюю за GTD.
16.11.2024
Виконання задач за порядком Final Version
Чесно, поки писав пост про порядок виконання задач, тільки під кінець згадав про існування “системи” Final Version (Perfected). А я їй колись користувався в блокноті, з непоганими результатами. Цього разу вирішив адаптувати систему для власного домашнього застосунку для ведення справ. Далі більше про систему FVP та деталі реалізації.
Нащо воно потрібно? Бо чим довше список задач, тим важче обрати, що з нього робити наступним. Та найстрашніше те, що природна реакція на те — взагалі нічого не робити. Тому люди вигадують всякі системи, як я писав в попередньому пості, а також розставляють пріоритети, плани на сьогодні та таке інше.
FVP пропонує елегантне та просте рішення, яке все ж включає постійний перегляд всього списку — тому важливі задачі будуть виконані якнайшвидше. Це, якщо хочете, розвʼязок задачі динамічним програмуванням.
Для FVP тобі потрібний список, де можна відмічати задачі. (На папері — ідеально.) Відмічати будемо задачу, яку робити наступною.
-
Спочатку — відмічаємо першу задачу (як початковий стан).
-
Далі шукаємо в списку задачу, яку треба зробити до відміченої.
-
Знайшли — відмічаємо її, та продовжуємо порівнювати решту задач вже з нею.
-
Дійшли до кінця списку — тепер остання відмічена задача є найпріоритетнішою. Робимо її.
-
Повертаємося до попередньої відміченої задачі, та продовжуємо перебір вниз по списку.
Сила цього метода в тому, що доводиться тільки порівнювати по дві задачі, та лише N раз. Ніби нічого революційного, але дуже дієво. (Залишається ще чистити список від того, що там застрягає, але то окрема історія.)
11.01.2025
Мʼясне сортування
В мене в застосунку для GTD є режим FVP для простого вибору наступної задачі. Він був трошки напівавтоматичний, а саме: переглядати задачі в послідовності, та не стрибати туди-сюди, доводилося вручну — за звичайним списком. Тобто все одно перед очима був повний список.
(Нагадаю, що весь сенс алгоритму FVP - це такий класичний пошук найпріоритетнішої задачі в масиві — запамʼятовуємо першу задачу, перебираємо всі інші та порівнюємо з нею, як найдемо більш приорітетну — запамʼятовуємо її та йдемо далі. Ну всі такий код писали. Але тут воно працює “на мʼясі”.)
👈 Сьогодні, щоб полегшити собі життя, впровадив спеціальний режим, де показуються тільки дві задачі - “найважливіша” та наступна з не перебраних, Залишається тільки обрати між ними (і так N разів). Такий собі “тіндер для задач” замість списку. 👉
Насправді колись я робив цілий сортувальник в такому стилі. Але для FVP потрібно тільки обрати одну задачу, та “мʼясна складність” алгоритму лише O(N).
26.02.2025
Як залізти назад в човен?
🏄♂️ В колах самоменеджерів ходить така фраза, як “впасти з воза” (fall off the wagon): це коли ти припиняєш підтримувати систему. Далі на цей віз треба залізти та їхати далі. Проте мені більше подобається не віз, а човен чи навіть дошка для серфінгу: бо коли “впадаєш з човна”, вода — задачі — нікуди не зникає, а навпаки, тепер доведеться вигрібати поточні справи вручну, поки не залізеш назад.
Для мене головною проблемою із відновленням системи є — що робити з попереднім списком задач? Продовжувати як є — морально дуже важко. Викинути — ризиковано, бо завжди там сидітиме пара задач “з другого квадранту”, які потрібно зробити обовʼязково, навіть якщо час минув. Насправді навіть щось з нього викинути теж важко. Окрім утоплених витрат, взагалі важко (мені?) відмовлятися від задуманого.
Тут важливо згадати, що причиною падіння з човна саме й був поточний список задач. Ну тобто так, можна звинуватити обставини, але якби список був чітко з важливих речей, то не було б проблеми до нього повернутися. Але ні, список заріс бурʼяном. Тепер він відштовхує, та ми обираємо вигрібати вручну. Можна сказати, що повернутися в човен ще складніше, ніж почати.
Допоможе прорідити список система “мабуть/колись”. До “мабуть/колись” менше вимог, тому від неї значно менше стресу. Все зі старого списку, що не потребує невідкладного виконання, може йти в “мабуть/колись” та сидіти там… а хоч довічно. Головне, що ми й не забудемо нічого, і зобовʼязань не беремо зайвих. (А ще краще переносити задачі в “мабуть/колись” раніше, ще на тижневому огляді, як тільки ясно, що поки на них немає часу.)
04.03.2025
GTD як засіб від тривоги
Сьогодні шукав відповіді на те, коли ж все ж таки робити ті наступні дії, які назбиралися по GTD. Бо якщо не придивлятися, весь день без того чимсь зайнятий. Знайшов на реддіті відповідь, яка змусила замислитись.
Метою GTD є розум, спокійний, як вода: такий, що робить саме те, що потрібно, та не марнує зусилля на аби що. (Якщо замислитись, це дуже буддистська філософія.) Так от ця відповідь давала пораду від зворотного: там, де розум тривожний, і потрібно прикладати GTD.
Мені подобається, що такий підхід водночас і визначає межі системи продуктивності (бо записувати потрібно тільки те, що не виходить само), й створює тригер для уваги (відчуваєш тривогу — перевір списки.)
От в мене є таке, що коли раптово та терміново просять щось зробити, то стає тривожно… не від того, що я вже зайнятий, а від того, що я не знаю, чи буду зайнятий. Оце для мене саме та тривога, з якою можна боротися за допомогою GTD.
27.04.2025
Як я робив TG-бота для самоменеджменту
Прочитав нещодавно в пана Рожкова про бота для обліку пального. Та відразу згадалося, як я колись такого нагородив… аже поділитися захотілося, бо проєкт нікуди не пішов. Йдеться про бота для обліку власних задач за моделлю GTD.
Власне, ось навіть код виклав.Я писав його влітку 2017-го, але сьогодні легко завів. Бо це Go, а не React Native. У Go підтримка легасі — це одна з головних цінностей дизайну. Ще треба зазначити, що в Telegram дуже зручна модель розробки ботів, тож ти його можеш запустити в себе локально та створити власного бота. Поки програма запущена, бот буде доступний будь-звідки через інтерфейс Telegram.
Як бот влаштований. Фактично бесіда з ботом — це “вікно” в дані, яке фокусує нашу увагу на чомусь одному (наприклад, поточній дії.) Задача бота — просувати це вікно, а також пропонувати ефективні та вчасні операції в поточному контексті. Це досить особливий бот, можу порівняти його з людиною-тренером, або з інтерактивною літературою, тільки ще й з твоїми даними всередині.
Головна складність в тому, що він повинен памʼятати стан бесіди, причому навіть після довгої паузи. А бесіда має складну блок-схему (“обробка вхідних” в GTD вже складна!)
Я роздивлявся різні моделі та вирішив розбити спілкування на пари “питання-відповідь”. Кожне питання має: код-ідентифікатор, “шаблон інтерфейсу” - текст та кнопки, та обробник відповіді.
(До речі, оці кнопки - це лише “заготовлені відповіді”, тобто немає різниці, натиснути на кнопку чи ввести її текст вручну. А також тому можна обробляти кнопки та вільний ввід одночасно, в одному “питанні”.)
Обробник інтерпретує відповідь, робить належні зміни в базі, та надсилає повідомлення про результат. Результатом обробника завжди є нове питання, яке набуває чинності та отримує шанс побудувати вже власний “інтерфейс”. Наприклад, ось питання action_suggestion з ілюстрації.
Таким чином вдалося ізолювати логіку кожного кроку. Щоправда, я на той час не здогадався класти додатковий стан, як-от поточну дію, в поле JSONB, а записував прямо в спільні поля в моделі користувача. Це погано, бо в кожного питання може бути своє розуміння “поточної дії”.
Мені цей проєкт, з одного боку, подобався та досі подобається за його інтерфейс. Є щось особливе в тому, щоб працювати з даними в режимі діалогу (що на цей день стало тільки актуальніше.) А з іншого, діалог обмежує. Зокрема як тільки треба передивитися всі дані в базі, та ще й робити над ними зміни. Були в мене фантазії гібридного застосунку — тобто такого, де діалогова модель доповнює традиційну - але руки не дійшли.