Многие компании целенаправленно ищут системных аналитиков. Но есть и такие, которые включают системный анализ в задачи бизнес-аналитиков или стремятся объединить требования к бизнес- и системным аналитикам в новой роли «функционального аналитика». Может быть, системный анализ — это функция, которую способны выполнять обычные разработчики? Или выделенный системный аналитик все-таки дает команде разработки конкурентное преимущество? Об этом рассказывает Ярослав Боженков, ведущий аналитик IBS InfiniSoft.
Любопытно, что в мировой практике нет профессии «системный аналитик». На зарубежных карьерных сайтах можно найти вакансии на позиции бизнес-аналитиков и аналитиков данных, но в ИТ-разработке даже эти аналитики формально не входят в состав скрам-команд, в которых есть только унифицированные и взаимозаменяемые разработчики.
За границей работа бизнес-аналитика высоко оплачивается, поэтому такие специалисты обычно подключаются на самом старте проекта и выходят из него после подготовки бизнес-требований. Аналитики данных как правило работают в компаниях на постоянной основе как исследователи, подключаясь к разным проектам, но при этом не входят в состав команд разработки.
Если говорить о российском рынке ИТ, то здесь ситуация иная. Системные аналитики есть, они востребованы, и входят в состав команд разработки. Более того, по инициативе Минтруда РФ были разработаны профессиональные стандарты для должности «системный аналитик», в функции которого включены:
Однако каждая из этих функций, и даже все вместе, могут быть реализованы и другими специалистами, например, разработчиком, архитектором и аналитиком. Но насколько совмещение функций в роли системного аналитика эффективнее их разделения и назначения другим? В первую очередь это зависит от модели разработки.
Такой подход часто встречается в больших проектах, как правило работающих по методологии Waterfall (каскадная модель). В таком случае:
Основное преимущество в том, что на проект можно пригласить наиболее профессиональных специалистов для каждой из этих функций. К недостаткам относятся существенно более высокие издержки — оплачивается работа нескольких узкоспециализированных профессионалов вместо одного.
Обычно такое встречается у малых команд профессионалов, например, стартапов, которым не требуется техническая детализация задач. Разработчики — суперпрофессионалы, быстро вникают в суть бизнеса и сами находят технические и архитектурные варианты реализации. Получается, что в этой ситуации программист — это и аналитик, и менеджер, и разработчик в одном лице.
Вспомним разработку 1990-х годов, когда системы промышленной автоматизации начинали создаваться одним человеком. Подобная ситуация возможна и сейчас, особенно для инновационных проектов, когда квалификация — высокая, мотивация стать собственником бизнеса — огромная, а коммуникации только отвлекают от работы.
Недостаток подхода в том, что таких специалистов на рынке немного. Универсальные профессионалы зачастую создают свои стартапы или уходят в известные на мировом рынке ИТ-компании.
Подход, при котором задачи проектирования, формирования требований, управления аналитическими работами и даже участие в тестировании и поддержке закрепляются за выделенным участником команды — системным аналитиком — это третий вариант. У него есть свои преимущества и ограничения.
С точки зрения логики выполнения функций:
Однако у делегирования функций системному аналитику есть и более существенное обоснование.
Случается, что системных аналитиков рассматривают больше как ресурс «на подхвате» или универсальных игроков, за счет которых можно сэкономить на разработке. Но при этом упускается главное преимущество роли, которое существенно влияет на способность команд эффективно работать в сегменте enterprise-разработки, особенно в условиях недостатка разработчиков высокой квалификации и текучести кадров, — это централизация управления знаниями. Системный аналитик может стать центром знаний о системе, координирующим работу команды и существенно ускоряющим разработку, тестирование и внедрение программного обеспечения. Системный аналитик — специалист высокой квалификации уровня руководителя команды разработки, который может дать весомое конкурентное преимущество и изменить качество самого проекта.
В ряде случаев разработка может обойтись и без системного аналитика. Большей частью в стартапах и небольших проектах, в которых начальная концентрация функций в руках топ-разработчиков — органическое условие развития бизнеса. Однако в enterprise-сегменте, то есть в разработке, доработке и внедрении корпоративных приложений для крупных производств, холдингов и финансовых институтов, позиция выделенного системного аналитика имеет существенные преимущества. Его главная ценность — не в разработке требований, как считается традиционно, а в знаниях о системе, концептуальном лидерстве в разработке, и как следствие — другой организации работы, приводящей к снижению стоимости разработки, увеличению ее скорости и повышению качества создаваемого продукта. Работа системного аналитика в первую очередь заключается в организации и систематизации всех основных проектных знаний, что порой играет решающую роль в разработке и приносит значимую пользу как самой команде, так и бизнесу. В случае, если компания не готова вкладываться в поиск собственного системного аналитика, это всегда можно отдать на аутсорс надежному партнеру, вроде IBS.