На рынке труда есть и кодеры, и инженеры: и те и другие востребованы, просто в разных компаниях. Но, кроме разработчиков, в команде может быть ещё один очень важный человек - это проджект-менеджер.
Нужен ли он там, где уже есть инженеры
С их высоко развитыми навыками решения задач, знаниями, опытом и высоким уровнем ответственности...
Основополагающая философия в IT - это Agile, гибкое управление проектами.
Структура команды здесь плоская, и ответственность за результат несёт вся команда. В Agile есть product owner (заказчик, который принимает бизнес-решение и говорит, насколько эта фича значимая - при постановке задачи, есть ли от неё нужный эффект - после выполнения) и команда, в которой все участники равны.
Роли проджект-менеджера не предусмотрено.
Но в жизни не всё так просто
kt.team - это системный интегратор, то есть подрядчик, который разрабатывает сложные IT-решения для внешних заказчиков. У Agile-интегратора на принципы Agile накладывается парадигма TQM (total quality management, или всеобщее управление качеством).
Правила TQM: я не делаю брак; я не пропускаю брак; я не принимаю брак;
Правила TQM можно изобразить в виде пирамиды, на каждом уровне которой - свои ответственные за качество.
Разработчик уровня software engineer должен думать обо всех исключениях, даже тех, которые не указаны в техническом задании, - это его уровень качества.
То есть разработчиков, которых можно было бы считать кодерами, в Agile-интеграторе нет, по сути, здесь каждый - инженер. Например, есть задача: разработать простую форму регистрации на сайте с единственным полем - «Год рождения».
Разработчик должен предусмотреть, что пользователь может по ошибке указать 3000-й год или вообще буквы, и обработать все эти исключения.
Это уровень качества выполнения задачи.
Проблема в том, что задача может быть поставлена некорректно (вы тоже наверняка с этим сталкивались).
Бракованная задача - та, что плохо описана, и для её выполнения недостаточно данных. В нашем примере с формой регистрации: если человек укажет возраст пять лет, это нужно считать ошибкой или следует разрешить ему регистрацию?
Где верхняя граница отсечения - 65 лет или 100 лет?
Чтобы это понять, простого здравого смысла мало - нужно узнать особенности бизнеса клиента.
Другой пример: клиент предлагает внедрить избыточное решение (например, новые маркетинговые фичи). Возможно, идея не самая лучшая, реализация уменьшит объём продаж, или мы потратим на неё слишком много времени в ущерб более важным задачам. Представляете, если всё это должен проанализировать разработчик или тимлид?
Ему нужно разбираться в маркетинге, думать о рентабельности и напрягаться по поводу не только качества своего кода, но и общих бизнес-показателей проекта.
Сколько времени нужно, чтобы сначала научиться этому, а потом выполнять изо дня в день?..