Must-have навыки для системного аналитика
Пункты 1–3 — это база, которая должна быть у всех системных аналитиков, включая Junior-специалистов.1. Методы работы с требованиями и навыки документирования
Начнем с фундаментальных знаний. Любой системный аналитик — не только в ИТ-индустрии, но и в любой другой сфере — должен уметь собирать и выявлять требования, приводить их к единому виду, декомпозировать и классифицировать данные, детализировать требования, определять критерии качества, приоритизировать задачи и документировать все пожелания заказчика так, чтобы команда смогла их правильно понять и воплотить в жизнь. Собственно, именно в этом и заключается работа системного аналитика: обработать набор входных данных, провести глубокий анализ и «перевести» требования с языка бизнеса на язык исполнителей, в частности разработчиков. Когда продукта еще нет и в помине, системный аналитик должен детально представить, как этот продукт будет работать.
Здесь можно вспомнить американского консультанта по менеджменту Уильяма Деминга, который утверждал, что каждый специалист должен обладать системой глубинных знаний, понимать общую теорию систем и теорию вариабельности.
Эта база и хорошо развитое системное мышление должны быть у всех, кто хочет развиваться в профессии.
2. Моделирование и проектирование процессов и систем
Еще один блок базовых знаний для аналитика любого уровня касается методов и инструментов моделирования требований.
Что нужно знать всем:
Что хорошо бы знать:
3. Работа с базами данных
К этому блоку знаний относятся:В первую очередь любой системный аналитик должен уметь писать простые SQL-запросы, чтобы понимать, какие таблицы используются и какие данные в них хранятся. Почему это важно? Входная документация зачастую бывает не совсем актуальной, а нам нужно понимать, как система работает в данный момент. Этот навык может понадобиться не на каждом проекте, но иметь его в своем арсенале нужно всем. Правда, в зависимости от используемой системы, аналитики могут использовать и другие инструменты для понимания актуального состояния системы, среди них логирование, API или специализированные аналитические системы.
На начальном уровне достаточно освоить реляционные базы данных, на уровне мидл — знать разновидности NoSQL, а сеньоры уже должны не просто понимать, чем отличаются разные виды баз данных и как именно в них обрабатываются и хранятся структуры данных, но и уметь выбирать подход и проектировать сложные решения.
Теперь переходим к более продвинутым компетенциям.
4. Архитектура
Что нужно знать:
На всех уровнях аналитик должен понимать основные архитектурные компоненты. Различать синхронные и асинхронные запросы, развивать навыки проектирования для выделения микросервисов, обладать достаточными знаниями для чтения архитектурных схем для последующей спецификации решения.
Более глубокие знания необходимы для сеньоров, которые больше взаимодействуют с архитекторами на этапе принятия решения. Senior-аналитик должен понимать, что в зависимости от архитектуры будет выстраиваться логика разрабатываемого приложения.
5. Интеграции
В этот блок знаний входят:
6. Основы информационной безопасности
Сейчас уже достаточно очевидно, что базовые представления об информационной безопасности должны быть у каждого человека и уж тем более у всех, кто работает в ИТ-сфере. Даже Junior-аналитики обязаны иметь представление об основных схемах и протоколах аутентификации: базовой аутентификации, цифровом сертификате, аутентификации с помощью ключа, OpenID/OAuth, JSON Web Tokens и т. д. Если речь идет о джуне, который устраивается в компанию после университета с профильным образованием, скорее всего, он все это уже знает. Если же речь идет о человеке, залетевшем в ИТ из другой отрасли, то, возможно, ему придется отдельно изучить все эти вопросы. Главное, чтобы системный аналитик понимал азы: основные уязвимости и способы компрометации информации, способы аутентификации и авторизации.Кстати, аутентификацию и авторизацию часто путают. По опыту проведения собеседований скажу, что даже не каждый Senior-аналитик понимает, чем отличаются эти понятия и как все это работает в деталях. Если на начальном уровне достаточно знать основные понятия разграничения доступа, ролевой политики и использовать стандартные подходы и инструменты, то сеньор должен обладать более обширными знаниями, в том числе изучать, какие механизмы шифрования данных существуют и как их выбор влияет на разрабатываемое решение. Другими словами, не только понимать задачи обеспечения информационной безопасности, но и уметь все это корректно спроектировать под каждый конкретный случай, при необходимости обращаясь к узким специалистам в этой области, если заказчик предъявляет высокие требования к уровню защиты.
7. Основы UX/UI
Дизайн — непрофильная область знаний для системного аналитика, однако базовые навыки в этой сфере не будут лишними для специалистов любого уровня. Джунам и мидлам начального уровня достаточно понимать, что для решения необходимо определить набор макетов, что он выстраивается в соответствии с клиентским путем (Customer Journey Map, CJM) и что в индустрии существуют общепринятые гайдлайны и правила построения интерфейсов. Умение читать клиентский путь помогает системным аналитикам лучше прописывать функциональные требования к системе и учитывать сценарии использования (use cases), определяя, как и на каком этапе пользователь взаимодействует с системой.
Часто требуются незначительные изменения в интерфейсах, и с этой задачей аналитик может справиться без UX/UI-специалиста, если освоит базовые инструменты и принципы.
8. Основы жизненного цикла разработки ПО
Чем «старше» специалист, тем больше его обязанностей можно отнести к менеджменту и контролю выполнения задач. Middle-аналитик должен понимать, в какой методологии — Waterfall, RUP, Scrum, Kanban, Lean, FDD, XP и. т. п. — работает его команда, и выстраивать коммуникацию, исходя из этого. Senior-специалист должен глубоко знать отраслевые стандарты в части жизненного цикла разработки программного обеспечения, видов проектной документации, особенностей применения различных методологий разработки и управления конфигурациями и изменениями (система контроля версий Git, конвейер CI/CD). А также понимать, какой подход будет наиболее эффективным для конкретного проекта, и участвовать в его выборе. Все это помогает наладить эффективную коммуникацию между разными членами ИТ-команды.
9. Основы тестирования ПО
Еще одна непрофильная, но важная область знаний для системного аналитика. Эти смежные для аналитика направления — дизайна, разработки и тестирования — хороши, если тимлид взращивает в своей команде T-shaped специалистов, которые глубоко разбираются в одной области, но при этом обладают знаниями, компетенциями и гибкими навыками в других сферах. Основы дизайна, разработки и тестирования помогают системному аналитику лучше и однозначнее предоставлять коллегам информацию, необходимую им для качественного выполнения своей работы.
Что важно знать:
10. Объектно-ориентированный подход
К этому блоку знаний относятся:
Понимание объектно-ориентированного подхода помогает аналитику любого уровня структурировать требования даже в условиях высокой неопределенности. Кроме того, этот подход позволяет без дополнительных усилий поставить задачу для объектно-ориентированного языка программирования, что способствует эффективной работе аналитика и разработчика. Объектно-ориентированный подход является базой для построения решения любой сложности.
Как «переводчик» с языка бизнеса на язык исполнителей, системный аналитик должен уметь говорить на одном языке с дизайнерами, программистами и тестировщиками, при том что каждый из них живет в своем мире и они не всегда понимают друг друга.
Карта компетенций эталонного системного аналитика
Чтобы все перечисленные выше компетенции можно было оценить одним взглядом, мы создали специальную схему — Карту компетенций системного аналитика.Вы можете скачать и сохранить для себя эту карту в ПДФ-формате по ссылке.
Как развиваться системному аналитику: сертификация и узкие места на Карте компетенций
Понимание того, какие компетенции проседают именно у вас, может дать сертификация. Это полезная штука: как я уже говорила, нередко специалисты сами не осознают, где «плавают». Сертификация — это эффективный инструмент для оценки и повышения профессиональных навыков. Она помогает адаптироваться к новым условиям и задачам, определяя необходимые для развития области экспертизы.В 2023 году мы запустили отечественную сертификацию для системных аналитиков. Причин у старта программы было несколько. Во-первых, в Учебном центре IBS сформирована теоретическая база по повышению квалификации системных аналитиков и есть эксперты-практики, занимающиеся обучением специалистов. Во-вторых, мы долгое время проводили подготовку к сертификации у западных вендоров. И в-третьих, в течение последних двух лет из России ушло большинство иностранных компаний, и пройти независимую оценку компетенций стало сложно. Однако у работодателей и самих специалистов запрос на это сохранился.
В Центре сертификации IBS существует несколько уровней сертификации системных аналитиков: «Базовый», «Специалист» и «Профессионал» (в разработке). Перед тем как определиться с уровнем сертификации, можно пройти бесплатное тестирование и за 30 минут узнать, какой экзамен актуален на данный момент. Сертификация проходит каждые две недели в онлайн- и офлайн-формате. Результат сертификации становится известен сразу: специалисту выдается статистика по тому, насколько хорошо он знает темы, входящие в тест. У каждого уровня сертификации своя продолжительность теста, количество вопросов и проходной балл.
Я собрала статистику по сертификации сотрудников IBS на уровнях «Базовый» и «Специалист» за последний год и получила следующую картину.
Уровень «Базовый»
Ориентирован на начинающих специалистов. Проходной балл здесь — 70. При этом средний балл проходящих «Базовый» уровень — 68.5. Темы из Карты компетенций, по которым специалисты набирают меньше всего баллов: «Объектно-ориентированный подход» (средний балл — 57) и «Моделирование и проектирование процессов и систем» (средний балл — 62). Это может быть связано с тем, что системные аналитики часто фокусируются на анализе требований и связи между бизнес-процессами и ИТ-системами, а не на глубоком понимании технических деталей программирования или проектирования. В их образовании, возможно, был упор на другие аспекты информационных систем, и они не получили достаточно знаний по объектно-ориентированному подходу или моделированию. К тому же у начинающих специалистов может быть недостаточно практического опыта, который помог бы им лучше понять и применять эти концепции.
Уровень «Специалист»
Рассчитан на практикующих специалистов. Чтобы пройти сертификацию данного уровня, нужно набрать минимум 75 баллов, при этом средний балл проходящих — 72.92. По нашему опыту, специалистам сложнее сдавать сертификацию «Базового» уровня. Возможно, это связано с тем, что ее сдают начинающие специалисты, обладающие недостаточным уровнем насмотренности и практическим опытом работы.
Что касается слабых тем на уровне «Специалист», то это «Моделирование и проектирование процессов и систем» (средний балл — 64), «Основы UX/UI» (средний балл — 65) и «Основы информационной безопасности» (средний балл — 68).
Что делать после сертификации?
Если вы системный аналитик, обратите внимание на компетенции с самыми низкими значениями. Как показывает практика, при составлении индивидуальных планов развития и обучения этим навыкам уделяют меньше времени и внимания, чем они того заслуживают.
Какие граниты грызть, чтобы стать гуру системного анализа
Поделюсь списком ресурсов, который мы обычно выдаем нашим сотрудникам вместе с результатами сертификации:
Заключение
Конечно, наша статистика не означает, что у каждого системного аналитика не хватает указанных компетенций. Но эта «средняя температура» все-таки показывает определенные закономерности, которые подтверждаются отдельными примерами.
Рассмотрите различные способы углубления знаний по этим темам: возможно, стоит записаться на курсы, запросить наставничество у опытных коллег или самостоятельно изучить материалы по интересующей вас теме. Вы можете выбрать несколько путей одновременно — главное, начать действовать.
Оригинал статьи на Хабре.