dz

Процесс Завалишина - роли

Aug 23, 2017 10:26


Роли

Список типовых ролей проекта

Этот текст - часть микропроекта под кодовым названием “Процесс Завалишина”. В рамках этого микропроекта я пишу краткие описания элементов процесса разработки ПО так, как я себе его представляю. Тексты пишутся навскидку и из головы. Все тексты можно найти здесь: http://dz.livejournal.com/tag/ПроцессЗавалишина

В этот раз я перечислю роли, которые могут принимать участие в типовом проекте.

Надо чётко отделять роль от человека. Один человек может исполнять в проекте несколько ролей, и даже может участвовать в одном проекте в роли А, а в другом - в роли Б. Совершая действие на проекте надо чётко понимать, от имени какой роли оно совершается.
Список ролей
Менеджер проекта, PM

Создаёт и поддерживает план проекта, отвечает за его выполнение.



  • Получает от разработчиков, аналитиков, тестеров, devops и других подразделений их части планов проекта, сводит план, убеждается в его непротиворечивости.

  • Проводит регулярное (еженедельное) ревью плана с клиентом и проектной командой.

  • Корректирует план в соответствии с запросами на изменение.

  • Пишет еженедельный проектный отчёт: что сделано, что запланировано, какие проблемы.

  • Ведёт реестр рисков и эскалаций.

  • В случае появления проблем на проекте информирует клиента и проектную команду, и либо решает проблему в рамках бюджета, либо эскалирует проблему.

  • Отвечает за заполнение сотрудниками отчётов по spent time и попадание проекта в срок и бюджет.

  • По итогу проекта делает итоговую презентацию - успехи и lessons learned.

  • Принимает решения по премированию героев.

KPI - маржинальность проекта.

В целом здесь не рассматривается ситуация, когда на проекте требуется более одного менеджера. Я рекомендую бить такой проект на самостоятельные подпроекты. Тем не менее, у нас был случай, когда мы вели 15 (пятнадцать) параллельных проектов в рамках одного заказчика и одной целевой системы, и в этом случае потребовалось построить иерархию менеджеров проектов.
Аналитик

Отвечает за написание и поддержание в актуальном состоянии требований. Проводит интервью со стейкхолдерами, пишет требования, проводит ревью требований со стейкхолдерами, архитектором и ведущими разработчиками, участвует как ревьюер в проектировании верхнего уровня, устно или письменно поясняет сотрудникам сложные места в требованиях (и по ходу обновляет непонятные места, да-да), проводит ревью тест-планов, поясняет тестерам сложные места и может принимать участие в тестировании критических мест проекта.

Верифицирует ошибки, которые зарепортил заказчик, и помечает их как “это новое требование, а не ошибка”. :)

В целом является носителем эзотерических знаний о проекте и является главным коммуникатором между командой и клиентом в части сути проекта.

KPI - нулевой объём устной коммуникации на проекте типа “объясни мне, что ты тут написал”, степень удовлетворённости заказчика реализованным проектом.
Ведущий аналитик

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

Выявляет (вместе с аккаунтом и менеджером проекта) стейкхолдеров.

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

Может присутствовать в проекте частично, при проработке архитектуры в начале проекта и в режиме аудита архитектуры во время разработки. На большом проекте должен быть выделен на проект полностью. Отвечает за проектные документы верхнего уровня (HLD), согласование архитектуры с ландшафтом и техническими требованиями заказчика. Структурирует проект, распределяет задачи между ведущими разработчиками, помогает им в тяжёлых моментах.

KPI - соответствие системы нефункциональным (нагрузочным) требованиям, лёгкость расширения и развития системы, отсутствие проблем при интеграции (мне тоже смешно, да).
Ведущий разработчик, Тимлид

На малом проекте (нет выделенного архитектора) ведущий разработчик отвечает за все задачи по разработке.


  • Планирует работы, назначает разработчиков, проводит с ними ревью плана и получает от них коммитмент по реальности запланированных объёмов работ.

  • Принимает работы, выполняет ревью кода.

  • Производит слияния веток в репозитории, отвечает за то, что в главную ветку попадает только оттестированный и соответствующий требованиям код.

  • Принимает решения по технологиям, пишет проектные документы (HLD, LLD).

  • Обучает линейных сотрудников и помогает им в трудных местах.

  • По ночам пишет код. Шутка. Почти.
Разработчик

