Как работают программисты. Структура IT-команды

Многие думают, что программисты создают софт самостоятельно без участия других людей. Но программисты – лишь вершина айсберга в IT.

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

Developer

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

Team Lead

Чтобы проект развивался, чтобы принимались правильные расширяемые технические решения, которые не будут добавлять “костылей” проекту, должен быть человек с техническим опытом на многих проектах.

Team Lead – это что-то между разработчиком и менеджером. Этот человек умеет вести коммуникацию, знает high-level функционал, может прокладывать архитектуру на уровне сервисов. Он выступает лицом команды.

BA

Когда разработчик начинает писать код, он уже должен понимать, что именно должен сделать. То есть должны быть требования, которые характеризуют функционал. Красная или синяя кнопка? Жирный ли шрифт? Скруглённые края? Что должна делать эта кнопка? При нажатии открывается новое окно или пользователь остаётся в той же вкладке? Огромное количество нюансов, на согласование которых тратится колоссальное количество времени.

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

BA – это strong communicator, который умеет выяснить у заказчика, что он хочет видеть в продукте, и дать разработчику конкретное задание с чёткими критериями.

QA

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

QA (a.k.a тестировщики) делают программный продукт стабильным и в должной мере идеальным. Есть тестировщики, которые автоматизируют процессы, есть те, кто тестирует вручную, но в любом случае эти люди чётко проверяют бизнес-требования и обеспечивают функционал без багов.

PM/DM

Кто-то всегда должен направлять команду, ведь у каждого её члена есть свои взгляды, предпочтения, стиль коммуницирования. Чтобы всё это связать и поддерживать стабильно продуктивную атмосферу должен быть человек, к которому можно обратиться за решением менеджерских вопросов.

PM поддерживает процессы в команде, проводит митинги, встречается с клиентами, рассказываем о движении проекта, делится новостями и новыми требованиями.

В чём разница? PM – больше менеджер. DM – больше разработчик. Но цели и задачи у них одинаковые.

Client’s Developers

У клиента могут быть свои разработчики, менеджеры, тестировщики. Они знают больше деталей о самом продукте. Они тоже часть Вашей команды. Именно им нужно продемонстрировать результаты работы, получить правки.

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

Регистрируйтесь на бесплатное занятие по программированию, чтобы узнать больше о мире IT!

Как Вы считаете: нужно ли столько людей для одного продукта или лучше найти одного многопрофильного человека?

66
10 комментариев

Бизнес аналитику нужно знать программирование?

1

программисты работают на расслабоне,зарабатвают миллионы в секунду

Чушь тоже))

Что за чушь про PM написал)))

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

Статья профанация ))