В проекте agile-obsidian представлен шаблон для Obsidian, с помощью которого команды могут вести разработку по спринтовой схеме, близкой к Scrum.
Репозиторий содержит как сам шаблон, так и демонстрационный пример с двумя спринтами команды. Первый спринт содержит файлы с примерами синтаксических конструкций, которые можно использовать в комментариях по задаче. Второй спринт содержит автогенерированные с помощью нейронки данные для демонстрации отчетов. Канонический пример комментария за день находится в файле 2024-01-25-Галена Селезнева.
Шаблон прошел испытание временем в команде размером в 5-7 человек на протяжении года. Однако его нельзя назвать завершенным: есть планы по доработке функциональности, автоматизации действий и изменению структуры спринта.
Раньше оперативную деятельность команда вела в Trello с использованием расширения Plus for Trello
. Но осенью 2023 года произошло два события: Trello начал блокировать некоторые аккаунты, связанные с Россией, а плагин Plus for Trello
фактически перестал работать (Web SQL удален из Chrome, перевод на другую технологию оказался сложным, мейнтейнер передал проект новому владельцу, который в итоге стал "продавать" данные пользователей).
В качестве замены были рассмотрены все известные отечественные и open-source альтернативы. Но ни одна из них (на момент осени 2023 года) не могла заменить Plus for Trello по удобству и функционалу (наиболее близким был OpenProject, а по удобству — Yougile, но не по функционалу).
Почему Obsidian? Просто потому, что нужно было хотя бы временное решение, а также потому, что мы любим Obsidian, который предоставлял возможности для прототипирования более основательного решения. Но нет ничего более постоянного, чем временное. Вот так неожиданно Obsidian стал эрзац-Trello.
Основная цель: обеспечить инструментальную поддержку работы самоорганизующейся команды по вариации Scrum.
- Оперативное управление (видеть текущую "картину").
- Сбор данных для анализа спринта на ретроспективе.
- Организация доверительных отношений: прозрачность работы команды для членов команды и сторонних наблюдателей.
- Элемент GTD (Getting Things Done).
- Структура проекта должна позволять одновременный ввод данных разными членами команды с возможностью беспроблемной синхронизации через центральный git-репозиторий.
- Исполнитель на доске может изменять состояние задачи.
- Внесение потраченного времени за день (распределение по задачам и типу деятельности).
- Внесение в долг неотработанного времени и его закрытие отработкой.
- Получение текущего состояния команды одним взглядом:
- Этап, на котором находится задача.
- Кто какой задачей занимается.
- Прогресс по задаче (чеклист этапов, сравнение планового времени с фактически потраченным).
- Сбор аналитических данных:
- График с распределением потраченного времени по типу деятельности.
- Точность изначальной оценки.
- Количественные данные спринта:
- Размер спринта в человеко-часах.
- Количество #hotfix, #внепланово.
- База знаний по задачам команды, наполняющаяся каждый день:
- Сквозная история комментариев к задаче по всем спринтам.
- Ненавязчивый контроль рабочего времени:
- Прозрачность гибкого графика сотрудника и отработок.
- Критически важная характеристика — легкий способ занесения потраченного времени: система горячих клавиш, кнопок быстрого доступа, работа с данными без ограничений UI.
- Push/pull данных из центрального git-репозитория.
- Нет нотификаций (упомянуть кого-то через @ и получить список действий, на которые отсутствует реакция).
- Много ограничений из-за синхронизации данных на основе файлов и git.
- UIX не всегда столь же удобный и понятный.
- Ограниченное разграничение прав: либо полный доступ, либо почти никакой.
- Оставить классический комментарий к карточке сложно.
- Возможны мердж-конфликты, но при должной сноровке их можно избегать, и они будут редкими.
- Локальные данные — ваши данные навсегда остаются вашими.
- UIX текстового редактора ускоряет ввод данных опытным пользователем.
- Плюсы git: полный доступ к истории.
- Легкость кастомизации пользовательскими функциями.
На каждый спринт создается отдельный каталог. Основные артефакты каталога: файлы задач, файл доски, файлы ежедневных записей. Задачи в спринте делятся на два вида:
- основные задачи спринта, которые приходят из бэклога,
- предопределенные и out-of-flow задачи под ежеспринтовые ритуалы и сопутствующую деятельность.
Полный бэклог команды находится во внешнем сервисе, для удобного хранения бэклога в текущем проекте требуется доработка шаблона. Область действия шаблона в текущем состоянии: спринт спланирован во внешнем сервисе, в бэклог спринта заносятся уже отобранные и оцененные задачи.
- Установить Obsidian.
- Клонировать git-репозиторий с agile-obsidian проектом на локальную машину.
- Открыть рабочий каталог клонированного git-репозитория как проект в Obsidian.
- Готово. При открытии Obsidian установятся необходимые расширения автоматически. Проект полностью готов к работе.
Завершение всех редактирований должно сопровождаться отправкой действий на сервер. Проект использует встроенное git-расширение для Obsidian, скрывая работу с git.
Для отправки изменений на сервер: CTRL + P
-> Obsidian Git: Create backup
(пункт закреплен в списке команд). Автоматический бэкап специально выключен, однако коммиты создаются автоматически.
Затягивание изменений с сервера выполняется автоматически на многие действия. Для ручного обновления: CTRL + P
-> ObsidianGit: Pull
.
Изменения записей за день практически никогда не приводят к мердж-конфликтам, как и изменения в файлах задач. Вероятность мердж-конфликта выше при работе с досками, однако нивелируется редкостью событий правки, а также если каждую правку сопровождать git pull & push.
- Поменять текущий спринт в globalprops.
- Скопировать каталог предыдущего спринта в папку с именем нового спринта.
- Очистить папку комментариев.
- Удалить ненужные задачи:
- Удалить файлы из каталога tasks.
- Удалить ссылки с board.md.
- Поменять умолчательные директории для создания заметок по шаблонам учета времени и задач спринта (4 места):
Settings -> Templater -> Секция Folder Templates
Daily Notes -> New notes location
- В настройке
board
Kanban-доски сменить NOTE FOLDER на актуальный: board.md -> нажать на кнопкуOpen board settings
и найти NOTE FOLDER. - В настройке
time_debt
Kanban-доски сменить NOTE FOLDER на актуальный: board.md -> нажать на кнопкуOpen board settings
и найти NOTE FOLDER.
- Предыдущий спринт добавить в
excluded files
в разделе настроекSettings -> Files and links
. - В каждой задаче добавить тег актуального спринта во frontmatter.
- В каждой задаче (файле в каталоге
/tasks
) актуализировать ссылку наprevious
во frontmatter файла. - Проверить и актуализировать ссылки из доски Kanban — ссылки должны вести на карточки из нового спринта:
- для доски
board
, - для доски
time_debt
.
- для доски
- Актуализировать свойство
debt
для карточекdebts
(должен остаться только актуальный долг на текущий спринт). - Удалить файлы из
debts
, на которые нет ссылок (их не должно быть). - Актуализировать
Estimate
для каждой задачи. - Синхронизировать актуальную папку _predefined с _templates tasks/_predefined:
- Возможно, появились новые _predefined (хорошо бы удалить текущую папку, скопировать из шаблонов и применить task-template).
- Очистить в
feedback.md
колонкуРазобрано
.
- На тулбаре нажать кнопку
Open today's daily note
(кнопку можно нажимать только один раз в день, в противном случае будет попытка повторного заведения файла). - Выбрать из списка себя (если нет нужного исполнителя, необходимо выполнить действия "Зарегистрировать нового исполнителя").
- Внести проработанное за день время отдельными записями (см. "Справка" в файле).
- Добавить в соответствующие списки нового исполнителя по аналогии в файлы шаблонов Шаблон файла ежедневного учета времени и Шаблон долга рабочего времени.
Для TODO по agile-obsidian см. board