Внедрение OKR часто превращается в бюрократию. Сотрудники воспринимают его как тот же Jira, только в профиль, а рыночный софт либо стоит дорого и тащит за собой тонны ненужного HR-функционала, либо требует сборки на коленке.

В Sape мы столкнулись со всеми этими проблемами и решили, что OKR-софт должен быть простым, интуитивно понятным и не ломать текущие процессы в таск-трекерах. В результате мы написали свой open-source-инструмент, который собирает метрики через OpenAPI и отлично дружит с n8n.

Меня зовут Станислав Решетнев, я руковожу отделом разработки в компании Sape по направлению Link Building. И сегодня я расскажу о том, как мы запустили процесс работы по OKR с помощью нашего приложения и интеграций с ним. На примере одной из целей прошлого квартала покажу, как инструмент помог нам отслеживать прогресс (и радоваться результатам).

Наша компания не имеет большого опыта в OKR: мы начали использовать этот фреймворк лишь в этом году. Как и многие другие, мы постепенно растем в понимании методологии и делаем наш процесс более зрелым.

На первом этапе мы провели серию общих встреч, где я рассказывал сотрудникам о том, как работает OKR. Я заметил один неочевидный подводный камень в понимании фреймворка – ложную уверенность, что это тот же классический проектный менеджмент, но в модной обертке. Это коварное заблуждение, потому что Project Management предполагает инициацию проекта, оформление плана, точки контроля, ведение проекта и т.д. А OKR про другое.

OKR – про такие цели, которые дают максимальный эффект для компании. Они выстроены в иерархии так, что нижестоящие толкают вышестоящие. Чтобы это стало очевидно для всех, нужно дерево OKR.

И в этом месте я понял: без софта, который визуализирует эту систему и ход ее выполнения, мы не получим нужного эффекта. Это нужно увидеть, чтобы каждый участник команды чувствовал свое влияние на общий результат. И я пошел искать такой софт, который решил бы наши задачи.

Почему нам не подошли рыночные разработки

Нужно было найти софт, который дополнял бы нашу работу в таск-трекерах и визуализировал данные. По сути, это приложение-надстройка, которое собирает метрики и показывает их в формате, принятом в OKR. Софт должен был быть простым, поэтому в приоритете был Open Source.

Все решения, которые я нашел, можно разделить на две категории:

  1. Мощные комбайны со встроенными корпоративными инструментами: таск-трекером, HR-модулями и т.д. Например, «ТопФактор», Shtab, «Поток Цели». Они хороши, но мы не готовы переезжать со всеми процессами в новую проприетарную систему.

  2. Open-source-решения, которые требуют ручной сборки. Например, специальный шаблон дашборда в PowerBI. Но этот вариант показался сложным, да и выглядел не очень понятно.

Мы добавляем OKR к текущим процессам, поэтому нам хотелось, чтобы софт умел хранить цели и собирать метрики из наших баз, то есть был единым источником данных по OKR и правильно все визуализировал. Тогда при смене инфраструктуры он не устареет, потому что не берет на себя ничего лишнего. А автоматизацию вроде отправки метрик и уведомлений мы сделаем через корпоративный n8n (у нас развернут кластер). Так я дошел до того, что проще самому написать универсальный софт.

Наше OKR-приложение: обзор возможностей

Итак, представляю приложение, которое мы теперь активно используем в нашей компании, – Stanislavus OKR Tree. Выглядит оно вот так (данные на скриншотах вымышленные):

Это режим отображения целей и KR в виде иерархии.

Есть также отображение в виде дерева целей:

На вершине дерева – большая цель компании, которая может быть только одна. Цели и KR подсвечены цветом по их прогрессу:

  • черный – не инициализирована;

  • желтый – в процессе;

  • зеленый – достигнута.

У целей есть команды и менеджеры-владельцы, а также быстрый фильтр по ним:

Если кликнуть на KR, можно увидеть динамику изменения метрики и ее соответствие идеальному темпу:

А так выглядит иерархия целей в режиме редактирования:

