Постановка задачи → аналитикВсе начинается с постановки задачи и обсуждения целей клиента. На этом этапе главную роль играет команда аналитиков. Их задача — понять, описать и согласовать с заказчиком цель проекта, углубиться в детали и задать правильные вопросы, чтобы в итоге на выходе получилось техническое описание, понятное остальной команде.
Для аналитиков важно понимать бизнес клиента. Аналитики — это исследователи и переводчики. Они говорят с клиентом в терминах целей и задач бизнеса, а с командой на языке требований и технических спецификаций.
После сбора требований аналитики продолжают поддерживать проект, консультируют команду, уточняют у заказчика детали требований и приоритеты. Для этой специализации важны хорошие коммуникационные качества, иностранные языки(для начала — английский), готовность консультировать и доносить информацию до остальной команды, делиться своим пониманием.
Также нужны технические знания, чтобы понимать реализуемость запросов заказчика хотя бы на уровне «можно», «нельзя», «очень сложно» и «запросто».
Разработка архитектуры продукта → архитекторСледующая роль — технический архитектор. Его задачи:
- выделить основные части системы
- интеграцию между ними
- выбрать инструменты для разработки
Архитектор — технический идеолог и главный консультант для команды разработки. Обычно за плечами у этих специалистов несколько лет работы программистом на разных платформах и языках программирования. Архитектор часто общается с клиентом, поэтому знание английского не помешает. После того, как архитектура создана, он сопровождает разработку, смотрит код, проверяет на соответствие основным принципам архитектуры, помогает находить технические решения для сложных случаев.
Разработка программного кода → программистПосле того, как понятны требования и архитектура, начинается процесс разработки программного кода. Программисты пишут код, используя выбранные технические средства. Нужно сказать, что в IT на этапе выбора приняты командные обсуждения, где каждый может поделиться своим предложением, показать, какие технологии или инструменты подошли бы для решения конкретной задачи.
В процессе написания кода программисты обнаруживают несоответствия требований, не вполне ясные требования и задают вопросы аналитикам и архитектору, практически готовый продукт отправляется тестировщикам. Разработчики продолжают писать код, исправлять ошибки, обнаруженные тестерами, и дорабатывать систему.
Для этого направления очень пригодится технический склад ума, владение несколькими языками и инструментами программирования, готовность изучать новое и применять его в работе. Английский нужен как минимум на уровне технического. Часто программисты выезжают к клиенту, чтобы помочь с внедрением готовой системы в эксплуатацию. В таком случае, пригодится и разговорный язык.