Как связать базы данных notion
Всем доброго дня! Думаю, статья будет интересна всем, кто пользуется Notion, но по какой-то причине не мог переехать на него полностью.
Предистория
Я разрабатываю свой проект. На лэндинге после ввода емейла выдается ссылка на соцопрос на базе Google Forms. Ответы записываются в табличечку на Google Drive.
Проблема в том, что все свое я ношу с собой сохраняю в Notion. Это банально удобней. Обходился ручным копипастом, пока отзывов было мало. Потом их стало больше — и надо было что-то придумать. Кому интересно, что вышло — добро пожаловать под кат.
Проблема
Google Forms записывают ответы только в табличечку — то есть тут никакого другого рецепта нет. Поэтому у меня родился план: давай через IFTTT слушать апдейты табличечки, пересылать на вебхук новые данные, там их как-то обрабатывать и загружать в Notion.
Для тех, кто не знаком с IFTTT: это сервис, который позволяет делать цепочки из действий. Скажем, «пришел пост в телеграм» — «экспортируем его ВКонтакте».
План начал сбоить: у Notion нет официального API. Но кто-то реверснул его и сделал неофициальное API.
Окончательный план был такой:
- Делаем апплет в IFTTT: «Добавлена строка в табличку — отсылаем ее на сервер
- Делаем непосредственно сервер, который принимает данные и отправляет их в Notion
Поэтому пришлось изменить план: выкачиваем csv'шку с Google Sheets, парсим ее на сервере и кидаем все новое в Notion. IFTTT же используем как триггер для всего процесса.
Часть 1. CSV с Google Sheets
Часть 2. Пишем сервер
Так как библиотека у нас питоновская, будем писать на Django.
Теперь немного про структуру конкретно моей таблицы. Таблица в Notion, в отличие от таблицы в Google Sheets, имеет колонку „Reference“. Это ссылка на другую таблицу (в моем случае — на описание функций, которые понравились пользователям). Остальное в целом понятно: просто столбцы с просто данными.
Идем в Notion, уже привычным Ctrl + Shift + J открываем консоль, идем в Application — Cookies, копируем token_v2 и называем его TOKEN. Потом идем на нужную нам страницу с табличкой и копируем ссылку на нее. Называем NOTION. Если у вас тоже есть Relation, идем на страницу с Relation, копируем ссылку и называем, например, NOTION_FUNCTIONS
Далее пишем следующий код (предварительно импортируем notion):
В нем мы подключаем NotionClient, говорим „Базы данных? Дайте две!“ и получаем непосредственно данные с этих двух табличек (дефолтным запросом, но можно и с сортировкой, подробнее — в документации к библиотеке).
Потом мы должны сделать следующее: запросить CSV у гугла и распарсить ее. Делать мы это будем pandas'ом.
Потом мы должны пройтись по всем данным с этой таблички и проверить, добавлены ли они в Notion или еще нет. Для этого мы и запрашивали данные с табличек.
Отдельно стоит сказать про „row.name“, потому что внимательный читатель наверняка спросит: а это вообще что такое-то?
Это название колонки в Notion (где хранятся времена записи). У меня как-то не получилось с русскими названиями добавлять, поэтому я изменил все названия на английские и добавляю по ним.
И теперь код на проверку данных и добавление строки в табличку Notion:
checkEmptiness — это функция, которая проверяет, нулевая ли штука в нее была передана. Notion как-то с неохотой работал, когда я ему кормил нулевые поля, поэтому стоит написать.
Теперь перейдем к разбору Relation'ов, потому что в официальной документации я про это не видел. Чтобы сделать ссылку на строчку с другой базы данных, надо взять ее (этой строки) айдишник и передать. Соответственно, если подразумевается массив ссылок на строки из другой таблички, надо взять массив их айдишников. Я лично добавлял Relation'ы по названиям функций.
В конце после создания строчек добавляем ответ, чтобы на том конце знали, что запрос дошел.
Тащемта с самым главным по серверу закончили, переходим к IFTTT.
Часть 3. IFTTT
Переходим на вкладку создания апплетов. Выбираем триггер (в нашем случае — это Date&time), ставим „каждый час“. Выбираем триггерируемым (то есть „that“) Webhook, указываем наш (пока что) локальный адрес, дабы потестить. Ну и все. Тестим.
Часть 4. Heroku
Вы думали, для чего мы возились с вот с этим триггерением со стороны IFTTT — это для того, чтобы не платить. Heroku предлагает бесплатный тариф для хостинга нашей штучки. Главное — чтобы сервис спал минимум 6 часов. А он точно будет спать, потому что мы его зовем работать каждый час, а не каждую минуту.
Далее делаем следующее. Идем в heroku создавать новый проект. Далее устанавливаем на свою операционную систему их клиент. А потом делаем все согласно инструкциям, появившимся после создания приложения.
Загрузив все на heroku, переходим в наш апплет и редактируем урл на новый.
Теперь каждый час список должен обновляться. Гипотетически IFTTT может выдавать ошибку, что какой-то у вас долгий реквест, но это не столь важно.
Апдейт
Это оказалось таки важным. Когда IFTTT ловит постоянные ошибки, он начинает скипать апплеты.
Чтобы решить данную проблему, просто запускаем новый поток для вот этой всей всячины, сразу отдавая ответ.
Еще одна идейка, которую я забыл озвучить в статье — это проверять на нулльность стандартным pandas'овским методом.
То есть ваша проверка будет выглядеть примерно вот так:
Считайте, что каждая связанная база данных — это двусторонний фрагмент исходной базы данных. Она ссылается на те же исходные данные, но имеет свои собственные представления, фильтры и сортировки.
- При взаимодействии со связанной базой данных создаваемые и удаляемые представления, фильтры и сортировки не влияют на представления исходной базы данных.
- Однако изменения, внесенные в фактическое содержимое или свойства связанной базы данных, будут отражены в исходной базе данных.
- Вы можете добавить столько связанных баз данных, сколько захотите, в линию на одной странице. Редактируйте их для различных целей, чтобы создать собственную приборную панель.
Часто задаваемые вопросы
Я пытался поделиться страницей со связанной базой данных, но получатель не смог ее увидеть.
Тот, с кем вы поделитесь такой страницей, должен иметь доступ к исходной базе данных, чтобы иметь возможность видеть любые связанные фрагменты этой базы данных.
Могу ли я назвать свою связанную базу данных как-то иначе, чем оригинальная база данных?
В настоящее время нет. Однако несколько пользователей спрашивали об этом, так что этот вопрос включен в наш список дел!
Базы данных помогают структурировать информацию в Notion различными способами, позволяя упорядочивать, классифицировать, маркировать, фильтровать, искать, просматривать и использовать ее для выполнения работы. Ниже приведено пошаговое руководство по работе баз данных Notion и созданию собственных баз.
Основы баз данных
Есть три вещи, которые отличают базы данных Notion от электронных таблиц и баз данных, которые вы можете создать с помощью другого программного обеспечения:
- Настраиваемые свойства
Добавьте свойства, чтобы контекстуализировать, пометить и дополнить любой элемент базы данных дополнительной информацией, такой как даты, люди, текст, ссылки и т. д.
- Несколько представлений информации, которые вы можете переключаться между ними
Ваши данные не хранятся в таблице. Представление точно такой же базы данных, как доска, список, календарь или галерея — все, что делает информацию наиболее полезной.
- Каждый элемент содержит в себе свою собственную редактируемую страницу
Этим уникален Notion. По сути, каждый элемент, который вы вводите в свою базу данных, может быть открыт как его отдельная страница Notion, где вы можете разместить любую информацию, которую вам нужна.
Создание базы данных
Есть несколько способов как можно создать базу данных в Notion:
- Создайте новую страницу в своем рабочем пространстве, затем выберите тип базы данных в меню в градациях серого на этой пустой странице.
- Создайте страницу базы данных внутри существующей страницы, введя / , а затем выберите тип базы данных, который вам нужен (например, таблица, Канбан-доска и т. д.). Выберите полностраничную версию.
- Создайте базу данных на своей странице, введя / , а затем тип базы данных, которую вы хотите. Выберите встроенную версию.
Полная или встроенная страница баз данных
Все базы данных в Notion могут существовать в двух форматах — в виде полной страницы или в виде строки на другой странице, которая также содержит неструктурированные данные (например, таблицу в середине письменного документа).
Полностраничные базы данных
- Создайте полностраничную базу данных, создав новую страницу в рабочей области и выбрав тип базы данных в меню в градациях серого.
- Или введите / , а затем укажите слово full и выберите тип базы данных (доска, список и т. д.).
- Полные страницы базы данных отображаются так же, как и любая другая страница на боковой панели.
- Вы можете заблокировать полностраничную базу данных, чтобы другие люди не могли изменять свойства и параметры значений, перейдя к значку ••• и включив блокировку базы данных Database Lock .
- Чтобы превратить полностраничную базу данных во встроенную базу данных, вы можете просто перетащить базу данных на другую страницу на боковой панели, которая превратит ее в подстраницу.
- Затем перейдите на страницу, щелкните на значок ⋮⋮ и выберите Turn Into Inline в раскрывающемся меню, чтобы превратить его в встроенную базу данных.
Встроенные базы данных
Встроенные базы данных могут находиться вместе со всеми другими типами контента. Один из популярных вариантов использования — добавление их в документы.
Zettelkasten — крутой метод хранения идей и знаний — сейчас на слуху, его уже обсуждали на Хабре. Я веду такой в Notion уже год, потому что Notion лучше всех воплощает три главных принципа Zettelkasten: взаимосвязанность, категоризацию, актуальность. Метод улучшил качество моего обучения и исследований, и без него как-то уже не так.
Я почитал русскоязычные и англоязычные ресурсы и не нашел ни нормального шаблона для Notion, ни объяснения как реализовать главные преимущества метода Zettelkasten. Под катом и то, и другое.
UPD: На текущий момент, статья безбожно устарела, потому что за еще один год я набрался опыта, помогая другим людям организовать их Цеттели и наблюдая за чужим опытом. А еще Notion выпустил несколько фич, заточенных именно под Цеттель. И теперь мне совестно, как новички страдают, разбираясь в теме после меня.
Эту статью можно почитать для понимания основ, но актуальные источники информации тут:
- У меня в Психотронке можно следить за подготовкой обновленной версии, ну и написать мне за помощью. А можете не следить: версия 2.0 выйдет на Хабре.
- В русскоязычном сообществе Zettelkasten в Телеграме сидят люди, которые хорошо разбираются в теме. Мы обожаем помогать новичкам.
Что такое этот ваш Цеттелькастен?
Это метод хранения и систематизации идей, знаний, источников и чего душе угодно. Zettelkasten социолога Никласа Лумана помог ему написать более 70 книг и 400 статей, при том что вел он Zettelkasten на бумаге, а писал не детективы, а книги и работы по социологии. Обязательно прочитайте перевод на Хабре о преимуществах метода.
Так выглядели карточки самого Никласа. Взято из блога Eugene Yan
Мой Zettelkasten выглядит как на картинке в начале статьи, но внешность обманчива — Zettelkasten может выглядеть как угодно, и в этом его преимущество. Для этого поста я взял донором мои весенние заметки по Java, поэтому не удивляйтесь специфичности скринов.
Для меня, Zettelkasten базируется на трех главных принципах.
Взаимосвязанность
Заметки в Zettelkasten находятся в ассоциативной сети, прямо как в человеческой памяти (но это не точно), из-за чего их считают продуктивнее обычных заметок. На деле у меня получается придумывать новые идеи, не терять нить размышления при длительном исследовании и находить связи между прочитанным месяцы спустя.
Категоризация и иерархия
Взаимосвязанность обеспечивает то, что все заметки в Zettelkasten связаны. И не только по признаку темы, категории или по тэгам, но и между собой, в иерархии и без нее. Я веду длинные цепочки по мере чтения книги и сортирую данные по темам. Например, вот мои заметки по дженерикам в Java.
Актуальность
Так как вам придется проставлять ассоциации, категории и тэги, Zettelkasten стимулирует вспоминать взаимосвязанные между собой вещи. По моему опыту, это и есть тот момент, когда рождаются новые идеи, а еще и тренируется память.
Еще в Zettelkasten легко искать ответы на вопросы, особенно если его откармливали годами, и теперь он толстый и мудрый.
Мои цели и опыт
Я завел Zettelkasten чтобы учить программирование эффективнее: вести конспекты так, чтобы было легко находить снова и не приходилось «перегугливать» свои вопросы. Со временем я осознал мощь метода и стал использовать его для всего: своей книги, случайных идей, исследований по работе.
Смешивание помогло: тут же нашлись связи между разными дисциплинами и темами, а еще я перестал забывать, почему же LinkedHasList был столь важен для меня два месяца назад (чтобы реализовать порядок ходов в настольной игре). Из идей ничего больше не теряется, а значит не приходится изобретать их заново. Это экономит ресурсы мозга, а так как мозг потребляет много калорий, то можно сэкономить и на еде. Полезно в эти темные дни.
Как завести Zettelkasten в Notion?
Я уповаю на то, что читатель знает уже основы Notion, или просто с ними разберется: инструмент не сложный и нынче бесплатный для личного пользования. Я расскажу только неочевидные, как оказалось, основы реализации Zettelkasten.
База данных — основа основ
Это сердце Zettelkasten и основа всех преимуществ Notion: без неё можно также реализовать метод в Блокноте. Создается она просто: (1) создается пустая страница, а затем (2) выбирается тип базы данных.
Таблица проще всего для отладки. Это только внешний вид коллекции карточек с метаданными, потом можно его изменить.
Настройка атрибутов карточек
В созданной таблице нужно открыть любую страницу и задать минимальный набор аттрибутов каждой карточки. Эти поля будут доступны затем для каждой новой заметки, и наоборот: добавленные аттрибуты появятся в старых заметках.
Минимальным набором для полной реализации Zettelkasten являются:
-
Тэги: неограниченное количество тематических меток. Когда будете вводить тэг, Notion предложит существующие или сразу создаст новый, поэтому даже с телефона удобно их добавлять.
На этом создание закончено и надо работать
Да, Zettelkasten уже готов к бою. Но история только начинается.
Вся суть метода — в том, что его надо вести. Стоит следовать советам из перевода: например записывать идеи дробно, своими словами и пытаться связать одни записи с другими. По ходу дела вы будете дорабатывать свою киберпамять под нужды.
Например, у меня появился атрибут «URL», потому что я пользовался клиппером Notion для сохранения целых статей прямо в Zettelkasten и хотел хранить ссылки на источники. Полезно при работе с академическими журналами по подписке, если вы почему-то не научный пират.
По мере наполнения Zettelkasten, его мощь и полезность будут расти. Для меня первый момент X настал спустя две недели, когда вместо «перегугливания» процесса создания файла в Java я нашел его в Цеттеле. А второй — когда я конспектировал Троцкого и сумел связать его идеи автономной революционности масс с карнавалом Бахтина. Теперь открытия и находки происходят каждый день.
Особенности и преимущества Zettelkasten в Notion
Тут и начинается самая важная часть поста. Оказалось, что даже секундные «тормоза» забивают гвозди в гроб моей любви к заметкам, и пришлось оптимизировать работу с Zettelkasten. Поэтому эта история об эффективном использовании Notion и убыстрении процесса.
Как пользоваться связями карточек?
Каждый раз, когда вы добавляете одну карточку к другой, в поле «Related» можно вводить нужный термин, например «Boolean». Notion сразу подыщет их в вашем Zettelkasten. А можно выбрать руками.
Потом «детей» отдельной идеи можно увидеть в авто-генерированном аттрибуте карточки.
Это работает в обе стороны: можно кликнуть на авто-аттрибут и сделать карточку «ребенком» вручную.
Как создавать «виды» на записи?
В методе важно иметь способ по-разному взглянуть на собранные знания. В Notion это реализуется через «виды» и каталоги.
Вид Zettelkasten можно создать с помощью переключателя вида сверху (1). Я пользуюсь, в основном, галереями (это вид карточек) и списками.
Можно иметь несколько видов одного типа: вид — это не только стиль выкладки, но и видимые атрибуты, фильтры, сортировка и все ваши настройки. Через меню «Properties» (2) в виде «Галерея» можно:
- Настроить порядок показа атрибутов (например, показывать имя карточки внизу)
- Изменить размер и что будет показываться на превью.
- Включать и выключать отображение атрибутов
Как создавать каталоги?
Преимущество Zettelkasten в том, что он позволяет в любой момент «собирать» каталог по набору тем, признаков или связей между заметками. Это открывает досель неочевидные вещи и соединяет клочки идей в одну историю. А преимущество Notion в том, что это делается в три клика.
В Notion есть блок «Связанная база данных» (Linked database), которая создаёт «проекцию» данных из основной базы на отдельную страницу. Связанную базу данных можно создать на отдельной странице и выбрать для неё свои виды. Она будет синхронизироваться с главной, и наоборот.
Теперь следите за руками:
- Создаем карточку внутри Zettelkasten
- Вставляем в неё базу данных, связанную с Zettelkasten (так можно)
- Создаем для неё вид, фильтруя по тэгам или категории.
Настройка происходит через фильтры, и они работают по атрибутам. Увы, пока не по содержимому. Пока фильтры не включены, появляются они только по наводке мыши.
Как ускорить ввод данных в больших базах?
Когда ваш Zettelkasten перевалит за сотню-вторую записей, он начнет загружаться с задержкой и вообще тупить при манипуляциях. Но так как мы умеем создавать связанные базы данных, то ситуация легко исправима.
Я создал отдельную страницу для ввода, вставил в неё связанную базу и отфильтровал её так, чтобы показывались только добавленные сегодня карточки. Она загружается мгновенно с телефона и ПК.
Для пущей скорости я создал для неё ярлык в Chrome и закрепил на панели задач. Для этого надо через настройки Chrome выбрать More tools — Create Shortcut. Не забудьте проставить «Open as window» в диалоговом окне.
Как искать данные?
Это большой провал Notion, но если кликать по кнопке «Search» вверху самого Zettelkasten, то искать он будет по заголовкам и никак иначе. Чтобы искать по тексту и вложениям как в начале статьи, нужно пользоваться Quick Find, который вызывается по Ctrl/Cmd + P.
Как использовать шаблоны ввода?
Со временем обнаружилось, что я ввожу плюс-минус одинаковые типы новых карточек. Потому я создал шаблоны, которые вызываются по кнопке «New» в углу и предлагаются при создании новой страницы.
В шаблоне можно поставить атрибуты по-умолчанию, иконки и даже содержимое. Например шаблон каталога сразу содержит связанную базу данных с фильтром для быстрой настройки.
Как создавать резервные копии?
Автор метода вел свой Zettelkasten десятилетиями, и недавно в коментариях я увидел, что Notion слишком скоротечен и ненадежен для такого метода. Мне тоже страшно что Notion вдруг закроется, и потому я регулярно выгружаю данные и отправляю в облако. При экспорте Notion присылает копию на имейл; так получается следовать правилу 3-2-1 без особых усилий.
В архиве есть корневой файл со ссылками на все карточки, и папка с карточками и ресурсами: картинками, файлами и вложениями. В HTML хранятся стили, тэги, категории и остальные атрибуты, так что в случае конца света, можно будет перестроить Zettelkasten самому.
Выводы, шаблоны и ресурсы
Zettelkasten развивает зависимость. Когда не можешь записать идею или узнанный факт прямо тут и сейчас, осознание его ненасытности и щедрости вызывает острую боль. А лень скормить Цеттелю что-либо пробуждает вину. Поборники метода не врут: появляется желание читать ранее тягостные книги и мануалы с целью накормить своего заметочного демона, чтобы тот переварил гранит науки в мягкую кашу.
Я верю, что лучший Zettelkasten построен своими руками. Ни один из шаблонов Notion, которые я видел не пригодился сам по себе. Поэтому я и написал статью вместо размещения очередного шаблона на Реддите.
Тем не менее, я создал шаблон для использования со страницей для быстрого ввода, типовыми карточками (разные категории, каталоги) и примером того как отсылаться к другим страницам. Можно копировать его к себе, а можно посмотреть и сделать свой.
В своём шаблоне я использовал бесплатные иконки для Notion от NuttsLab, мне они нравятся.
UPD: помочь по Notion можно получить в русскоязычном сообществе Notion в телеграме. Там сидят официальные представители Notion и много людей, готовых помочь.
UPD 2: меня приглашали на стрим по Zettelkasten, где я показал как использую метод на деле. Получилось запутанно, но по отзывам полезно. Запись на YouTube.
Приветствую, Хаброзритель. В данной статье я хочу познакомить тебя с органайзером Notion, поделиться своим опытом использования. Также я дам несколько советов, идей, к которым я пришел со временем, учась планировать и использовать свое время, силы и мыслетоплево.
Некоторые мысли, конечно, не будут напрямую связаны с данной программой и не все советы я как-то выделил отдельно, не упусти их.
Надеюсь, что буду полезен и прошу под кат.
Что такое Notion?
Notion - это органайзер, который предлагает использование мощного функционала реляционных баз данных пользователю, не знакомому с данной технологией, в красивой обертке. Вы можете настраивать связи между различными таблицами, гибко фильтровать свои данные, создавать вложенность любой глубины. Также в Notion есть возможность отформатировать ваши данные в виде таблицы, календаря, доски agile, диаграммы Ганта и другими способами. Конечно имеется поддержка todo-list, нумерованных или маркированных списков, различных разделителей, блоков кода, есть вставка видео или аудио, даже существует поддержка LaTEX.
Огромное количество функционала и гибкости разработчики смогли спрятать за минималистичным и лаконичным интерфейсом. Лично я, от стадии "ааа… странно, что? где?", перешел к стадии полного понимания того, что и как можно сделать буквально за 10-20 минут. Мне хотелось иметь пространство "для всего", и когда команда Notion открыла бесплатную версию, я нашел его.
Почему может быть сложно начать его использовать?
На написание данной статьи меня натолкнул пост "Почему не Notion". Выводы данного поста и некоторых комментариев можно описать так: "На организацию рабочего пространства уходит времени больше, чем на саму деятельность" или метафорично(укороченная цитата из того поста) "Перед тем как создать записку, вам надо создать стол, стул, листок и ручку".
Я с этим не согласен, и в моей голове сразу промелькнула одна интересная мысль:
Не нужно использовать сразу всё, что предоставляет данная программа. Пусть ваше пространство в Notion растет итеративно. Со временем оно само идеально подстроится под ваши нужды.
На просторах интернета можно найти различных личностей, например Томас Франк, с красивыми, качественными, продуманными дашбордами. Увидев такое, может даже стать немного завидно.
Некоторые из тех, кто "пропагандирует" Notion, могут делиться своими шаблонами (заранее настроенными страницами), но:
Я не рекомендую качать готовые шаблоны, если только они полностью вам не подходят. Они вряд ли будут удобны, так как их создали не вы. Также, ИМХО, будет ощущение чего-то чужого. Notion должен стать продолжением вас самих, вашим вторым мозгом.
Мой путь Notion
В данном абзаце, я расскажу, какой путь прошел мой Notion и покажу небольшие уловки/мелочи, которые упрощают реализацию желания - "быть более продуктивным".
Первая таблица
Первой причиной, для чего я хотел попробовать Notion, было планирование. Мне не зашел ни один планировщик, который я когда либо пробовал. В одном удалялись старые задачи, в другом не было связей, третий был неудобен в плане UX, в другом не хватало полей. Я даже бросился писать свою версию, но на данный момент этот проект лежит в черном сером ящике.
Итак, первое, что я решил попробовать в Notion - создать таблицу с задачами и отталкиваться от этого.
Посмотрите, как это выглядело, и я немного поясню, в чем был кайф:
Первая таблица Доступные типы полей Вид календаря Диаграмма Ганта Agile таблица
Изначально, мною была создана таблица, которую видно на первом скриншоте. Для меня это был абсолютно первый опыт и я был приятно удивлен тому, как создатели данного приложения подошли к функции добавления какого либо блока(календарь, таблица, галерея или просто текст и тд.). Начав новый абзац, вы просто нажимаете \ и выбираете нужный блок в выпадающем списке с помощью стрелок.
В данной таблице, на выбор есть различные типы полей[второй скриншот]. Вы можете легко добавлять теги, сортировать по ним. Можете добавлять напоминания. По началу было обидно, что вы не можете сделать повторяющиеся напоминания, но через некоторое время использования я понял, что это большой плюс. Повторяющиеся напоминания захламляют ваш мозг и отпугивают от приложения.
Следующую приятную эмоцию я испытал тогда, когда узнал, что в выпадающем списке, в левом верхнем углу, можно одним нажатием добавить дополнительную визуализацию.
После первого клика, у меня появилась возможность, открыв Notion, увидеть план в форме календаря на завтра, сегодня или любой другой день[скриншот 3].
После второго, по диаграмме Ганта[скриншот 4], я смог видеть какие блоки времени заняты, какие свободны и использовать это. Ранее я планировал в основном "на листочке", часто использовал timeboxing (советую изучить эту идею, если слышите о ней впервые). Некоторые дни даже пробовал расписывать весь день от пробуждения до сна блоками по 25 минут. Получалось отлично, но я не готов так делать каждый день. Данная диаграмма[скриншот 4], позволяет применять данный подход в очень удобном виде и без особых усилий. Конечно, у вас есть возможность манипулировать блоками на данной диаграмме, что очень удобно.
Итак, третий клик, и мы имеем agile таблицу. Из за проф. деформации, такой подход, лично мне, очень удобен. Мозг перестает видеть что-то лишнее, он не отвлекается, вопрос "что делать?" встает редко, я сконцентрирован только на столбце InProgress. Столбцы это те-же теги, никто не мешает вам добавить или удалить что-либо.
Всё максимально гибко.
Каждая строка/ячейка/box это такая же страница. Вы можете "провалиться" в неё, добавить вложенности, текста, дополнительных полей. Почти всё, что может придумать ваша фантазия, можно реализовать. Я решил последовать первому совету, написанному выше, и не увлекаться.
Первый дашборд
Однажды мне посоветовали видео Стеллы Васильевой, о том, как она настроила свои пространства. Мне понравилась идея некого дашборда, централизованного места, главной страницы, и я решил сделать нечто похожее. Ранее, выбирать страницы из "дерева" слева, мне было попросту не удобно.
То, что у меня получилось, можно увидеть на следующем скриншоте:
Реализовав свою версию дашборда, я познакомился с тем, как можно приятно кастомизировать свое рабочее пространство. Я добавил изображение в header, научился добавлять иконки к страницам, узнал как разделить пространство на несколько столбцов.
На дашборде я решил разместить backlog/inbox справа, и небольшую agile таблицу, для отслеживания текущего дня.
Ранее я держал под рукой тетрадку, в которую можно было быстро записать то, что неожиданно вспомнил, дабы не засорять ОЗУ головы. Теперь этот список был в дашборде Notion.
В agile таблицу я вывел story-point, estimation time и некоторые дополнительные теги. Есть возможность перетянуть строку из таблицы сразу в agile-board. Все дополнительные поля (story-point, estimation time) сразу добавляются к странице, которая была перетянута.
Также я добавил описание утренней рутины. Notion у меня всегда включен на отдельном рабочем столе MacOS, поэтому часто находился перед глазами. Как показывает практика, то что я вижу перед глазами, со временем "само" становится новой привычкой. Привычки же формируют ту личность, которой ты хочешь стать.
Советую попробовать наклеить стикеры, парой слов описывающие привычки, которые вы хотите получить. Стикер должен находиться перед глазами максимально большой процент дневного времени. Для меня это рабочий стол дома, зеркало в ванной, и самое главное - дверь холодильника, именно то место, за которое его открываешь. Недавно я добавил туда стикер "думать позитивно".
Эффект не заставил себя долго ждать.
Как я и говорил ранее, каждая ячейка, или строка таблицы - это такая же страница, с таким-же гибким функционалом.
Открыв любую задачу в agile-board, можно увидеть более подробное описание, прогресс, блоки кода:
Всё было бы хорошо, если бы не одно но.
Backlog очень быстро разрастается, начинает пугать, его становится невозможно разобрать.
Текущий дашборд
Итак, у меня была проблема постоянно растущего inbox. Одной из основных причин данной проблемы был постоянный поток идей. Конечно такой поток в сотни раз быстрее, чем возможность их исполнения. Для меня это действительно проблема: хватаешься за несколько проектов, по итогу ни один не доходит до конца, даже, казалось бы несложный проект о написании статьи на habr.
Решение пришло из workflow scrum. Создавать пользовательские истории, жестко ограничить их количество, и двигаться по ним.
Получившийся дашборд выглядел таким образом:
Как можно заметить из данного скриншота, я взял идею Стивена Кови из книги "7 навыков высокоэффективных людей" о том, что нужно развивать в себе 4 вида интеллекта: ментальный, физический, духовный, социальный. Когда существует гармония в развитии этих 4-х интеллектов, ты счастлив. Если развитие какого-либо интеллекта "проседает", ты можешь начать чувствовать упадок, что в свою очередь негативно влияет на развитие оставшихся.
Пользовательские истории, в данном контексте, должны придерживаться нескольким несложным правилам:
Название. Как тот, кто играет определенную роль, пользователь(я) делаю определенную вещь, для того, чтобы развить определенную черту, важную для данной роли.
Должен быть четкий критерий окончания, даже если его очень сложно придумать.
Дедлайн. Если его нет, то мозг может посчитать, что задачу можно не делать еще оочень долго. Никогда.
Должно быть четкое понимание того, зачем нужна эта история.
Пример описания, одной из историй можно увидеть ниже:
На доске, для истории о чтении книг, я попробовал поле с типом "формула". Функционал формул минималистичен, но достаточен. Процедуры и функции хорошо задокументированы и, как мне кажется, даже если у вас нет опыта программирования, при должном желании, вам не составит труда в них разобраться. К примеру я сделал формулу, которая выводит прогресс чтения книги:
Вид вывода формулы на странице
В данном коде prop - берет значение поля, format - кастует любой тип данных в строку, slice - обрезает, оставляя только первые 5 символов и concat - конкатенирует/склеивает.
Так это выглядит:
Доска после добавления формуы
Мне очень нравятся практики, которые Максим Дорофеев предлагает в своих книгах "Путь джедая" и "Джедайские техники". Одна из таких практик - писать первое действие, которое надо выполнить. Так проще обезьянке сиюминутного удовольствия. Во многих планировщиках это сделать можно только костылями.
В Notion можно добавить любое количество полей, и я начал это использовать в описаниях задач:
Пример использования правила "писать первое действие"
Когда я реализовал всё вышеописанное, я испугался. "Как следить за всеми этими историями?" Всё разложено по полочкам, но каждый раз лазать по полочкам не круто, не удобно, не эффективно. В тот раз я добавил графу "следующее действие" к истории. Хочу напомнить, что добавив поле на одну страницу, оно появляется на аналогичных. В данное поле я продублировал некоторые даты из задач внутри истории.
На следующее утро я был приятно удивлен. Уведомления на многие задачи стояли на 5 утра, и проснувшись я увидел небольшой инбокс на сегодня. Всё, что прилетело в этот инбокс, я легко перенес в agile-board для задач на сегодня, который заранее создал под галереей с историями.
Продуктивный день начался.
Также у меня наконец появилась страница с красиво оформленными блокнотам на различные темы.
Notion стал "всё в одном". Он стал тем, что я относительно давно искал.
Вид записной книжки
Выводы
По моему мнению, Notion очень удобный, гибкий, настраиваемый под любые "хотелки" инструмент, который может быть полезен каждому. Итеративно, он становится идеальным именно для вас. Облако очень быстро синхронизирует все ваши таблицы с телефоном. Также вы можете использовать его для командной работы, аналогично Jira/Confluence, но я данный функционал не пробовал.
Это однозначно тот инструмент, который я не мог не посоветовать, особенно учитывая то, что бесплатной версии может быть более чем достаточно.
Читайте также: