Назад

Разработка приложения: взгляд из-за кулис

Процесс разработки — нечто большее, чем «давай просто накодим что-нибудь и посмотрим, что будет». Забей на тех, кто говорит иначе.

MVP или полная продуктовая версия — это не только про код. Это больше про людей и … кучу задач, помимо кода, которые нужно выполнить. Разработка приложения — это сложно и долго. Предлагаю копнуть глубже и посмотреть на процессы изнутри. 

Роли и этапы проекта

Сперва выясним, как выглядит стандартная проектная команда. Обычно за всем этим стоят, как минимум, CEO, менеджер проекта и тимлид.

Чтобы закрывать задачи и избегать конфликтов, команда делит зоны ответственности.

Кто и за что отвечает:

  • CEO — согласовать первоначальные договоренности, определить бизнес-цели, построить долгосрочные партнерские отношения с клиентом.
  • Менеджер проекта — организовать команду(спланировать спринты, провести дейли митинги, ретроспективы = и т. д.), управлять скоупом проекта, приоритезировать работу, информировать заказчика о прогрессе.
  • Тимлид — управлять командой разработчиков, делегировать задачи, код-ревью.

В процессе создания продукта команда практически всегда проходит через пляски с бубном следующие этапы:

Рассмотрим каждый подробнее.

Пресейл

Любой проект начинается с пресейла. На этапе пресейла ни CEO, ни менеджер проекта, ни тимлид не имеют полного понимания будущего проекта. Понимания нет, но нужно как-то оценить фронт работ, продать оценку и стартовать.

Пресейл кажется очевидным. Однако уже здесь цели команды расходятся

Чего ждет команда от пресейла?

CEO Тимлид Менеджер проекта
Продать и запустить проект. Чем меньше оценка, тем легче продать. Не тратить время на “потенциальные” проекты. Убедиться, что я и клиент  одинаково понимаем бизнес-цели и приоритеты.
Не отпугнуть клиента большой оценкой. Тем не менее, она должна быть точной и реалистичной. Получить готовый к старту проект. Выделить время на разбор деталей и оценку, чтобы успешно продать проект, но без ущерба текущим.

Кто несет ответственность за пресейл?

СEO. Менеджер и тимлид выступят, скорее, как ограничение по важным для них вопросам — все остальное СEO закроет сам.

Старт

Оценка продана. Стартуем!

Чего ждет команда от старта?

CEO Тимлид Менеджер проекта
Занять свободных разработчиков. Собрать команду, с которой будет  максимально комфортно работать. Нереалистично в 99% случаев 🙁 Получить команду, которая не подведёт.
Добиться доверия клиента. Для этого буду постоянно апдейтить о прогрессе. Подстраховаться. Согласовать с клиентом бэклог проекта и реальные дедлайны.
“Разделить” время тимлида на два проекта. Eсли возможно. Потому что тимлидский ресурс — самый ценный. Заложить побольше времени на проработку проектной архитектуры. Избежать новых пресейлов и других ‘стартовых’ проектов.
Попробовать новые технологии, чтобы команда прокачивала скиллы и не скучала. Поделить задачи. Сложные — миддлам, попроще — джунам. Не пробовать новые технологии. Большой риск не уложиться в дедлайны.

Кто отвечает за старт?

Менеджер. На старте решает тот, кто отвечает за выполнение изначальных договоренностей и установление новых по ходу работ.

Важно! Перед тем, как CEO переобуется в наблюдателя пойдет искать новые проекты, необходимо убедиться, что менеджер взял на себя ответственность за проект.

Разработку запустили. Ответственность передали. Едем дальше.

Активная фаза

Активная фаза — это про Тимлида и PM’а. CEO уже давно не в авангарде, но, как всегда, близко: D

Глубоко копнули. Надо глубже!

Чего хочет команда от активной фазы?

CEO Тимлид Менеджер проекта
Уложиться в сроки и стабильно деливерить прогресс. Избежать новых требований. Новые требования = потенциальные изменения архитектуры/команды = боль. Знать, что команда уделяет достаточно времени проектным задачам.
Знать, что команда уделяет достаточно времени проектным задачам. Выделять достаточное количество времени на багфикс. Поддерживать уровень клиентского доверия с помощью апдейтов и демо.

Кто отвечает за активную фазу?

Тимлид. Потому что в активной фазе у руля стоит тот, кто знает техническую часть и бизнес-логику проекта от и до. СEO и менеджер мониторят прогресс и помогают команде поддерживать стабильный уровень продуктивности.

Кризис

Для команды активная фаза самая безопасная. Правда в том, что разработка — это не про скачущих по облакам единорогов.

Проектная ж*па тоже случается

Кризис может и не случиться. Но если приходит, то всегда неожиданно.

Допустим, все-таки, пришел. На этом этапе команда хочет сделать все возможное, чтобы минимизировать последствия. Как именно?

CEO Тимлид Менеджер проекта
Возьмусь разруливать ключевые проектные решения. Так, я защищу команду и не потеряю клиента. Сфокусируюсь на проекте, который находится в кризисе (если до этого работал параллельно на двух проектах). Подниму прозрачность до небес. Буду апдейтить клиента по несколько раз в день, потому что “Чувак, мы реально делаем все, чтобы вылезти из проблем”.
Буду Cуперменом. Решу проблемы и верну клиентское доверие. Получить список задач, раскиданный по приоритетам. Выкину неприоритетные таски из бэклога. Время ограничено, жопы горят — сделаем максимум.

Кто отвечает за “выйти из кризиса”?

Потерять репутацию — больно, поэтому на этапе кризиса CEO включается на 100%. Просто потому это чаще всего про изменение изначальных договоренностей.

Кризис не всегда касается разбора факапов со стороны команды. Иногда это про перераспределения бюджета, рабочих часов или бизнес-требований. Все эти вопросы касаются CEO.

Завершение

Кризис позади — ура! Команда вымоталась: кто-то успел заскучать от рутинных задач/отсутствия новых технологий. Кайф в том, что кризис позади и продукт близок к завершению.

Чего хочет команда на этапе, когда проект завершается?

CEO Тимлид Менеджер проекта
Дальше развивать проект. Потому что продукт крайне редко бывает “полностью готовым”. Качественно завершить проект. Bыделить время на “полировку”/devops Просто закончить нынешний проект.
Переключить тимлида на другой проект. Если не вредит запуску и саппорту нынешнего. Попробовать новые технологии, бизнес-задачи, архитектуры = Переключиться на новый проект, чтобы прокачать скиллы. Выделить достаточно времени на новый проект. Потому что конец текущего проекта = старт нового.

Кто отвечает за завершение проекта?

Менеджер. Потому что он проконтролирует работу на этапе приемки. CEO все так же где-то рядом, потому что развитие партнерских отношений превыше всего 🙂

Подытожим

Не берусь утверждать, что все вышеизложенное — абсолютная истина для всех и каждого. Статья больше про рабочие процессы в Purrweb.

Попробуем вычленить главное:

  • Разработка приложений – не про общие цели. И это нормально.
  • Разработка приложений – не про общие цели. Более того, все члены команды имеют разные микро-цели с самого начала.
  • У команды проекта разные микро-цели. ГЛОБАЛЬНАЯ ЦЕЛЬ одна — разработать продукт, который поможет клиенту достичь бизнес-целей и заставит пользователей сказать: «Кто же смог сделать так круто?»