Управление
#статьи

Что такое системный анализ, как его проводят и какие инструменты для этого используют

Гайд для тех, кто хочет разобраться в теме с нуля.

Иллюстрация: Катя Павловская для Skillbox Media

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

О системном анализе рассказала

Анна Солодовникова

Системный аналитик, магистр в области информационной бизнес-аналитики. Проверяющий куратор на курсах Skillbox «Профессия Бизнес-аналитик», «Профессия Операционный менеджер».

Что такое системный анализ

Системный анализ в IT — поиск и описание наилучшего решения бизнес-проблемы с учётом системных характеристик и ограничений системы. У системного анализа нет предопределённого результата; он зависит от того, в какой сфере его проводят и какими были условия исходной задачи.

Допустим, маркетолог хочет убрать одно из полей в форме заявки на сайте. Он может поставить задачу разработчику, не учитывая возможные связи этого поля. Разработчик уберёт поле, но всё «сломается»: окажется, что данные из этого поля передаются в CRM-систему и теперь она не может корректно работать.

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

Также у термина «системный анализ» есть другие значения. Впервые его употребила некоммерческая организация RAND в 1948 году. В русскоязычной литературе его стали использовать после выхода книги Стэнфорда Оптнера «Системный анализ для решения деловых и промышленных проблем» в 1969 году. В литературе под системным анализом понимают научное направление; мы же говорим о частном случае — системном анализе в IT.

Кто такой системный аналитик

За системный анализ в компаниях отвечает системный аналитик. Это специалист, который формирует требования к IT-системе и контролирует процесс её разработки или доработки.

Вот чем занимается системный аналитик:

  • Собирает и анализирует требования к IT-системе от бизнес-заказчиков или изучает проблему, с которой они пришли. Также это может делать бизнес-аналитик, если в компании есть обе роли.
  • Ищет способы решить проблему или выполнить требования бизнес-заказчика.
  • Разрабатывает технические задания — описывает требования к системе на языке, понятном разработчикам.
  • Ставит задачу на разработку или доработку системы.
  • Тестирует систему — проверяет, корректно ли она работает и соответствует ли требованиям. Системный аналитик занимается этим, если в проекте нет тестировщика.
  • Разрабатывает техническую и пользовательскую документацию — описывает, как работает система и как ей пользоваться.

Больше о задачах системного аналитика можно прочитать в обзоре профессии.

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

Какие проблемы решают с помощью системного анализа

Все проблемы в системном анализе делят на три группы: структурированные, слабоструктурированные и неструктурированные.

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

Допустим, мы разработали систему и написали к ней пользовательскую инструкцию. В ней описаны алгоритмы работы и все ошибки, которые могут возникнуть. По тому, на каком шаге «споткнулся» пользователь или с какой ошибкой он столкнулся, можно сделать вывод о том, в чём именно заключается проблема.

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

Разберём тот же пример: мы разработали систему, но не подготовили инструкцию и не написали сообщения на случай ошибок. Пользователь пытается войти в систему и видит ошибку 403. Ему придётся самостоятельно выяснять, что означает эта ошибка. Если бы помимо кода мы вывели сообщение «Доступ запрещён. Обратитесь к администратору», путь к решению проблемы был бы проще.

Пример сообщения, которое облегчает путь к решению проблемы
Скриншот: Skillbox Media

Неструктурированные проблемы — проблемы, о которых очень мало вводных данных. Не известны никакие показатели, и часто непонятно, где их получить.

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

Пример неструктурированной проблемы — бизнес-заказчик хочет видеть в системе метрики, которые сейчас не хранятся ни в одном из сервисов системы. Кроме того, непонятна механика их расчёта; неясно, где они должны быть и куда должны передаваться.

Как проводят системный анализ

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

Выясняет, есть ли проблема на самом деле. Слепо доверять вводным данным — грубая ошибка. Поэтому первое, что делает системный аналитик, — уточняет, действительно ли то, с чем к нему пришёл бизнес-заказчик, — проблема.

Например, бизнес-заказчик говорит: снизилось количество регистраций на сайте, раньше получали 400 регистраций в неделю, теперь — 100. Системный аналитик проверяет отчёт и видит, что пользователи действительно стали реже регистрироваться: понятно, что проблема реальна. Если бизнес-заказчик говорит «мне кажется, что регистраций стало меньше», системный аналитик сначала проверяет, сколько регистраций было раньше и сколько сейчас: так он убеждается, что проблема реально существует.

Ставит задачу. Если бизнес-заказчик не поставил задачу, системный аналитик делает это сам. Он определяет, какую проблему нужно решить и к какому результату прийти.

Для постановки задачи часто используют метод SMART. То есть ставят конкретную, измеримую, достижимую, релевантную и ограниченную по времени цель: не просто «повысить число регистраций на сайте», а «достичь 400 регистраций на сайте в неделю через три месяца».

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

