Привет Хабр! Меня зовут Татьяна Ошуркова, я разработчик, аналитик и автор телеграм-канала IT Talks. Когда я только начинала свой путь в айти, мне казалось, что опытные специалисты будто всегда были опытными, а дорасти до их уровня практически невозможно. Оказалось, что джуна отделяет от мидла (а то и выше) только усердная работа, и определенное количество лет, на протяжении которых нужно всегда искать возможности развития, решать новые задачи и не думать о том, что нерешенная с первого раза задача всегда останется нерешенной.

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

11 февраля я проведу бесплатный вебинар: «Актуальные навыки системного аналитика. Возможности и перспективы развития», где расскажу про востребованные навыки для аналитика, их рост и подходы к развитию, а также поделюсь своим опытом. Запись на вебинар доступна по ссылке.

Основы основ

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

Если вы решили стать системным аналитиком, то нужно обладать как минимум базовыми навыками. Вовсе не обязательно изучать все и сразу.

Для начала необходимо понимать, как строится процесс разработки программного обеспечения, а именно владеть следующими понятиями:

  • Этапы разработки и их содержание

  • Команда разработки, роли в команде

Далее нужно знать содержание профессии:

  • Цели и задачи системного аналитика

  • Роль аналитика в команде, связь со смежными ролями

  • Зона ответственности

Перечисленные пункты являются основой для погружения в профессию и выполнения задач. Далее нужно осваивать базовую теорию по системному анализу и отрабатывать ее на практике. Основным направлениями можно назвать:

  • Требования. Уровни, виды

  • Моделирование, построение диаграмм. Основные диаграммы в UML и нотация BPMN

  • Документация и процесс работы с основными артефактами

  • Базы данных. Основные команды, простые выборки

  • Работа с API. Виды протоколов и архитектурных стилей. Отличия и содержание

Главное, не стараться охватить все и сразу. Например, если кроме базовых понятий, таких как SELECT, DELETE, UPDATE и INSERT, вы тут же изучите теорию по всем типам транзакций и алгоритмам оптимизации, без практики вы быстро утратите эти навыки. Конечно, нельзя останавливаться лишь на основах. Но осваивать новые навыки, на мой взгляд, нужно тогда, когда вы уверенно применяете на практике то, что узнали ранее.

Практика и еще раз практика

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

Практиковаться можно и самостоятельно. Например, если вы изучили элементы различных диаграмм UML – обязательно сформулируйте для себя задачу и постройте все изученные виды диаграмм для неё.

Рассмотрим пример. Предположим, я изучила диаграмму прецедентов и диаграмму активности:

  1. Нужно определиться с программным продуктов. Это может быть интернет-магазин, банковское приложение, веб-сервис и многое другое. Возьмем для пример интернет-магазин.

  2. Представьте, что работаете в команде. У вас есть задача по разработке нового функционала. Что это будет? Раздел оформления заказа или страница личного кабинета? Возьмем раздел избранных товаров.

  3. Опишем процесс. Можно исходить из своего пользовательского опыта. Выберем формат Use case. Опишем просмотр товаров, удаление, сортировку и отображение недоступных товаров. Здесь уже можно приступать к созданию Use case диаграммы.

  4. Для создания диаграммы активности выберем один из прецедентов и подробно опишем шаги пользователь и/или системы для выбранного действия.

Если для практики необходимы функциональные требования, то нужно определиться с объектами системы. В нашем случае определим, что пользовательская часть обращается в сервисы обработки данных, которые отправляют и получают данные из базы. Далее можно уточнить детали интеграций. Теперь мы готовы к анализу и проработке взаимодействия компонентов системы. Остается только решить вопрос, как потрогать нашу систему «руками».

От слов к делу

Описав процессы и поставив перед собой задачи остается решить одну из самых непростых проблем отсутствия реальных систем и возможности работы с ними. В этом могут помочь различные онлайн-сервисы, а также доступные инструменты. Рассмотрим примеры для работы с базами данных и REST, SOAP запросами:

Работа с базами данных

  • Generatedata – создает тестовые SQL-данные для разных СУБД

  • DB Fiddle – онлайн-песочница (PostgreSQL, MySQL, SQLite). Для создания таблиц можно использовать скрипты, полученные в Generatedata

  • SQLPad – интерактивные упражнения по SQL

REST API

  • eqres – тестовый REST API с данными пользователей. Работать с запросами можно в браузере или через Postman

  • Postman – удобный инструмент для отправки и тестирования запросов

SOAP

