Большинство программных проектов строятся вокруг одного из двух вопросов: сколько времени команды мы используем и построили ли мы всё по списку? Оба вопроса разумны. Ни один не говорит, получил ли бизнес то, что ему было нужно.
Работа на результат начинается с третьего вопроса: какой результат должна дать эта работа и как мы поймём, что она его дала? В этой статье о том, чем это отличается на практике, как выбрать измеримый результат и когда эта модель подходит.
Три способа организовать работу
Модели полезно сравнивать как способы работы, а не как коммерческие договорённости.
- Время и материалы (time and materials). Команда идёт по бэклогу, а клиент корректирует курс неделя за неделей. Это гибко и подходит для работы, объём которой никто не может знать заранее. Слабость в том, что прогресс обычно описывают как активность: закрытые задачи, выпущенные функции, завершённые спринты.
- Фиксированный объём. Объём согласуют заранее и сдают к сроку. Это подходит для хорошо понятной работы со стабильными требованиями. Слабость в том, что всё, что команда узнаёт по ходу проекта, превращается в запрос на изменение, поэтому команду подталкивают сдать исходный список, даже когда уже ясно, что часть его не поможет.
- Работа на результат. Заранее согласуют результат и способ его измерения, а объём выбирают и пересматривают так, чтобы сдвигать этот показатель. Это подходит для работы, где цель ясна, а путь к ней неясен.
Эти модели не исключают друг друга. Проект может идти по времени и материалам и при этом планироваться и отчитываться по результату. Разница в том, за что отвечает команда и на что все смотрят, решая, что делать дальше.
Выберите измеримый результат
Результат означает изменение в мире, а не построенную вещь. «Запустить сценарий самостоятельного подключения» описывает то, что будет построено. «Новые клиенты начинают пользоваться продуктом без звонка от поддержки» описывает результат. Сценарий подключения лишь один из способов его достичь.
Хороший результат для этой модели обладает несколькими свойствами:
- Он важен для бизнеса в его собственных терминах. Человеку вне инженерной команды было бы не всё равно, если бы он сдвинулся.
- Его можно измерить данными, которые у вас есть или которые можно собрать. Если цифру невозможно получить, результатом невозможно управлять.
- Команда может влиять на него напрямую. «Выручка растёт» слишком далеко от работы: на выручку влияет слишком многое другое. «Пользователи пробного периода доходят до первого отчёта» достаточно близко, чтобы этим управлять.
- У него есть исходный уровень и срок. Зафиксируйте, где находится показатель до начала работы, и договоритесь, когда будете его оценивать.
Запишите его в одном или двух простых предложениях: показатель, источник данных и как часто его будут снимать. Если такая формулировка занимает страницу, результат ещё недостаточно ясен.
Опережающие и запаздывающие показатели
Самый важный результат часто проявляется медленно. Удержание, продления и время процессов могут меняться месяцами, и к тому моменту команда успевает принять много решений без обратной связи. Такой показатель называют запаздывающим.
Опережающий показатель меняется раньше и предсказывает запаздывающий. Если цель в лучшем удержании, опережающим показателем может быть доля новых аккаунтов, которые завершают настройку в первую неделю, или частота использования ключевой функции. Команда видит их изменение в течение нескольких дней после релиза.
Используйте оба:
- По запаздывающему показателю оценивают результат.
- Один или два опережающих показателя направляют решения от недели к неделе.
- Время от времени проверяйте, что опережающие показатели всё ещё предсказывают запаздывающий. Если доля завершённых настроек растёт, а удержание нет, команда оптимизирует не то.
Остерегайтесь показателей, которые легко накрутить. Если опережающим показателем служит число регистраций, более заметная кнопка поднимет его, никому не помогая. Дополняйте каждый показатель противовесом, например регистрации активацией, чтобы улучшение одного за счёт другого сразу становилось видно.
Как меняется планирование
В плане, построенном на функциях, вопрос к каждому пункту один: есть ли он в списке. В плане, построенном на результате, вопрос в том, насколько напрямую пункт сдвигает показатель и насколько мы уверены, что сдвинет.
Это меняет несколько привычек:
- Работа упорядочена по ожидаемому эффекту, и самый прямой путь идёт первым. Пунктам, которые не связаны с результатом, нужна отдельная причина быть в плане, например безопасность или поддержка.
- Ставки называются ставками. У каждой значимой части работы есть короткая заметка: что, как мы ожидаем, она сделает с показателем и как мы это проверим.
- Сначала небольшие релизы. Чем раньше что-то попадает к пользователям, тем раньше показатели скажут, сработало ли это.
- Остановка считается нормальным итогом. Если подход не сдвигает показатель, план меняется. Это значит, что модель работает, а не даёт сбой.
Инженерное качество по-прежнему важно. Команда, которая гонится за цифрой, может поддаться соблазну срезать углы, поэтому обычные стандарты (тесты, ревью, мониторинг) не подлежат торгу.