Начните искать ключевые слова
Используйте Serpstat, чтобы находить лучшие ключи
Под капотом: как построены процессы
в отделе разработки
в отделе разработки
Возможно, начинающие команды смогут перенять опыт и конкретные флоу для себя, тем самым сэкономив уйму времени, избегая множества ошибок, с которыми мы столкнулись во время роста.
- Интро
- Project?→ Product?→ CEO?
- Откуда появляются идеи?
- Валидация идеи, проектирование, продумывание деталей, дизайн
- Подготовка задач и планирование спринта
- Разработка, тестирование, релиз
- Баги, проблемы, обращения пользователей
- Взаимодействие с другими отделами: (marketing, sales & customer success, support)
- Текучка, митинги
- Контроль спринта, сбор статистики
- Кнуты и пряники
- Послевкусие
Интро
В Serpstat была принята длительность спринта/итерации — 10 рабочих дней = 80 рабочих часов на одного человека. Хотя в многих источниках вы можете встретить разные значения: от недели до месяца.
Начало спринта — вторник, конец спринта — понедельник. Смещение было выбрано для того, чтобы не заканчивать спринт в пятницу и не выливать релиз перед выходными, так как в случае проблем на продакшене их пришлось бы фиксить в субботу/воскресенье.
В моей команде четыре разработчика, два тестировщика. Еще есть два дизайнера, нагрузку и задачи которых мы делим между другими командами.
Цель спринта — выпуск минимум одной видимой фичи для пользователей + фикс багов и оптимизация работы сервиса.
Трудности, с которыми команда сталкивается на протяжении спринта: баги, обращения от пользователей, болезнь членов команды.
Project?→ Product?→ CEO?
Мы не классические проджекты или продакты, о которых пишут в статьях и книгах. Быть менеджером в Serpstat — это отличная возможность пройти через огонь, воду и медные трубы. У нас есть налаженные процессы, но это не значит, что они не меняются. Это гибкая, дышащая система, многоклеточный организм, который реагирует на множество факторов, благодаря внутренней академии, созданной на платформе Academy ocean. В ней содержится перечень правил и флоу, которые мы соблюдаем для достижения максимальной эффективности, скорости и качества. Каждое правило написано не кровью, но нервами, спорами, потерями и неожиданными приобретениями.
Каждый project/product manager в Serpstat — это кухонный комбайн, универсальный солдат, швейцарский нож, который управляет не просто командой разработчиков или отдельным модулем. Он ищет идеи или генерирует их сам, валидирует при помощи опросов и аналитики. Описывает в первом приближении, обсуждает с командой, взаимодействует с UX-дизайнером, чтобы получить максимально удобный и простой макет.
Достаточно много времени уходит на продумывание идеи, а также множества мелочей, которые связаны с остальной частью продукта. Соответственно и с другими командами. У нас нет отдельных technical writers, поэтому написание ТЗ и документации тоже лежит полностью на плечах менеджера. И, кроме этого всего, мониторинг самого спринта, встречи с разработчиками, поддержание боевого духа в команде, отчетность и еще 100500 пунктов из работы менеджера.
5 PM-ов и PM Teamlead. В каждой команде от 5 до 10 человек.
Каждый PM отвечает за свои модули в Serpstat. Основной задачей является полный цикл разработки, включая такие вопросы, как хранение данных, задачи на продвижение для отдела маркетинга, документация для отделов Customer support, демо и презентации отделу Sales & Customer success.
Зона моей ответственности — модуль Rank tracker (мониторинг позиций), который позволяет отслеживать позиции сайта в выдаче по ключевым запросам.
Дополнительно, на поддержке, находится функционал для снятия топов по ключевым запросам через API.
Откуда появляются идеи?
Прямой запрос: «Добавить сортировку по частотности в отчете Ключевые фразы мониторинга позиций».
Косвенный запрос: «Неудобно пользоваться отчетом из-за длинного названия региона, так как колонка занимает много места».
Если в прямом запросе чаще всего понятно, что надо сделать сразу, то в косвенном мы советуемся с нашим UX-дизайнером и ищем приемлемое решение проблемы пользователя.
Источники таких отзывов:
По каждой фиче заполняются следующие параметры:
Следующий этап — занесение в бэклог продукта, хранится он в Google таблицах с минимальной детализацией и фильтрами.
Валидация идеи, проектирование, продумывание деталей, дизайн
Каждые две−три недели, в зависимости от скорости сбора таких запросов, на синхронизации PM-ов проводится оценка жизнеспособности идеи и простановка приоритетов в рамках продукта. Делается она не на глаз или по субъективному мнению одного человека, а всей командой PM-ов, включая тимлида.
Ранее, основным показателем того, что ту или иную фичу необходимо реализовать, было только количество запросов из разных источников.
В работу рассматривались все, по которым было больше трех запросов от платных пользователей. Но опасность заключалась в том, что можно было взяться за большую доработку и зависнуть на несколько спринтов без видимого результата, при этом другие, более мелкие фичи простаивали, хотя могли сильно упростить жизнь нашим клиентам уже сейчас.
Несколько месяцев назад была взята за основу для оценивания система RICE, и наш тимлид адаптировал ее под реалии продукта, чтобы оценивать запросы наших пользователей. Расшифровка параметров может отличаться от источника к источнику, но мы нашли золотую середину для себя.
Суть системы — мы оцениваем фичу по 4 параметрам:
4 — пользователи трех и более модулей, но не всех;
3 — пользователи двух модулей;
2 — все пользователи одного модуля;
1 — отдельные пользователи одного модуля.
Проставляется lead product manager — при добавлении фичи в бэклог.
4 — 8−9;
3 — 6−7;
2 — 4−5;
1 — 3.
Проставляется и обновляется lead product manager при анализе вкладки, куда заносится весь фидбек от пользователей.
4 — 3;
3 — 2;
2 — 1;
1 — <1.
Каждый PM оценивает со своей командой приблизительное количество спринтов, необходимых для реализации. Иногда для того, чтобы оценить время на реализацию, необходимо поставить предварительный ресерч, чтобы более точно определить возможность. Часто в несложных фичах PM сам может оценить время. Сюда входят все этапы от проектирования и дизайна до финального тестирования и выливки на продакшн сервер.
Источниками требований могут быть детали из анализа конкурентов, непосредственные запросы от пользователей, которые часто можно объединить в общий функционал, результаты интервью. Менеджер модуля заранее расписывает будущее видение функционала и ставит задачу на дизайнера.
Во время работы над задачей первичное видение обрастает деталями, которые призваны улучшить пользовательское восприятие: подсказки, валидация полей и вводимых данных, алерты с важной информацией и т.д.
Далее PM проводит тест макета на поведенческие кейсы. Часто, добавление даже одного поля или кнопки влечет за собой много нюансов и состояний, которые необходимо отобразить в дизайне.
Чаще всего проверяются моменты:
Подготовка задач и планирование спринта
Story — контейнер для задач, который в сборе считается минимально рабочим набором функционала, видимым пользователю.
Duty — контейнер для задач решающих вопросы оптимизации, проблем, связанным с техническим долгом, а также прочие невидимые для пользователя функции.
Кроме задач на разработку в часах дополнительно создается задача на тестирование данного функционала. Одна задача не должна превышать 7 часов, чтобы она могла быть завершена в течение дня, так как час времени уйдет на митинги и другие нерабочие траты.
После того как все стори и дьюти разбиты на подзадачи, зная первоначальные условия спринта PM планирует сколько задач может быть взято в спринт, а на оставшееся время набирает багов для фиксов — запланированных и незапланированных.
Если Story или Duty оказывается сильно большой по размеру, то PM пересматривает функционал и разделяет на несколько задач поменьше.
Разработка, тестирование, релиз
Код ревью — это процесс, который позволяет всем разработчикам перепроверять друг друга на соответствие общим правилам. С код ревью задача может вернуться на фикс или уйти дальше на тестирование.
Тестировщик проверяет функционал на соответствие описанию, проходит все положительные кейсы использования и тестирует самые распространенные негативные. С тестирования задача может вернуться на уточнение нового открывшегося кейса, который не был продуман, на фикс найденных багов или может быть переведена в статус «Готово».
Каждый последний четверг спринта, тимлид отдела разработки собирает все задачи, которые были переведены в статус «Готово». Они собираются в отдельную релизную ветку GitLab на сервере и тестируются повторно, чтобы убедиться, что не возникает проблем при работе всех вместе разработанных фич.
Четверг, пятница, понедельник выделяется на тестирование этих задач, а также багов, которые фиксятся в это время.
Во вторник наступает день релиза. Все задачи, которые были протестированы вместе, деплоятся на продакшн сервер, где и становятся доступными нашим пользователям.
Баги, проблемы, обращения пользователей
Все Blocker и Critical баги идут в работу в текущий спринт, остальная разработка приостанавливается. Баги ниже по приоритету планируются в рамках спринтов и фиксятся после сборки релизной ветки (набор функционала который тестируется отдельно и станет доступным пользователям после релиза).
Если в спринт запланированы баги ниже по приоритету, чем те, которые были обнаружены во время итерации, то они заменяются и вытесняются.
Если количество критичных багов превышает доступное время на их фикс, то они вытесняют из спринта фичи, по которым еще не начиналась разработка.
Количество багов превышает доступное время в рамках спринта, или существует несколько Critical и Blocker багов, или модуль не работает? В команду привлекаются разработчики из других команд. Любая текучка и митинги уходят на второй план. Обязательным митингом остается только Daily meeting, для синхронизации ресурсов. В команде или отделе объявляется военное положение, которое контролирует СTO. При помощи специального канала в телеграмме PM держит CEO и руководителей других отделов в курсе событий и обновляет статусы.
Взаимодействие с другими отделами: (marketing, sales & customer success, support)
С отделом маркетинга отдел разработки связывают несколько основных задач:
Отделу Customer success информация дает возможность записать вебинар или обучить наших пользователей кейсам, которые можно решить при помощи появившегося функционала.
Support через обновление документации получает четкое представление о том, какой функционал есть на данный момент и как он должен работать. В таком случае любое девиантное поведение может расцениваться как баг и при помощи саппорта будет отправлено в отдел проверки качества QA. Где по нему будет заведен баг.
Текучка, митинги
Засинхронизировать всех членов команды касательно текущего статуса задач и их плана на день.
Дейли проводится дважды. Вначале менеджер принимается участие на внутрикомандном дейли. После этого он приходит на дейли межкомандное, где принимают участие тимлиды и все PM-ы.
Формат дейли подразумевает собой ответы на три главные вопроса:
Утвердить свое видение спринта у руководителей, а также получить комментарии, правки или рекомендации по плану на спринт.
Все задачи, планируемые на спринт, проходят дополнительную проверку/утверждение у VP of Product (на данный момент это касается модулей Поисковая аналитика, Мониторинг позиций и Аудит)
Эта встреча обязательная и назначается не позже трех дней до начала спринта.
Сделано это с тем расчетом, что должно остаться время на внесение правок, а также ознакомление команды с задачами и их оценку.
Технически сложные и важные задачи, которые могут затронуть работу других модулей или связанные с переносом данных, а также временной остановкой работы модуля — проходят консультацию и утверждение у CTO. Задачи остальных команд и менее критичные проходят подтверждение у Lead product manager.
Оценить все задачи по показателю сложности в SP (Story points) и засинхронизироваться в том, что планируется делать в следующем спринте.
Когда все члены команд уже ознакомились с задачами на оценку, они собираются в отдельный список и импортируются в сервис planitpoker. Он простой, удобный, гибко настраиваемый. Полностью покрывает все наши потребности на данном этапе.
Story и Duty уже часто распределены между разработчиками, так как есть первоначальное представление о сложности задачи и, соответственно, кто ее будет делать. Если такого понимания нет, то они висят на PMе до конца покера.
Шкала сложности измеряется в Story Points по шкале: 1,2,3,5 или ?, где
1sp — небольшие изменения стилей.
2sp — изменения в формате данных, переделка компонентов.
3sp — написание процедуры с 0 или создание нового компонента.
5sp — создание отдельных страниц на фронте, написание нескольких процедура или их существенная переделка.
? — по описанию есть вопросы — не могу оценить.
Оценка задачи состоит из нескольких процессов:
Дополнительно проверяется шаблон чеклиста, что необходимо будет сделать по задаче, например:
Распределить нагрузку между дизайнерами и понять какие задачи запланированы на следующие спринты в каждой из команд, так как функционал чаще всего пересекается — это позволяет не делать двойную работу.
Весной 2019 года был добавлен еще один тип митинга, на котором происходит синхронизация PM-ов, распределение задач между дизайнерами, так как они являются общим ресурсом, а также оценка фич, описанная в разделе.
К моменту данного митинга дизайнер уже должен ознакомиться с задачами и оценить их в часах, с тем, чтобы эффективно прошло распределение их по спринтам.
В связи с переходом веб части сервиса на React, у нас появилась возможность выносить похожий функционал в отдельные компоненты и переиспользовать их в других командах с минимальными трудо- и времязатратами (примеры компонентов: календарь, фильтр, пагинация).
Выяснить отношение члена команды к другим, оценить его эмоциональное и моральное состояние, выявить недовольство в рабочих моментах.
Регулярно, не реже раза в месяц с каждым членом команды проводится 1-to-1 митинг, который позволяет узнать состояние человека на данный момент (только если он готов говорить о проблемах).
Такая встреча обязательно проводится за рамками офиса, для того, чтобы можно было максимально расслабиться. Провести может не только PM, но и любой тимлид или топ менеджер.
Сделано это для того, чтобы член команды мог говорить с каждым о том, что ему важно. Вряд ли разработчик захочет рассказать про проблемы в коде PM-у и при этом охотно поделится этим с лидом. Так как ныть нужно не просто в пустоту, а тому, кто в состоянии решить вопрос или повлиять на ситуацию.
Формат встречи не регламентирован, хотя есть рекомендуемые темы, которые необходимо обсудить.
1-to-1 — это не встреча для обсуждения задач или проекта. На этом митинге можно поделиться своими переживаниями, задать те вопросы, которые интересуют. Можно обсудить отпуск, досуг и вообще все то, что волнует на данный момент. Если того требует ситуация можно обсудить и конкретный рабочий момент. Запись не ведется.
Можно делать заметки, чтобы решить конкретные вопросы или поставить задачи.
Оценить, что было исправлено с прошлого спринта. Проверить успеваемость команды, и дать рекомендации. Разобраться с причинами провала спринта.
Ретроспектива спринта происходит на следующий день после релиза спринта.
Митинг разбивается на три основные части:
Провалы целей спринта
Менеджер подготавливает список задач, которые по тем или иным причинам не были завершены в рамках спринта. Рассматривается каждая перенесенная задача. В такие моменты лог работы над задачей, а также комментарии помогают определить на каком этапе произошло подвисание. У каждого участника команды есть возможность высказать свою точку зрения на причины провала задачи. Эти комментарии записываются напротив каждой задачи и по ним менеджер обязан предпринять необходимые действия для предотвращения повторения ситуации.
Разбор KPI команды
В Serpstat у каждого разработчика, так же как и у команды, есть система KPI. По результатам системы выбирается лучший разработчик месяца и лучшая команда квартала. Во время спринта у каждого члена команды открыт доступ к результатам, чтобы отслеживать свои позиции и обращать внимание на просадки в показателях. На ретроспективе менеджер проходит по показателям каждого члена команды и, если требуется, дает рекомендации на что стоит обратить внимание.
Личные отзывы
На протяжении всего спринта у команды есть доступ к форме ретроспективы, где каждый может анонимно оставить комментарий по одной из следующих категорий:
Контроль спринта, сбор статистики
Это достаточно гибкая платформа, которую можно дополнительно настроить под себя при помощи большого количества плагинов, как платных, так и бесплатных.
В редмайне мы храним заведенные баги и расписанные задачи на несколько спринтов.
Выводится минимум самой полезной информации.
Синхронизация настраивается через Redmine c привязкой телеграм канала.
В итоге, при изменении параметров задачи, например: исполнитель, статус, номер спринта — приходит короткое сообщение в Телеграм.
Оно содержит название задачи, ссылку на нее, на ком назначена и в каком статусе находится.
Показатель позволяет соревноваться как разным командам, так и PM-ам. Также учитывается в системе стимулирования PM-ов и влияет непосредственно на бонусы, получаемые в конце месяца.
Метрика была введена для того, чтобы приучить команды выполнять задачи в срок, а соответственно увеличивать срок планирования выпуска важных фич.
У каждого модуля свои метрики, которые отображаются как в абсолютных, так и относительных показателях. Информация сбрасывается в общий канал компании для максимального информирования всех отделов об использовании модулей и состоянии дел.
Кроме этого тимлид PM-ов делится информацией об общей средней успеваемости всех команд и графиком, на котором можно увидеть динамику.
Кнуты и пряники
В Serpstat настроена гибкая система, по которой менеджер работает над своими показателями, влияющими не только на бонус в короткой перспективе, но и на рост по карьерной лестнице в долгую.
Первая метрика — MRR компании.
Вторая метрика — оценка от команды и руководителей отделов.
Третья метрика — стабильность работы модуля
Четвертая метрика — соблюдение целей, поставленных на квартал.
В личном KPI учитывается много факторов:
Послевкусие
Важные моменты и болючие шишки, которые мы набили за это время:
Serpstat — набор инструментов для поискового маркетинга!
Находите ключевые фразы и площадки для обратных ссылок, анализируйте SEO-стратегии конкурентов, ежедневно отслеживайте позиции в выдаче, исправляйте SEO-ошибки и управляйте SEO-командами.
Набор инструментов для экономии времени на выполнение SEO-задач.
Рекомендуемые статьи
Кейсы, лайфхаки, исследования и полезные статьи
Не успеваешь следить за новостями? Не беда! Наш любимый редактор подберет материалы, которые точно помогут в работе. Только полезные статьи, реальные кейсы и новости Serpstat раз в неделю. Присоединяйся к уютному комьюнити :)
Нажимая кнопку, ты соглашаешься с нашей политикой конфиденциальности.