Три, два, один... Начинаем!

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

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

  1. Искать в интернете «вопросы на собеседовании для системного аналитика» хорошая практика. Многие базовые задания строятся примерно в одном ключе. Даже если вы не встретите на собеседовании то, что отработаете заранее, вы в любом случае не лишний раз отработаете знания на практике.

  2. Стоит начинать поиск с менее крупных компаний. Это позволяет «прощупать почву» и понять, что требуется. В свое время это был один из самых ценных советов для меня.

  3. Нужно анализировать все вопросы и задания, на которые не получилось ответить. Здесь можно выявить все слабые стороны и быть во всеоружии в следующий раз.

  4. Если есть возможность запросить обратную связь после неудачного собеседования, то это обязательно нужно сделать.

  5. Лишняя самоуверенность, как и полное отсутствие веры в себя, будут точно мешать и не приведут ни к чему хорошему. В любом случае собеседование – хороший опыт, который поможет вам стать лучше.

Подведем итоги

Освоение системного анализа – непростой путь, который требует от начинающего специалиста не только знания всей необходимой теории, но и владение освоенными навыками на практике. Я желаю вам удачи и больших успехов в новом направлении. Главное – развиваться с каждым днем, практиковаться и уверенно двигаться вперед.

Комментарии (11)


  1. log76
    07.02.2025 06:00

    Коллеги, упряжка где лошадь за телегой,никуда не поедет. Необходимо сначала изучить теорию системного анализа и смежные теории. Научиться формулировать цель функционирования системы, определять показатели, критерии оценки эффективности, формулировать требования к системе. Научиться выделять сущности (объекты) определять как они связаны.Научиться классифицировать объекты.Нучиться формализовывать процессы в системе, описывать модель предметной области диаграммами, схемами и т.д. Затем изучать предметную область в рамках разработки АС (ПО).


    1. oshurkovata Автор
      07.02.2025 06:00

      Вы правы, что нужно начинать с теории системного анализа, я также указываю это в статье. Но важно перед погружением в системный анализ иметь представление о разработке программного обеспечения в целом, чтобы корректно определить свои цели и задачи в команде.

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

      Важно идти в процессе изучения постепенно. Например, формулировка требования к системе и формализация процессов – взаимосвязанные направления, понимание которых напрямую зависит от погружения в процесс разработки ПО.


      1. log76
        07.02.2025 06:00

        ...в статье идёт речь о СА, поэтому роль в команде вполне конкретная... Ещё есть посыл в статье, о том что СА должен "Работать с API" ,не согласен. Программный интерфейс удел инженера- программиста, не нужно тянуть одеяло на себя.


        1. madDoctor77
          07.02.2025 06:00

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


  1. Rhbnbr
    07.02.2025 06:00

    Теорию системного анализа не изучал, и даже не знаю что это, но с работай системного аналитика справлялся, в том числе и с непростыми задачами


    1. oshurkovata Автор
      07.02.2025 06:00

      Скажу на своем опыте, теорию очень полезно изучать. Кроме того, что она может понадобиться в собеседованиях, она способствует корректному подходу к решению задач. Знание основ, понимание того, как «правильно» решать задачи поможет избежать ошибок и найти новые (более эффективные) подходы к решению. Кроме этого, это поможет вам вырасти как специалисту, глубоко погруженному в профильную предметную область.


      1. Rhbnbr
        07.02.2025 06:00

        На собеседованиях помочь может, а при решении задач понимание того как "правильно" часто мешает


  1. CBET_TbMbI
    07.02.2025 06:00

    Если вы решили стать системным аналитиком, то нужно обладать как минимум базовыми навыками. Вовсе не обязательно изучать все и сразу.

    Для начала необходимо понимать, как строится процесс разработки программного обеспечения, а именно владеть следующими понятиями:

    • Этапы разработки и их содержание

    • Команда разработки, роли в команде

    Далее нужно знать содержание профессии:

    • Цели и задачи системного аналитика

    • Роль аналитика в команде, связь со смежными ролями

    • Зона ответственности

    Мда... Всегда удивляли такие статьи... Замени поофессию на другую и ничего не изменится.

    Такую воду пишут, когда сказать нечего, но зачем-то хочется сделать текст побольше. Ну, или это болталогия нейронки.


    1. oshurkovata Автор
      07.02.2025 06:00

      Подскажите, на какую профессию может заменить системного аналитика в данном контексте?

      Если говорить, например, про смежные роли в команде, то безусловно данные пункты будут актуальны для всех начинающих специалистов в разных ролях.

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


      1. CBET_TbMbI
        07.02.2025 06:00

        На любую. Даже дворник должен знать, как мести метлой, знать свои цели, свои задачи, за что отвечает, за что не отвечает, знать своих коллег, своего начальника и т.п.

        Замени слово "аналитик" на "дворника", а "разработку" на "уборку". Что будет неверным?


        1. oshurkovata Автор
          07.02.2025 06:00

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