Опытный системный аналитик закрывает часть вопросов на своём уровне, не привлекая ресурсы разработки, если это позволяет задача. Допустим, бизнес-заказчик хочет, чтобы в IT-систему добавили отчёт, которого там сейчас нет, и ставит задачу системному аналитику. Системный аналитик изучает другие системы и выясняет, что в другой IT-системе есть такой же или максимально похожий отчёт. Он не привлекает ресурсы разработки, а предоставляет бизнес-заказчику доступ к отчёту в другой системе и тем самым закрывает его потребность.

Готовит техническое задание. Если решение задачи в том, чтобы доработать или разработать IT-систему, системный аналитик готовит техническое задание разработчикам. Он объясняет детали, учитывая связи и ограничения системы; понимает, на какие части системы повлияет эта разработка.

Какие инструменты и методы используют для системного анализа

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

Основной метод в системном анализе — моделирование бизнес-процессов. Чаще всего для него используют нотацию BPMN — это система условных обозначений, которая позволяет описывать бизнес-процессы в виде схем. Кроме неё, системные аналитики могут использовать IDEF, EPC, другие виды нотаций и обычные блок-схемы.

Также в системном анализе используют другие виды моделирования — например, UML-диаграммы. UML — унифицированный язык моделирования, больше о нём можно прочитать в статье об UML. Ещё системный аналитик может использовать диаграммы связей, теорию игр, кластерный анализ и многие другие методы, если они позволяют решить задачу.

Пример UML-диаграммы. Она показывает, какие компоненты есть в системе и как они взаимодействуют
Инфографика: Skillbox Media

Инструменты системного аналитика — любое программное обеспечение, в котором можно визуализировать процессы и связи между объектами системы. Так, для этого используются стандартный офисный пакет программ, Draw.io, Miro, Camunda и подобные им инструменты.

Если системный аналитик мало визуализирует и больше работает с кодом, он будет использовать другие инструменты: базы данных, инструменты для работы с ними вроде SQL, панели визуализации данных — например, Kibana.

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

Какие навыки нужны, чтобы заниматься системным анализом

Системный аналитик должен владеть навыками логического и системного мышления, быть коммуникабельным.

Логическое мышление — это способность анализировать информацию и делать выводы на основе данных. Это обязательное качество и для системного, и для бизнес-аналитика.

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

У меня нет пошаговой инструкции по тому, как стать системным человеком. Системность приобретается на практике.

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

Также системным аналитикам нужны знания об IT-системах, с которыми они работают, и о процессе разработки в целом. Специалист может не уметь читать код, но он должен понимать, о чём говорят разработчики, а для этого нужно разбираться в теме.

Как освоить системный анализ

Развить навыки системного анализа могут даже люди творческих профессий — например, писатели. Чтобы начать осваивать системный анализ, можно применять системный подход в жизни. Рассмотрим, как это может выглядеть, на примере аренды квартиры.

Если вы хотите арендовать квартиру, вы можете найти несколько объявлений, посмотреть все варианты и принять решение, отталкиваясь от того, какое жильё вам больше понравилось. А можете сделать по-другому:

  • Составить список критериев, по которым будете оценивать квартиры. Например, цена, возможность проживания с домашними животными, наличие мебели.
  • Составить список подходящих вариантов жилья.
  • Оценить варианты по подобранным критериям и найти победителя — квартиру, которая подойдёт вам по большинству критериев.

Это и есть системный подход; вы руководствуетесь данными и принимаете взвешенное решение, а не отталкиваетесь от субъективных ощущений.

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

Узнать больше о системном анализе можно на курсе Skillbox «Профессия Системный аналитик». На нём учат собирать и разрабатывать требования, подготавливать спецификацию и работать с языком SQL. В программе есть 30 часов практики для закрепления полученных знаний. 

Главное о системном анализе в 4 пунктах

  1. Системный анализ в IT — поиск и описание наилучшего решения бизнес-проблемы с учётом системных характеристик и ограничений системы. За системный анализ отвечает системный аналитик.
  2. Единого алгоритма системного анализа нет, но есть этапы, которые проходят в большинстве случаев. Сначала системный аналитик выясняет, действительно ли существует проблема. Потом определяет задачу, находит способ её решения и создаёт техническое задание на разработку.
  3. Есть огромное количество методов и инструментов, которые можно использовать для системного анализа. Чаще всего используют моделирование, в частности моделирование бизнес-процессов, и инструменты визуализации вроде Draw.io, Miro и Camunda.
  4. Системному анализу можно научиться. Сделать это легче будет коммуникабельным людям с аналитическим складом ума и системным мышлением. Чтобы научиться проводить системный анализ, нужно начать применять системный подход в жизни и изучить инструменты визуализации, методы моделирования, процесс разработки и многое другое. Сделать это можно, например, на курсах.

Больше материалов Skillbox Media для тех, кто интересуется аналитикой

Учитесь и пробуйте новое — бесплатно

Выберите курс Skillbox с бесплатным доступом:

Смотреть все
Научитесь: Профессия Системный аналитик Узнать больше
Понравилась статья?
Да

Пользуясь нашим сайтом, вы соглашаетесь с тем, что мы используем cookies 🍪

Ссылка скопирована