Ещё один трекер "продуктивности"

Небольшое описание моего телеграм-бота для трекинга продуктивности.

Да, трекеров продуктивности сейчас много, но никогда не поздно сделать свой велосипед. Вот свой я уже создал несколько лет назад и немного расскажу о нём.

Как всё началось

Раньше фиксировал задачи по-разному, но хотелось видеть какой-то уровень "продуктивности" в моменте. Ничего тогда подходящего для себя не нашёл и решил попробовать реализовать своё приложение. Для себя сформулировал такие хотелки/требования:

  1. Список активностей, которые, как я считаю, влияют на некоторый мой показатель "продуктивность", ограничен и обновляется далеко не каждую неделю.
  2. Чисто психологически приятно кликать на галочки и закрывать так задачи (активности).
  3. Хочется хотя бы какой-то минимальной геймификации.
  4. Измерять продуктивность в числах, которые можно использовать для сравнения.
  5. Если в один день было много чего сделано, а во второй — недостаточно, то первый день должен как-то частично покрывать недостачу во втором.

Сначала сделал простое консольное приложение, чтобы потестить и понять, нужно ли оно мне вообще. Каждый день я там отмечал, что сделал полезного, и получал за это баллы. Выглядело это примерно так: сделал что-то — получил баллы, не сделал — ну и ладно.

И хочется отдельно прояснить смысл некоторых слов, которые я использую:

  • Активность/задача — просто задача, которую нужно сделать. Например, почитать столько-то страниц.
  • Продуктивность — это не совсем про какую-то токсичную продуктивность. Значение продуктивности для каждого может быть своим. Для меня это — поработать, погулять, сходить на тренировку и т.д.

Почему именно баллы?

Мне хотелось видеть не просто список дел, а какую-то числовую оценку — чтобы можно было сравнивать дни между собой.
В приложении поставил цель: в среднем за последние 7 дней набирать 100 баллов. Почему 100? Просто красивое число, легко считать и приятно видеть. И среднее за последние 7 дней решает проблему переработки в один день и недоработки в следующий. Но и за один день тоже показывается количество баллов. То есть локальная цель — набрать 100 баллов за один день, но не каждый день это получается, цель за неделю — набрать в среднем 100 баллов за последние 7 дней.

Как работает система

Каждый день я отмечаю активности, и за каждую начисляются баллы.
Например:

  • Прогулка на улице — 25 баллов.
  • Рабочий день — 50 баллов. Потому что работа — это, как ни крути, значимая часть жизни.

Баллы за каждую активность я определял, исходя из того, насколько часто это делаю и насколько это важно лично для меня. Если бы я, например, каждый день ходил пешком часами, то, наверное, за прогулку давал бы меньше баллов.

Как не обмануть систему

Если просто копить баллы, то можно в один день "переработать" и потом несколько дней ничего не делать. Чтобы этого не было, придумал правило:
Если в какой-то день набираешь больше 100 баллов, то только половина "лишних" баллов переносится на следующий день.

Например, если сегодня у меня 150 баллов, то 50 — это "избыток", и только 25 из них переходят на завтра.
Это мотивирует не делать слишком сверх нормы и в то же время не бездельничать потом. То есть поддерживать стабильный ритм.

Но это касается одного небольшого момента. Логика приложения разрабатывается для помощи и в какой-то мере основана на метриках. Как и любые другие метрики, эту можно легко обходить. В итоге контроль больше на стороне пользователя, и от этого особо не уйти. Так что конечный пользователь отвечает за конечный результат.

Как корректирую систему

Если вижу, что месяцами не дотягиваю до 100 баллов — значит, что-то не так: или задачи слишком сложные, или баллы занижены. Конечно, отдельные недели могут быть не такими продуктивными. Где-то болел, где-то был завал на работе и т.д., но это никак не может длиться долгое время.
А если стабильно набираю заметно больше 100 — возможно, где-то переоценил свои усилия и стоит пересмотреть оценки.

Почему Telegram-бот?

После того как попользовался консольным приложением, в голове уже сформировался примерный функционал и UX. Дальше нужно было понять, какой тип приложения разрабатывать. Так как хотелось, чтобы с телефона тоже можно было удобно отмечать задачи, то встал выбор между мобильным приложением, сайтом и телеграм-ботом. Первые два показались слишком избыточными, и к тому же с телеграм-ботом уже получаешь готовую платформу с UI и остаётся в основном реализовать логику на бэкенде.

Почему Anekrin?

Хотелось придумать какое-то нестандартное название. Учитывая, что у меня приложение для home automation называется Crazy Bear, то это норма. В итоге в голове крутилось Anakin Skywalker, и смотрел тогда сериал Arcane, и вот как-то оно у меня и соединилось.

Итоги

Если интересно, то вот ссылка на бота: https://t.me/anekrin_bot