Внедрение OKR часто превращается в бюрократию. Сотрудники воспринимают его как тот же Jira, только в профиль, а рыночный софт либо стоит дорого и тащит за собой тонны ненужного HR-функционала, либо требует сборки на коленке.
В Sape мы столкнулись со всеми этими проблемами и решили, что OKR-софт должен быть простым, интуитивно понятным и не ломать текущие процессы в таск-трекерах. В результате мы написали свой open-source-инструмент, который собирает метрики через OpenAPI и отлично дружит с n8n.
Меня зовут Станислав Решетнев, я руковожу отделом разработки в компании Sape по направлению Link Building. И сегодня я расскажу о том, как мы запустили процесс работы по OKR с помощью нашего приложения и интеграций с ним. На примере одной из целей прошлого квартала покажу, как инструмент помог нам отслеживать прогресс (и радоваться результатам).
Наша компания не имеет большого опыта в OKR: мы начали использовать этот фреймворк лишь в этом году. Как и многие другие, мы постепенно растем в понимании методологии и делаем наш процесс более зрелым.
На первом этапе мы провели серию общих встреч, где я рассказывал сотрудникам о том, как работает OKR. Я заметил один неочевидный подводный камень в понимании фреймворка – ложную уверенность, что это тот же классический проектный менеджмент, но в модной обертке. Это коварное заблуждение, потому что Project Management предполагает инициацию проекта, оформление плана, точки контроля, ведение проекта и т.д. А OKR про другое.
OKR – про такие цели, которые дают максимальный эффект для компании. Они выстроены в иерархии так, что нижестоящие толкают вышестоящие. Чтобы это стало очевидно для всех, нужно дерево OKR.
И в этом месте я понял: без софта, который визуализирует эту систему и ход ее выполнения, мы не получим нужного эффекта. Это нужно увидеть, чтобы каждый участник команды чувствовал свое влияние на общий результат. И я пошел искать такой софт, который решил бы наши задачи.
Почему нам не подошли рыночные разработки
Нужно было найти софт, который дополнял бы нашу работу в таск-трекерах и визуализировал данные. По сути, это приложение-надстройка, которое собирает метрики и показывает их в формате, принятом в OKR. Софт должен был быть простым, поэтому в приоритете был Open Source.
Все решения, которые я нашел, можно разделить на две категории:
Мощные комбайны со встроенными корпоративными инструментами: таск-трекером, HR-модулями и т.д. Например, «ТопФактор», Shtab, «Поток Цели». Они хороши, но мы не готовы переезжать со всеми процессами в новую проприетарную систему.
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 в нашей компании, мы внесли множество доработок. При этом я стараюсь сохранять его достаточно простым, чтобы оно оставалось универсальным. Буду рад фидбеку и участию в развитии, а также готов поделиться опытом использования.

