Допускаю, что подобных статей было, есть и будет много, но все же постараюсь сделать ее достаточно уникальной, может, даже полезной:)
1. Введение
В процессе поиска первой работы, да и сейчас, спустя почти год коммерческого опыта (хотя, пожалуй, это совсем немного), меня порой вводят в ступор вопросы о различиях между бизнес- и системным аналитиком, главенстве иерархии Product Owner и Project Manager и некоторые иные.
Да и в целом было интересно мельком обозреть специфику работы основных групп ИТ-специалистов, чтобы проще было ориентироваться в корпоративной среде. Эта статья есть плод моих попыток разграничить теоретический спектр задач для некоторых популярных должностей.
Формат статьи: компиляция данных из курсов университета, иных ресурсов, своих домыслов и требований к кандидатам из вакансий HeadHunter.
1.1 Допущение об ИТ-специалистах
И в этой статье, и в целом я отношу к айтишникам не только классических программистов, но и тесно связанных с ними аналитиков, тестировщиков, администраторов, менеджеров ИТ-проектов и владельцев ИТ-продуктов. Словом, тех людей, чья работа связана с разработкой, внедрением и сопровождением технологических решений.
1.2 Иерархия
Классическая лесенка, знакомая даже людям, не соприкасающимся напрямую со сферой ИТ, из новостей, постов в социальных сетях и рекламах вакансий:
1. Trainee (стажер) — человек, у которого есть теоретическая база, полученная, например, в университете, ноприкладных знаний очень мало. Идет в компанию «доучиваться», возможно, и без оплаты.
2. Junior (младший, помощник, ассистент) — начинающий специалист, не сильно превосходящий стажера (порой только в самоуверенности), но уже являющийся членом команды, которого хоть и курируют, но уже приучают к решению настоящих рабочих задач. Ошибаться, много спрашивать и работать медленно — можно, если это ведет к скорому развитию.
3. Middle (просто разработчик, аналитик, тестировщик,...) — специалист среднего уровня, который уже может самостоятельно (по большей части) решать поставленные задачи, декомпозировать их, прогнозировать сроки завершения работы над задачей и укладываться в них. Уже овладел большей частью как прикладных, так и теоретических знаний.
3.5 Middle+, Senior- (вероятно, не самая общепринятая группа, сюда отношу так называемых «старших») — выделил, так как встретил подобное в своей компании. Здесь потихоньку начинается работа с «подрастающим поколением», самостоятельная постановка задач младшим сотрудникам.
4. Senior (ведущий, старший) — сильный профильный специалист, способный не только выполнять поставленные задачи, но и самостоятельно видеть «дыры», нужды компании, проекта, команды и находить способы их закрытия, разбивая задачу на подзадачи, при необходимости распределяя их внутри команды.
5. Team Leader (TL, руководитель) — необязательно превосходит знаниями senior-специалиста, но является более опытным сотрудником в сфере коммуникаций, организации процесса работы, взаимодействия с руководством компании и распределения обязанностей. Может несколько меньше работать «руками», но больше планировать, развивать компетенции коллег.
Можно на этом и закончить, поскольку уже с TL начинается уход в менеджмент, что не совсем соответствует профилю статьи, так что про C-level рекомендую почитать отдельно.
1.3 Профильность (I-shape, T-shape, M-shape, плоские)
Перед тем, как наконец начать рассматривать конкретные должности и их функционал, стоит чуть подробнее обсудить затронутые ранее термины.
Итак, I-shape называют узких специалистов, которые очень хороши в своей отдельной области, но их «кругозор» ограничен рамками их должности, проекта, компании.
Специалисты широкого профиля, напротив, до некоторой сферы компетентны в разных смежных областях, то есть могут понять суть обсуждения большей части задач на проекте, однако ярких «сильных» сторон не имеют.
T-shape, как вы наверняка догадались, являет собой сочетание широкого базового кругозора и экспертизы в какой-то одной сфере.
M-shape (иногда выделяют отдельно и П-shape) уже являет собой редкое сочетание глубоких знаний в нескольких сферах и понимания общих концепций во многих с ними связанных направлениях.
Тем не менее, хоть мультифункциональные специалисты выше классом, чем узкоспециализированные, в силу ограниченности времени в сутках один M-shape сотрудник не сможет заменить весь отдел:)
2. Управленцы
Первыми рассмотрим своего рода верхушку, то есть лиц, ответственных за большой блок работ, но перед этим определимся с терминами:
Продукт — средство доставки ценности. У него есть четкие границы, известные заинтересованные лица, четко определенные пользователи или клиенты. Продукт может быть услугой, физическим продуктом или чем-то более абстрактным.
Проект — временное (ограниченное датой начала и датой окончания) предприятие, направленное на создание уникального продукта, услуги или результата.
2.1 Product Owner
Владелец продукта несёт ответственность за достижение максимальной ценности продукта как результата работы команды. И добивается он этого при помощи Scrum — фреймворка гибкой разработки программного обеспечения.
Владелец продукта понимает, кто чем занимается в команде, управляет бэклогом, плотно взаимодействует с разработчиками и другими заинтересованными лицами. Он отвечает за то, чтобы все члены команды имели ясное представление, над чем работают и в какой последовательности будут выполнять задачи.
2.2 Project Manager
Менеджер проекта вступает в игру после взаимодействия заказчика с бизнес-аналитиком.
Задача — обеспечить свою команду всем необходимым (ресурсами, слаженным взаимодействием, информацией, временем, отвоеванным у заказчика) и устранить препятствия на пути к решению задачи. Составляет план работ, в рамках которого организовывает и ведет встречи, ставит задачи и следит за их выполнением, документирует процесс и готовит отчетные презентации для заинтересованных сторон.
2.3 Product Manager
Продакт-менеджер, менеджер продукта, PM — наёмный предприниматель внутри компании. Он нацелен на развитие продукта, который с наименьшими вложениями принесёт наибольшую прибыль.
Продакт-менеджер сфокусирован на долгосрочной стратегии, отвечает за исследование конкурентной среды и своей аудитории. Здесь речь идёт о маркетинговых задачах и взаимодействии с клиентами.
Кратко:
Product Owner — роль по Scrum, приоритизирует список задач, консультирует команду разработки по целям, ресурсам, срокам.
Project Manager — должность в компании. Обеспечивает согласованность действий, проводит статусы, решает различные орг.вопросы и документирует процесс. Равен PO, если компания работает по Scrum.
Product Manager — наемный предприниматель, фокусируется на «взлете» и долгосрочной работе определенного продукта.
3. Разработчики
Тут все достаточно однозначно: разработчик — специалист, знающий один или несколько языков программирования, применяющий его для решения специфичных задач и создания некой иной ценности, программного продукта.
Можно выделить, например:
1. По реализуемой части проекта:
- frontend-разработчик — создает привлекательную «оболочку»: меню, кнопки, формы. Все с чем взаимодействует конечный пользователь;
- backend-разработчик — «строит» сайт. Он создает процессы со стороны сервера, благодаря которым приложение/страница выполняет свои прямые функции;
- fullstack-разработчик — сочетает функции бэкенда и фронтенда для контроля процессов, поиска неисправностей. Он владеет полными знаниями обеих профессий.
2. По сфере деятельности:
- DWH-developer — разработчик SQL, который занимается построением, оптимизацией и сопровождением Хранилища Данных.
- 1С-разработчик — как ни странно, разработчик 1С, разрабатывающий и настраивающий прикладные решения на платформе 1С:Предприятие.
- Разработчик игр — создание, продвижение игр. Чаще всего специализируются на конкретных платформах или жанрах игр.
- Мобильный разработчик — программист, который пишет приложения для мобильных устройств. К ним относятся не только смартфоны и планшеты, но и умные часы, фитнес-трекеры, электронные читалки, GPS-навигаторы и проч.
Используемые ЯП (наиболее популярные): под iOS это Objective-C и Swift, а под Android — Java и Kotlin. JavaScript выделяется как кроссплатформенный, что и плюс, и минус. Подробнее, например, тут.
Разработчиков достаточно много — берете, скажем, связку любого языка программирования и слова «разработчик»: вот вам и вакансия на HeadHunter.
4. Аналитики
Перехожу к более интересной для себя теме (все же я бизнес‑аналитик. Но это неточно, так как в сфере консалтинга, по словам моего куратора, мы универсальные солдаты. Можем и в бизнес-, и в системную аналитику поиграть).
4.1 Бизнес-аналитик
Бизнес-аналитик — сотрудник, разбирающийся в некотором направлении развития компании настолько, чтобы суметь выяснить основные требования, пожелания бизнеса. При этом важно не столько записывать все, что перечисляет заказчик, но и вникать в суть: действительно ли это то, что нужно в данной ситуации? Может, стоит чуть больше погрузиться и вместе выяснить, какой решение окажется удачнее/выгоднее/быстрее?
Вторым этапом идет формулирование технического задания для команды разработки, контроль за его выполнением и.. составление отчетности. Отчет о ходе реализации, об оценке достижения целей то, что всегда нужно составлять.
Цель — повышение эффективности деятельности бизнеса.
Требования:
BPMN, UML, JIRA, Битрикс24, Excel и его продвинутые собратья (Power Query, Power BI), знание сферы деятельности компании.
4.2 Системный аналитик
Системный аналитик чуть ближе к команде разработки, чем бизнес-аналитик, так как на его уровне идет тщательная техническая проработка ТЗ: понять и обойти возможные риски при разработке, определить требования к программному обеспечению, провести декомпозицию задачи при необходимости.
Цель — оптимизация работы системы.
Требования:
BPMN, UML, user story, use cases, XML, JSON, понимание цикла разработки и методологии проектирования.
4.3 Data Analyst
Аналитик данных как оно есть. С привязкой к конкретной предметной области по заданным требованиям собирает и обрабатывает данные, проводит первичный анализ и выдвигает свои гипотезы, основанные на нем. При необходимости полученные выводы передает профильным специалистам, которые в них заинтересованы.
SQL, Python/R, Power BI, A/B tests, математическая статистика, иногда требуется понимание основных концепций ML.
Могут быть выделены некоторые ответвления от Data-аналитика, например:
- Продуктовый аналитик — специалист данного профиля отслеживает состояние продукта и совершенствует его.
Проводит всеобъемлющий разбор данных, преследуя цель выявить в них причинно-следственные связи, прямо или косвенно связанные с этим продуктом, и объяснить их, чтобы в результате выбрать лучшую траекторию развития продукта.
Требования:
SQL, Python/R, Power BI, A/B tests, математическая статистика.
- BI-аналитик (Business Intelligence аналитик) обеспечивает сбор, хранение и анализ данных, которые генерируются в результате деятельности компании. На этой базе формулирует и проверяет гипотезы, визуализирует результаты, автоматизирует отчетность, помогая бизнесу ускорить свою работу и видеть слабые места.
- Data-scientist — исходя из того, что я прочитал и услышал на различных лекциях, такого человека можно считать как высококлассным Data-аналитиком, так и современным специалистом по математической статистике и теории вероятностей. Почему?
Специфика работы предполагает как умение разбираться в данных, находить закономерности, отмечать ключевые метрики, так и строить определенные модели, обобщающие эти взаимосвязи, помогающие оценить по имеющимся данным возможное дальнейшее развитие событий. Но, поскольку все модели как классические (вроде линейной и логистической регрессии, деревьев решений, методов опорных векторов), так и «современные» (нейронные сети, скажем) всецело основаны на статистических выкладках и вычислительных мощностях, явно прослеживается сильная статистическая подготовка.
Требования:
Python/R/C++, ML, DL, Hadoop, Spark, SQL, Git.
- Web-аналитик собирает и анализирует всю информацию о поведении пользователей на сайте (например, время активного просмотра страницы, воронку продаж по сайту (сколько зашло на сайт, сколько выбрало определенный продукт, сколько оплатило...). Отслеживает, насколько хорошо была проведена работа на сайте как SEO- и SMM-специалиста, так и остальных участников процесса;
P.S. SEO-специалист занимается оптимизацией и продвижением сайтов в поисковых системах, а SMM-специалист занимается продвижением и ведением профиля в социальных сетях.
5. Архитекторы
Общие моменты
Архитекторы — выходцы из S-level своих сфер. С годами опыта (наработанная экспертиза, способность управлять командой, высокий уровень абстракции и понимание взаимодействия между собой различных технологий или частей продукта) и соответствующими амбициями разработчик, аналитик или администратор могут перейти от выполнения задач в определенных рамках к построению этих рамок.
5.1 Data Architect
Архитектор данных — специалист, который занимается проектированием и разработкой информационных систем. Он задает ее каркас, определяет что, где и как будет храниться, отвечает за то, чтобы система была эффективной, надёжной и соответствовала требованиям заказчика.
Требования:
SQL, OLTP&OLAP, моделирование и проектирование хранилищ данных, ETL, DataLake.
5.2 Enterprise Architect
Корпоративный архитектор отвечает за общее проектирование и успешное внедрение технологической инфраструктуры организации. Его работа заключается в анализе текущего состояния технологий, процессов и сервисов компании для определения областей, требующих улучшения, и создания плана дальнейшего развития.
То есть, например, необходимо собрать запросы различных отделов компании по поводу необходимых приложений, страниц сайта, систем авторассылки и проч., а затем понять, как лучше всего это добавить в текущую инфраструктуру. После этого в дело вступит архитектор решений с конкретными способами и средствами реализации.
С другой стороны, и на Хабре, и на некоторых зарубежных источниках предлагают не ограничиваться ИТ сферой при разговоре о корпоративном архитекторе, например тык.
Также, как часть Enterprise Architect, выделяют Business Architect.
5.3 Solution Architect
Сперва определимся с тем, что есть решение. Решением можно считать комплекс продуктов, которые закрывают возникшую у заказчика потребность.
Тогда архитектор решений — подбирают ИТ-продукты и сервисы, которые решают некую бизнес-задачу с учетом функциональных требований, стоимости, безопасности, временных ресурсов и других факторов.
В целом, исходя из описания профессии у Microsoft, можно даже назвать архитектора решений эдаким "техническим бизнес аналитиком" - работает с клиентами и отвечает за общие технические отношения и стратегию между заказчиком и организацией. Они руководят сессиями по архитектурному проектированию, разрабатывают обоснованные концепции/пилотные проекты.
5.4 Software Architect
Архитектор программного обеспечения — специалист, который выбирает средства разработки, фреймворки и библиотеки, управляет базой знаний в своей выделенной области, задает стандарты написания кода и проч.
Вероятно, эта роль может не выделяться отдельно, а быть частью обязанностей техлида, буду благодарен уточнениям в комментариях, а также живыми примерами того, чем занимается данный специалист. Пока же могу сказать, что он продолжает работу предыдущих архитекторов, в частности архитектора решений, на прикладном уровне - решает, как лучше реализовать тот блок взаимосвязанных продуктов, который был избран.
6. Иные специалисты
В три ранее рассмотренные группы не вместились все должности, а ведь некоторые из них весьма любопытны и заслуживают рассмотрения.
6.1 Инфобез-специалист
Специалист по информационной безопасности занимается внедрением механизмов, помогающих предотвратить утечку данных еще на этапе анализа кода, поиска ошибок и их исправления. В том числе обеспечивает доступ к информации ее владельцам или лицам, имеющим на то право.
Обеспечение доступа к данным может быть реализовано (и, пожалуй, должно) через виртуальные частные сети (VPN). Превентивные меры утечки данных — проведение консультаций как общих для всех сотрудников (т.н. вводный инструктаж при приеме на работу), так и специфичных, если сотрудник должен периодически работать за пределами компании или данные, которые он использует, особенно ценны.
6.2 Системный администратор
Сисадмин — работник, должностные обязанности которого подразумевают обеспечение штатной работы парка программного обеспечения. Занимается, например, установкой и конфигурацией программного и аппаратного обеспечения, заведением и актуализацией учетных записей, порой и информационной безопасностью.
Основные обязанности системного администратора:
настройки оборудования – компьютеров, оргтехники;
работа с программным обеспечением – установка, наладка, обслуживание;
мониторинг и настройки сервера;
обеспечение сотрудников сетевым оборудованием, настройка сети;
защита данных компьютерных сетей, резервное копирование;
составление заявок на приобретение и ремонт технического оборудования;
работа с учётными записями сотрудников;
поиск системных сбоев и их устранение.
Стоит отметить, что, с учетом специализаций в рамках одной глобальной профессии "системный администратор", многие пункты, перечисленные выше, можно полнее раскрыть, ибо есть и сетевые администраторы, и администраторы баз данных и так далее.
6.3 Тестировщик
Тестировщик проверяет на работоспособность продукт, выданный ему после разработки. Предпочтение отдается автоматизации и полноте тестирования (а что будет, если с HTC Desire клиент решит перейти в личный кабинет по ссылке из Google?), использованию в том числе нагрузочного тестирования (справится ли приложение или сайт с одновременными действиями многих пользователей?).
Обнаруженные ошибки передает на доработку, после чего цикл повторяется. Для того и нужна автоматизация, которая достигается при применении методологии Dev&Ops.
6.4 Data Engineer
Инженер данных, специалист, который занимается построением (то есть настраиванием перегрузки данных из источников) и обслуживанием инфраструктуры для работы с данными, а также их предварительной обработкой.
Если архитектор моделирует, то инженер создает. Data Scientist же пожинает плоды трудов — пользуется готовыми данными.
Требования:
Python, SQL, T-SQL, оптимизация, ETL, AirFlow, Spark
6.5 DevOps-инженер
Development & operations инженер — специалист, который занимается автоматизацией процессов разработки, тестирования и развертывания, непрерывным улучшением инструментов и техпроцессов.
Профессия стала актуальна с приходом веб-сервисов и необходимостью частого и быстрого обновления программного обеспечения, а это трудно делать при поэтапном подходе (разработка — тестирование — релиз), потому этот специалист объединяет все эти процессы, а также управляет версионностью продукта.
6.6 Дизайнер UX/UI
Основная задача дизайнера заключается в создании визуально интересного интерфейса и обеспечении отличного пользовательского опыта.
UX (User Experience, «пользовательский опыт») — то, каким образом пользователь взаимодействует с интерфейсом и насколько сайт или приложение для него удобны. В UX входит навигация по сайту, функционал меню и результат взаимодействия со страницами, а также диалоговые окна, функционал кнопок, настройки поиска и форм.
UI (User Interface, «пользовательский интерфейс») — оформление сайта: сочетания цветов, шрифты, иконки и кнопки.
Дизайнер использует мокапы (первичные макеты), а также вайрфреймы — детальные черно-белые планы страниц сайта, созданные клиентом или бизнес-аналитиком, чтобы разработать макеты и спроектировать пользовательский интерфейс программного обеспечения, соответствующий рекомендациям и последним тенденциям.
Дизайнер также создает прототип, который отражает поведение и внешний вид будущего продукта и позволяет протестировать его на реальном устройстве перед началом цикла разработки.
6. Эпилог
Вроде по структуре он просится, а вроде какое тут заключение, если разбросаны «определения» и требования к навыкам? Но ладно, допустим так:
В зависимости от размера компании, сложности внутренней структуры и щепетильности организации процессов очень многие теоретически различные роли могут быть объединены в одном сотруднике. Так что, пожалуй, все вышеописанное остается лишь теоретическими выкладками и в ближайшее время не станет корректным ориентиром.
Вероятно, когда все эти профессии станут обыденными, старыми, всем понятными, будет и единое понимание обязанностей, которые они с собой несут, однако…
Когда еще это будет?