01.05 Позитивные технологии
01.05 Позитивные технологии
01.05 Позитивные технологии

Все программирование, которое должен знать Project Manager

Аватарка пользователя Анна Ельцова
для
Логотип компании Tproger
Tproger
Отредактировано

Рассказываем, кто такие project-менеджеры и должны ли они уметь программировать и читать код.

922 открытий6К показов
Все программирование, которое должен знать Project Manager

В IT появилось настолько много профессий с иностранными названиями, что иногда непонятно, что они вообще делают. Кажется, что project manager — просто тот, кто громче всех кричит «где мой релиз» и «за два дня успеете?». Но это далеко не так.

Разбираемся, какие основные задачи закрывает проджект и нужно ли ему знать программирование и уметь кодить. В этом нам поможет Артем Харченков — автор Telegram-канала «IT Инсайты», где он делится мыслями об IT и тимлидстве. Артем руководит командой 40+ человек более 4 лет, управляет департаментами разработки, тестирования, аналитики и DevOps, является спикером TeamLead Conf и участником подкастов и ведущим вебинаров. Был инженером внедрения и Java-программистом.

Какие главные задачи у PM в айти

Менеджер проекта (или Project Manager, PM) — это функциональный руководитель команды, которая работает над определенным проектом. PM отвечает за то, кто и что в команде делает, чтобы достичь поставленных целей.

Основная задача менеджера проектов в IT — контролировать, чтобы вверенный ему проект был выполнен в срок, с должным качеством и утверждённым составом работ.

Часто говорят, что эти три параметра образуют «железный проектный треугольник», то есть изменение одного из параметров невозможно без изменения двух других.
Артем Харченковавтор tg-канала «IT Инстайты», управляющий департаментами разработки, тестирования, аналитики и DevOps

До работы над проектом обычно составляется план-график, и PM следит за тем, чтобы команда ему следовала. Мотивация команды и поддержание командного духа — также одни из базовых функций PM. Важно понимать, что хороший PM должен не только адекватно оценивать ситуацию на проекте и задавать направление, но и уметь принимать меры, если что-то идёт не так.

Нужно ли в принципе проджекту учить программирование или он его должен знать изначально

Если говорить о проектах разработки ПО, то для того, чтобы стать в них хорошим PM, очень полезно иметь опыт работы в одной из ролей проектной команды. Так как программисты — основная движущая сила проекта, опыт работы в этой роли даёт преимущество в понимании процессов разработки. Это помогает общаться с ними «на одном языке».

Однако я знаю хороших PM, которые выросли из тестировщиков или аналитиков. Одно можно сказать точно: чтобы хорошо руководить командой, следует понимать, по каким правилам она работает, а для этого нужно побывать в ней «изнутри».
Артем Харченковавтор tg-канала «IT Инстайты», управляющий департаментами разработки, тестирования, аналитики и DevOps

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

Какие базовые штуки из программирования нужно знать PM-у, чтобы не теряться в разговорах с кодерами

Начинать стоит не с изучения самого языка программирования, а с общих определений и с понимания того, какой из инструментов зачем используется. Например, чтобы на встрече программистов обсуждение для проджекта не превращалось в «белый шум» нужно знать, что такое, например, «релиз», «деплой», «ветка в гите», «рефакторинг», «кубер» и так далее. Не обязательно самому практиковаться в технологиях, но требуется понимать, для чего они используются. Именно понимание того, какую задачу какой инструмент решает, наиболее важно для PM’а, а вот умение писать код или отличать абстрактный класс от интерфейса не пригодится практически никогда.

При правильном распределении обязанностей на проекте PM’у вообще не требуется читать код: ни настоящий, ни псевдо. Его задача — организация процесса, а не техническая реализация.
Артем Харченковавтор tg-канала «IT Инстайты», управляющий департаментами разработки, тестирования, аналитики и DevOps

Как знание кода помогает адекватно оценивать дедлайны

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

При этом анализ узких мест в коде — не задача PM’а, для этого на проекте обычно есть архитектор, техлид или старший разработчик. Однако PM должен учитывать известные технические риски при планировании, чтобы избежать срыва сроков.
Артем Харченковавтор tg-канала «IT Инстайты», управляющий департаментами разработки, тестирования, аналитики и DevOps

Про технические штуки: что нужно и не нужно знать

Стоит ли вникать в Git

Git — важный инструмент для командной работы программистов, он уже стал стандартом в современных проектах. Как и в других технических инструментах, PM не обязан знать команды push, fetch или merge и уметь ими пользоваться, но должен иметь общее понимание базовых вещей (например, «ветка», «репозиторий», «merge request», «commit»). Без этих знаний PM не сможет эффективно управлять процессом доставки функций и выпуска релизов, выявлять их узкие места и принимать взвешенные решения по устранению проблем.

Нужно ли знать, чем монолит отличается от микросервисов

Понимание этой разницы — сейчас базовое требование в IT. Я рекомендую изучить плюсы и минусы обоих подходов к построению систем. Хорошо, что современные ИИ-помощники позволяют разобраться в этом за пару часов: они опишут всё подробно «на пальцах» и с примерами.
Артем Харченковавтор tg-канала «IT Инстайты», управляющий департаментами разработки, тестирования, аналитики и DevOps

Должен ли PM знать подходы к разработке, например, CI/CD или TDD

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

Как понимание тестов (типа юнит-тестов) спасает при проверке качества

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

Базы данных — это важно для PM-ов или только для разработчиков

Важность понимания принципов работы баз данных для PM зависит от предметной области проекта. Например, при разработке стандартной CRM-системы база данных — лишь один из модулей продукта. В этом случае PM должен понимать только то, что это за база, какие данные в ней хранятся и обрабатываются.

Если же проект связан с созданием ПО для работы с базами данных (например, клиента для БД или системы оптимизации SQL-запросов), потребуется гораздо более глубокое знание их принципов работы.

Веб, мобилки, данные — отличается ли набор знаний для PM-а в этих стеках

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

Конечно, одинаковых проектов не бывает: каждый имеет технические и организационные особенности. Однако в любом из них ключевая цель — выполнить определённый объём работ в срок с должным качеством. Именно умение достигатьдост этой цели — главный критерий успешности PM.
Следите за новыми постами
Следите за новыми постами по любимым темам
922 открытий6К показов