Loe raamatut: «Настольная книга project-менеджера. Что нужно знать, чтобы управлять IT, digital и другими проектами с учетом российских реалий»
© Завертайлов В., текст, 2022
© ООО «Издательство «Эксмо», 2022
* * *
Друзья! Всем, кто приобрел эту книгу, мы дарим полгода бесплатной работы в лучшем персональном планировщике задач SingularityApp. Вы экономите 1000 рублей. Чтобы узнать, как получить подарок – переходите по ссылке https://singularity-app.com/pmbook/ или QR-коду
Введение
Что нужно, чтобы стать руководителем digital-проектов или руководителем продукта в IT? Уж точно не классическое вузовское образование (хотя без него будет трудно). На пути к должности руководителя вы потратите огромное количество времени на практику, не раз набьете шишки и столкнетесь с факапами, прольете немало пота, крови и слез, вложите в это много труда. Но самое главное – приготовьтесь каждый день ставить свою шкуру на кон. Потому что руководитель проектов и продуктов отвечает за свое детище, как никто в команде. И делает все то, что нельзя делегировать.
Вас к такому не готовили
Почти 20 лет я руковожу студией разработки и не один год провожу стажировки для студентов. Статистика печальна: востребованных специалистов для управления проектами и продуктами в вузах, увы, не готовят. Поэтому мне приходится отсматривать десятки претендентов на стажировку и отсеивать тех, кто хочет халявы в роли ничего не делающего надзирателя или легких денег (проджекты же много зарабатывают, правда?). Но те, кого я беру на стажировку – счастливчики. Потому что они моментально погружаются в рабочую атмосферу. Сразу вникают в процессы, самостоятельно делают аналитику, продумывают структуру проектов (пусть и не существующих в реальности), ведут их от начала и до конца, наступают на грабли, совершают ошибки. Сразу – действительно учатся. И даже если в дальнейшем наши пути расходятся, ребята уходят счастливыми и окрыленными.
Но что делать, если у вас за плечами нет такой стажировки, а вы хотите быть руководителем продукта или проекта? Или, возможно, уже им стали, но что-то постоянно не клеится: сроки срываются, команда косячит, и вам опять надо это разгребать в стопятьсотый раз? Знакомо? Знакомо. Нет, можно, конечно, уволиться и начать все сначала. Но собственные системные ошибки догонят где угодно – потому что от себя не убежишь.
На должность руководителей проектов я собеседовал множество раз, и это были самые разные люди. Одни работали в каких-нибудь госзакупках, другие – в прошлом были инженерами, но доросли до руководящих позиций, третьи – менеджерили команду в банке или вообще были маркетологами. Меня мало интересует опыт из резюме – он вряд ли расскажет о том, способен ли человек решать проблемы здесь и сейчас или нет. И уж точно не покажет, насколько крутой из него переговорщик и справится ли он с интеграцией на проекте. Меня больше интересуют навыки – те самые Soft Skills, о которых мы будем говорить в этой книге. И которых часто не хватает многим, и не только в IT-среде.
Кто виноват и что делать
Хорошая новость: вы не виноваты в том, что на старте в профессию не обладали огромным багажом знаний и что даже многолетний опыт не спас вас от ошибок. Так уж повелось, что в классических учебных заведениях необходимую информацию почти не дают, а на предыдущих местах работы редко удается прокачать все нужные скиллы.
Но есть и плохая новость: вы в ответе за то, что все так, как есть. Сейчас вы должны решить, что делать дальше: учиться или продолжать слепо ходить по старым дорожкам в надежде получить другой результат.
Если выбираете второй путь – ставьте книгу обратно на полку, диалога у нас не получится. Если все-таки первый – то придется потрудиться. Но оно того стоит.
В digital все крутится вокруг всего двух компетенций: технологии и коммуникации. Hard Skills & Soft Skills. Если проседают коммуникации, руководитель сможет завалить проект, сделанный сильной технической командой. И наоборот: позитивный и энергичный менеджер, который умеет договариваться – вытянет слабый проект и сделает так, что заказчик попросит еще. Технологии же нужны, чтобы общаться с командой и заказчиками на уровне эксперта.
Что вам точно понадобится?
▶ Честность. На уровне «пацан – сказал, пацан – сделал». Без этого с человеком, по-моему, вообще нельзя иметь дел.
▶ Интеллект. В первую очередь – системное мышление.
▶ Зрелость. Готовность брать на себя ответственность.
▶ Позитив и энтузиазм. Если менеджер по натуре депрессивен, и у него на лице написано: «Господи, когда же это все дерьмо закончится» – не стоит ожидать, что команда радостно подхватит знамя и с криками «Эге-гей! Дерьмо! Кончайся!» побежит делать проект.
▶ Внимание к мелочам. Большие проблемы вырастают из мелочей, которые проглядели на старте работ. Или заметили, но решили, что они никак не повлияют на будущее. Мелочи ничего не прощают большому.
▶ Готовность незамедлительно действовать.
▶ Требовательность. Умение пойти на конфликт, если что-то сделано плохо, отстаивать свои интересы и интересы дела.
Вообще, путь менеджера – это трудный путь. В нем много сложностей и много работы над собой, характером, привычками. А это больно. Приходится нести ответственность не только за себя, но и за других, и за весь проект. Отвечать за чужие косяки. Двойные неприятности.
Зато это очень интересный путь, интересная судьба. Практически бесконечные возможности как для горизонтального роста, так и для вертикального, если он вдруг вам понадобится. Хорошо платят. Вы приобретаете чертовски полезные навыки для повседневной жизни. И это определенная степень свободы, умение владеть собой. И еще – вы будете востребованы, и скучно точно не будет. Но это – если оно вам действительно надо. А раз уж вы держите в руках эту книгу, хочется надеяться, что это так.
Что вас ждет в этой книге
В 2017-м году мы в студии создали обучающий курс на Skillbox «Руководитель digital-проектов», который был одним из первых на рынке по этой теме. За 4 года существования его прошли сотни студентов. И каждый из них хотел бы иметь под рукой инструмент, на который всегда можно положиться в сложной и неоднозначной ситуации.
Цель – дать этот инструмент тем, кто только собирается в профессию руководителя проекта или руководителя продукта, и тем, кто уже в ней работает и развивается, но испытывает сложности. Можно сказать, это настольное практическое руководство для проджектов и продактов, которым приходится либо заказывать digital-услуги на стороне, либо управлять своим собственным digital-производством.
Почему книга сразу и для проджектов, и для продактов? Потому что в небольших проектах эти роли часто выполняет один человек. Project Manager (диджитал-продюсер, PM, менеджер, руководитель проектов – зовите, как хотите) – специалист, который своей шкурой отвечает за проект и несет ответственность за то, чтобы в процессе работы ни одно животное не пострадало. Графики, сроки, команда, бюджеты, релизы, качество – вот что в фокусе. Product Manager – это, скорее, про маркетинг, стратегию, приоритеты, трафик, сегменты, конкурентов.
Но работы полно и там, и там. Более того, хороший руководитель проекта должен владеть продуктовыми техниками, чтобы лучше понимать потребности бизнеса. А хороший руководитель продукта должен вырасти из руководителя проектов, чтобы понимать возможности и ограничения своей команды и иметь адекватную картину мира. Именно поэтому в этой книге есть техники для обеих специальностей.
В ней также найдутся ответы на те непростые вопросы, с которыми сталкиваются начинающие и уже опытные менеджеры проектов и продуктов ежедневно:
▶ как общаться с подчиненными, чтобы не быть в их глазах мямлей или деспотом;
▶ как грамотно делегировать и что придется в себе искоренять, чтобы это уметь;
▶ почему Scrum – все еще передовой фреймворк для разработки проектов и продуктов в digital и как его внедрить в свою команду;
▶ как и с помощью каких инструментов проводить аналитику перед стартом проекта, чтобы в процессе разработки не случалось неприятных сюрпризов;
▶ что такое декомпозиция, зачем она нужна на проекте и как грамотно составлять сметы, чтобы потом не было мучительно больно и стыдно перед заказчиком;
▶ как управлять творческими сотрудниками и креативным процессом без магии, шантажа и подкупа;
▶ как строить команду, чтобы людям хотелось приходить на работу и расти профессионально;
▶ как распределять собственное время менеджера эффективно и при этом не выгореть и не уехать в бессрочный отпуск;
▶ что лучше: собственная команда или аутсорс и как быть с техподдержкой;
▶ как не плодить бюрократию, но при этом четко оформить процесс разработки документально;
▶ как интегрировать сайты и продукты с внешними сервисами и системами без моря слез;
▶ что делать, если все пошло не по плану и случился факап на проекте;
▶ и как, черт побери, понять все то, что ежедневно говорит тебе команда на своем айтишном языке.
Полистайте содержание. Посмотрите главы. Загляните в задания после каждого блока. Если есть сомнения – поставьте, где взяли. Не поможет. Особенно, если не планируете постоянно практиковаться. В книге, конечно, есть забавные истории, примеры, кейсы, чек-листы и шаблоны, которые можно брать и сразу применять. Но это – инструмент, а им нужно пользоваться!
Часть 1
Картина мира digital-проекта. Тонкости делегирования в IT
Возьмем такую задачку: довести сайт до ума.
Нет, я не пошутил с формулировкой. Таких задач – доделать за предыдущими разработчиками – на фриланс-биржах пруд пруди. И несчастные сотрудники в них периодически вляпываются. Допустим, вы – менеджер, у вас микрокоманда: дизайнер, программист, аналитик, тестировщик. С которыми вы раньше не работали. И есть еще бизнес-заказчик, нешибко разбирающийся в digital-премудростях, но уже почему-то раздраженный. Он эту карусель оплачивает, если его устроит цена и качество. Понятно, что его в первую очередь интересуют деньги и сроки. Ваши действия?
Правильно: бежать!
А что нас смущает? Запредельная степень неопределенности? Тухлая перспектива? Неуверенность в команде? Непонятки с оплатой? Неадекватный заказчик? Поехали, потом заведешься? Гарантированный геморрой при негарантированном результате?
Давайте мысленно представим, как выглядит картина мира digital-проекта и сколько возни тут вырисовывается.
1.1. Картина мира digital-проекта
Итак, в нашей минимальной картине мира сразу получается куча объектов. И с каждым из них много возни и неопределенности. Объекты связаны, влияют друг на друга, за всеми приходится следить и что-то корректировать. Давайте разбираться, пока поверхностно, потом пойдем в дебри.
Заказчик. Бывают два типа заказчиков. Внутренний, когда разработка идет in-house. И внешний, когда проект разрабатывается на заказ.
Заказчик может быть чертовски сложно устроен: не один человек, а группа (с противоречивыми интересами, требованиями к проекту и даже конфликтами). А еще бывают скрытые агенты влияния, например, у заказчика – жена, с которой он советуется, и ее мнение в итоге будет определять эстетическую сторону проекта. Но вы об этом не узнаете.
У заказчика определяющая роль. Он формирует концепцию проекта, приоритеты, финансирует весь карнавал. От него зависит все: что бы вы как менеджер ни делали, всегда остается шанс упереться в стенку на той стороне. Именно заказчик определяет степень успешности проекта. Подробнее о работе с заказчиком поговорим в главе 9.
Деньги. Энергия проекта, без них ничего не получится. Даже если это фановые, волонтерские проекты в свободное время или проекты за долю в будущих прибылях. Тогда деньги не присутствуют в явном виде – источником может стать сама команда. Классика провала: два друга пилили проект вместе по вечерам, а потом один женился и взял кредит. И все, приоритеты поменялись, разошлись дорожки…
Различают два ключевых формата работы. Time & Material – оплачивается время, затраченное командой, в таком случае задачи можно менять как угодно. И Fixed Price – цена и задачи оговариваются на берегу. У обоих вариантов есть как плюсы, так и минусы. Time & Material переносит риски на заказчика, но работу можно организовать быстрее и гибче. Fixed Price – заставляет разработчика зашивать риски и подстраховку в смету, лишает гибкости и снижает скорость выпуска функций из-за процедуры согласования бюджета, но яснее воспринимается клиентом. Существуют также гибридные модели.
Условия заказчика регламентируются тремя способами:
Требования. Постановки задач, технические задания (ТЗ), тикеты1, рисунки на салфетках, бэклоги… Управление требованиями, выявление, уточнение, актуализация, расстановка приоритетов занимают массу времени. Рассмотрим подробно работу с требованиями и способы приоритизации в главе 4.
Юридические документы. Иными словами, бюрократия, более актуальная для заказной разработки. NDA, договоры, приложения, акты и т. д.
Тикет-система. Хранит задачи для команды и статусы по ним. Может быть частью системы управления требованиями или существовать отдельно. Может быть только для внутренних нужд команды, а может пускать заказчика внутрь.
Команда проекта. В digital команда может сжиматься до одного человека, а-ля веб-мастера, и включать в себя заказчика. Либо наоборот: разрастаться, выделяя отдельные функции в роли. Как строить и выращивать команды, мы разберем в главе 7. Командная работа подразумевает делегирование. Например, менеджер справится с задачами аналитика и тестировщика, но с ростом проекта целесообразно выделить это в отдельные роли. Или программист может администрировать серверы, если квалификация соответствует. Но как только серверного хозяйства становится много – приходится выносить это в отдельную роль – администратора. Для примера будет такая команда:
Менеджер. Ну тут все понятно, это – вы. Головой отвечаете за проект, работаете в области высоких энергий и мгновенной ответственности за базар. Про вас вся эта книга.
Разработчик (программист). Бородатый чувак, который пилит код. Пока без дебрей на чем, бэкенд-фронтенд. Универсальный боец.
Дизайнер. Отвечает за весь визуал и интерфейсы. Хотя пошла мода на специализации UI/UX-дизайнеров и т. д. Подробнее об организации дизайна поговорим в главе 6.
Аналитик. Конкретизирует требования. Подробнее об этом поговорим в главе 4, посвященной аналитике.
QA (quality assurance, тестировщик). Тестирует продукт.
Поле власти. Что-то типа электрического поля, к которому подключаются менеджерские инструменты типа «делегирования». Подробнее про власть разберем в главе 2.
Руководство. Ваш непосредственный руководитель и бизнес-заказчик могут быть разными людьми. С одной стороны, у руководства свои требования и интересы, с другой – у него есть ресурс, который недоступен вам, но полезен проекту. Власть, опыт, переговорные навыки, право закупать оборудование и софт, менять процессы работы и т. д.
Кто для вас главнее: заказчик или руководитель, и что делать, если у них противоречивые требования? Например, заказчик попросил изменить процесс: нарисовать дизайн до аналитики. Можно ли? Да, если согласуете с руководителем. Приоритет отдавайте руководителю. При этом никто не против, чтобы клиент был счастлив.
Еще несколько компонентов digital команды:
Знания и опыт. Экспертиза команды. То, благодаря чему заказчик обратился к вам, а не к конкурентам. Знания и опыт индивидуальны у каждого члена команды.
Регламенты, правила, обычаи, стандарты отрасли. Документы или принципы, по которым организован рабочий процесс в команде. Формализуют знания и опыт команды. Такие регламенты собираются в корпоративные базы знаний и доступны всем участникам, но это не гарантирует 100 % осведомленность или применяемость.
Инструменты и технологии. Компьютеры и программное обеспечение, необходимые для разработки нового софта. Навыки владения такими инструментами принято называть Hard Skills.
График загрузки команды. Чтобы спрогнозировать сроки готовности каждой функции, приходится планировать календарную загрузку каждого члена команды и учитывать зависимости задач. Если же вы работаете в мультипроектной среде – приходится учитывать загрузку команды на других проектах. Тут помогут сетевые графики, теория ограничений и метод освоенного объема из главы 5.
Проект. Это набор артефактов, в основном – файлов:
▶ Код, как правило, в репозитории.
▶ Визуал – макетов, прототипов, гайдлайна и т. д.
▶ Серверная инфраструктура, на которой ведется разработка, тестируется или работает сам проект.
▶ Разноуровневый Доступ и хранение паролей.
▶ Кроме кода и визуала в проекте обязательно есть Данные. Это либо база, либо контент, ради обработки которых проект и затевался.
▶ В развитых проектах код покрывают Тестами и пишут формальные Тест-планы выпуска продукта.
▶ Большинство проектов взаимодействуют с Внешними сервисами. Например, авторизуют пользователей через социальные сети или рассчитывают стоимость доставки товара. Для этого разработчики выполняют интеграцию через API. Подробности в главе 10.
▶ Наконец, в зрелом проекте обязана быть Документация. Ее главная задача – отчуждение знаний о проекте из голов конкретных исполнителей. Документация снижает риски.
1.1.1. Прогулка по картине мира
Итак, мы героически вляпались в задачу «довести сайт до ума». Как бы я действовал (кое-где – чужими руками)?
Жуть, этот план даже читать больно! А ведь вам завтра крутить окровавленную и облитую слезами ручку digital-разработки:)
▶ Поинтересовался, почему расстались с предыдущим разработчиком, на какой ноте, кто это был. Навел бы справки. По возможности переговорил с разработчиком, составил свое мнение.
▶ Получил от клиента предварительный список требований и задач. Рассказал всю процедуру и описал риски. Запланировал время на то, чтобы вникнуть в чужой код. Возможно, его придется полностью удалить, и все написать по новой. Первое время наша скорость будет ниже, чем у предыдущей команды, и у нас будет больше ошибок, потому что мы не знаем всех взаимосвязей. Также обсудил условия, при которых можно попробовать взяться за задачу.
▶ Грубо оценил стоимость проекта (вилочно, от-до), получил подтверждение бюджета у клиента.
▶ Согласовал работу по Time & Material. Работать с чужим проектом по Fixed Price – самоубийство. Выяснил, сколько примерно часов готов выкупать клиент в будущем и какие дальнейшие планы на сотрудничество. Разовый, короткий контракт, отношения на одну ночь меня бы не заинтересовали – в этом случае посоветовал бы закончить проект с предыдущей командой.
▶ Запросил доступы к коду.
▶ Провел код-ревью – процедуру анализа и оценки качества кода.
▶ Изучил текущую документацию. Если документации нет – это тоже показатель.
▶ Принял решение, можно ли работать с текущим кодом или нужно выбросить и все делать с нуля.
▶ Подписал контракт.
▶ Получил предоплату.
▶ Еще раз уточнил требования. Собрал их в бэклог. Отсортировал по приоритетам. Организовал работу спринтами.
☐ Нарисовал прототипы. Сдал клиенту.
☐ Нарисовал дизайн, если задача это предполагает. Также сдал клиенту.
☐ Еще раз проговорил голосом результат с заказчиком, убедился, что мы все одинаково понимаем.
☐ Доформировал требования на уровне задач в тикет-системе с учетом изменений, которые появились в дизайне и прототипе. Обычно это мелочи, но иногда все разворачивается на 180°.
☐ Дал вычитать требования разработчикам.
☐ Проговорил задачи голосом с командой, ответил на вопросы. Получил оценки от команды, например, методом Planning Poker (подробнее в главе 3).
☐ При необходимости провел рисерч. Это нужно для задач, с которыми команда никогда не сталкивалась.
☐ Запланировал разработку в календарном плане.
☐ Написал тест-кейсы или критерии приемки по каждой из задач.
☐ Запрограммировал. Следил за ходом работ, решал «затыки».
☐ По итогам разработки провел код-ревью нового кода.
☐ Протестировал, исправил баги.
☐ Проверил производительность.
☐ Сдал заказчику проект на тестовом сервере, получил и обработал обратную связь. Мелкие недочеты исправил сразу, остальное перенес в будущие спринты.
☐ Провел ретроспективу с командой, посмотрел, что можно улучшить в проекте и процессах работы.
☐ Актуализировал документацию.
☐ Провел деплой (выкладку на боевые сервера).
☐ Обновил контент.
☐ Проверил работу на боевом сервере.
☐ Подписал акты, получил постоплату.
▶ Выяснил, что еще хотел бы клиент, повторил бы цикл. Сам предложил улучшения проекта: по коду, функциям, дизайну, удобству и простоте использования.
▶ Организовал работу по мелко-срочным отвлекающим тикетам (по более дорогой ставке), выполнение которых клиент не готов ждать.
В общем, у менеджера тут много дел. Причем, ценность большинства из них воспринимается клиентом весьма гадательно. И хорошо бы что-то делегировать.
Час нормального проджекта должен стоить не менее часа нормального психолога.