Собственно разрабатывает код проекта. Читает требования, разбирает сложные участки с аналитиком, принимает от лида или архитектора письменные или устные проектные решения, при необходимости даёт обратную связь по их разумности (ну и фигню вы тут придумали, парни), разрабатывает код компонент и юнит-тесты, прогоняет тесты, убеждается в соответствии реализованной функциональности требованиям. Принимает от тестировщиков и кого попало тикеты в баг-трекере, помечает их как “это не ошибка, так и должно быть”, исправляет ошибки, в случае сложных ошибок принимает участие в тестировании.

KPI - нулевое количество ошибок в коде.
Тестировщик

Планирует работы по тестированию.

Пишет тест-планы на основании требований, проводит ручное и автоматическое функциональное тестирование (нагрузочное тестирование, как правило, делает devops), формирует задачи в баг-трекере.

KPI - нулевое количество репортов об ошибках от клиента.
Ведущий тестировщик

Аналогично аналитикам, тестировщики могут быть сформированы в группы по подсистемам проекта или методам тестирования. Если тестировщиков более одного, должен быть назначен ведущий.
Системный администратор / сотрудник devops

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

Пишет руководство по развёртыванию и администрированию системы. Взаимодействует с соответствующими службами заказчика.

На этапе продажи и расширения системы отвечает за требования к составу и структуре аппаратных средств системы (sizing).

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

Часто обеспечивает нагрузочное тестирование системы и анализирует его результаты.

Дырявит отверстия в файрволлах и прокладывает VPN-ы, носит свитер и бороду, матерится тихо, но весомо.

Должен быть способен без программистов развернуть систему.

KPI - попадание в план по задачам разворачивания системы.
Продавец

Создаёт у покупателя ощущение, что неподписание контракта прямо здесь и сейчас может привести к катастрофе планетарного масштаба.

Выявляет основные бизнес-потребности клиента, проводит с производством (архитектор, ведущий аналитик) работу по очерчиванию силуэта системы, формирует скоуп проекта, вытрясает из производства вменяемую оценку стоимости работ по проекту и списки рисков, доносит до клиента, что клиент тоже будет МНОГО работать на проекте и за часть рисков отвечает сам. Формирует контракт, согласует его с клиентом, производством и подразделением гарантийной и постгарантийной поддержки.

Эккаунт

Отвечает за отношения с клиентом за рамками контракта. Любит его больше себя, живёт его болью и радостью, и обеспечивает глубокое проникновение боли клиента (по идее и радости тоже, но руки у него до этого редко доходят) до проектной команды.

Если цель менеджера проекта - исполнить контракт в срок и деньги, то есть после подписания акта - трава не расти, то аккаунт как раз видит и строит отношения к с клиентом вообще, с расчётом на дальнейшее контрактование и новые работы.

KPI аккаунта - рост оборота контрактов по его клиенту и общая маржинальность вне границ контрактов. В силу этого аккаунт может принимать решения о перебалансировке объёма работ между несколькими проектами для одного клиента.
Начальник отдела разработки/аналитики.

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

Директор, Генеральный директор, Директор группы компаний, Президент и Заместитель Бога на Земле.

Во время аврала должен уметь погреть пиццу и сварить кофе вот этому чуваку, который по локоть в крови разбирается в глюках Того Кода, Который Не Мы Написали. Потому что наш-то код точно работает правильно. Смотрит на клиента укоризненно, когда клиент пытается в этом усомниться.
Типовые совмещения ролей


  • Менеджер+ведущий разработчик - грешновато.

  • Менеджер+аналитик - приемлемо на микропроекте.

  • Менеджер+ведущий разработчик+аналитик - не делайте так.

  • Аналитик+тестер - нормально, даже хорошо, но дороговато.

  • Архитектор+ведущий разработчик - норма на небольших проектах.

  • Разработчик+тестировщик - нельзя.

  • Продавец+эккаунт - зависит, но вообще так бывает часто.

  • Продавец+иное - не делайте так. Хотя... был случай, когда продавец отработал проджектом, и никого не убил.

  • Архитектор+аналитик - кажется приемлемым, но в целом плохо. Эти две роли должны быть немного антагонистичны, а в одном человеке это плохо сочетается.

software development, менеджмент, архитектура, аналитика, ПроцессЗавалишина, e-legion, digital zone, проекты, dz systems, программирование

Previous post Next post
Up