Обо всех особенностях рассказывать не буду, но отмечу одну важную для нас функцию – возможность внешнего автообновления метрик. У приложения есть OpenAPI-спецификация, а пользователям можно выдать API-токены:

В редактировании KR можно получить curl-код для обновления метрики:

Код примерно такой:

curl -X PUT \
 -H 'Authorization: Bearer <API_TOKEN>' \
 -H 'Content-Type: application/json' \
 -d '{"currentValue": <VALUE>, "source": "api"}' \
 http://localhost:5000/api/keyresults/5449849d-0932-5650-ab6a-94beba8bda05

Это позволяет удобно встраивать отправку метрик, например, в n8n:

Как мы работаем с деревом OKR

Итак, подошло время для ежеспринтовой ретроспективы OKR. На этом примере давайте посмотрим, как мы работаем с деревом целей. Для начала обратим внимание на вершину дерева – большую цель компании. Оцениваем, насколько мы продвинулись в главном, сколько времени прошло с начала итерации и что успели сделать.

Видим, что движение хорошее: прошла примерно половина квартала, один из KR закрыт, а другой достигнут на ¾. Супер!

Дальше мы переходим к командам, которые владеют целями. Выбираем команду в фильтре и смотрим в первую очередь на уверенность в достижении KR:

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

После того как мы оценили уверенность в достижении KR, смотрим на динамику метрики и инициативы, которые к ней ведут. Это дает отличный обзор для всех участников без погружения в детали работы над конкретным проектом.

Инициативы, кстати, удобно писать в формате «делаем то-то для того-то». Результат должен напрямую влиять на цель. Например: «Интегрироваться с SEO-инструментами, чтобы распространить навык / MCP». А цель при этом – сделать MCP стабильным способом привлечения пользователей.

Вот так выглядит просмотр деталей об инициативе:

У инициативы важно как описание действий ("What" – что мы делаем), так и их влияние на результат ("Impact").

Дерево OKR наглядно и понятно для всех сотрудников. Они получают информацию о том, что мы делаем, ради чего, как продвинулись и к кому можно прийти, чтобы предложить свою идею в виде цели или инициативы.

Пример из практики: цель по процессу работы с А-клиентами

Приведу пример реальной цели, по которой мы работали в прошлом квартале. Команда “Team A” занимается устранением блокеров при привлечении А-клиентов. Отдел коммерции напрямую общается с клиентами с большим бюджетом, но им часто не хватает функционала биржи, чтобы начать работу. “Team A” помогает решить эту проблему. Но клиенты разные, бюджеты и приоритеты по блокерам тоже, поэтому мы решили выстроить отлаженный процесс под эту работу.

Цель описали так:

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

  • KR1.1: Процесс обработки блокеров клиентов (для новых и текущих клиентов) разработан, утвержден, задокументирован и исполняется

  • KR1.2: В течение первого месяца после внедрения зафиксировано не менее 3 кейсов применения процесса с соблюдением утвержденных SLA

Это не идеальный OKR, поскольку он жестко привязывает реализацию цели к конкретному проекту. KR тоже отражают, скорее, движение по плану проекта. Зато его легко отслеживать:

Здесь каждый этап мы зафиксировали с помощью значения между 0 и 1:

  • 0 – работа не начата;

  • 0.3 – процесс разработан;

  • 0.5 – процесс утвержден;

  • 0.7 – задокументирован;

  • 1 – начал исполняться (есть кейс применения).

К слову, так выглядит процесс обработки блокеров привлечения в трекере задач:

Улучшения приходят в Inbox, приоритизируются и идут дальше по этапам реализации.

Напоследок

Надеюсь, что мое приложение будет полезно для сообщества. Ценно то, что оно уже обкатано на нескольких итерациях OKR в нашей компании, мы внесли множество доработок. При этом я стараюсь сохранять его достаточно простым, чтобы оно оставалось универсальным. Буду рад фидбеку и участию в развитии, а также готов поделиться опытом использования.