Что такое системный анализ, как его проводят и какие инструменты для этого используют
Гайд для тех, кто хочет разобраться в теме с нуля.
Иллюстрация: Катя Павловская для Skillbox Media
Если компания дорабатывает IT-систему под свои задачи или разрабатывает такую систему с нуля, значит, в компании есть системный аналитик или тот, кто выполняет его функции. Если вы знакомы с термином «системный анализ», но пока не очень хорошо представляете, о чём идёт речь, эта статья для вас.
- Что такое системный анализ
- Кто такой системный аналитик
- Какие проблемы решают с помощью системного анализа
- Как проводят системный анализ
- Какие инструменты и методы используют
- Какие навыки нужны для системного анализа
- Как научиться его проводить
О системном анализе рассказала
Анна Солодовникова
Системный аналитик, магистр в области информационной бизнес-аналитики. Проверяющий куратор на курсах Skillbox «Профессия Бизнес-аналитик», «Профессия Операционный менеджер».
Что такое системный анализ
Системный анализ в IT — поиск и описание наилучшего решения бизнес-проблемы с учётом системных характеристик и ограничений системы. У системного анализа нет предопределённого результата; он зависит от того, в какой сфере его проводят и какими были условия исходной задачи.
Допустим, маркетолог хочет убрать одно из полей в форме заявки на сайте. Он может поставить задачу разработчику, не учитывая возможные связи этого поля. Разработчик уберёт поле, но всё «сломается»: окажется, что данные из этого поля передаются в CRM-систему и теперь она не может корректно работать.
Суть системного анализа в том, чтобы предусмотреть этот сценарий и заранее изучить, какое влияние на систему окажет изменение её элементов. То есть выяснить, с чем связано поле, какие данные оно хранит, куда передаёт и что будет, если его убрать и предложить решение, которое устроит маркетолога и не нарушит логику работы других систем. Особенно это важно, когда сервисы в системе активно взаимодействуют друг с другом.
Также у термина «системный анализ» есть другие значения. Впервые его употребила некоммерческая организация RAND в 1948 году. В русскоязычной литературе его стали использовать после выхода книги Стэнфорда Оптнера «Системный анализ для решения деловых и промышленных проблем» в 1969 году. В литературе под системным анализом понимают научное направление; мы же говорим о частном случае — системном анализе в IT.
Кто такой системный аналитик
За системный анализ в компаниях отвечает системный аналитик. Это специалист, который формирует требования к IT-системе и контролирует процесс её разработки или доработки.
Вот чем занимается системный аналитик:
- Собирает и анализирует требования к IT-системе от бизнес-заказчиков или изучает проблему, с которой они пришли. Также это может делать бизнес-аналитик, если в компании есть обе роли.
- Ищет способы решить проблему или выполнить требования бизнес-заказчика.
- Разрабатывает технические задания — описывает требования к системе на языке, понятном разработчикам.
- Ставит задачу на разработку или доработку системы.
- Тестирует систему — проверяет, корректно ли она работает и соответствует ли требованиям. Системный аналитик занимается этим, если в проекте нет тестировщика.
- Разрабатывает техническую и пользовательскую документацию — описывает, как работает система и как ей пользоваться.
Больше о задачах системного аналитика можно прочитать в обзоре профессии.
Системный аналитик — это одна из ступеней развития карьеры в аналитике. Есть похожая на неё профессия — бизнес-аналитик; но между системной и бизнес-аналитикой есть разница. Системный аналитик обладает широкими знаниями о технологиях и особенностях разработки системы; бизнес-аналитик в первую очередь хорошо знает предметную область, которую анализирует.
Какие проблемы решают с помощью системного анализа
Все проблемы в системном анализе делят на три группы: структурированные, слабоструктурированные и неструктурированные.
Структурированные проблемы — проблемы, которые известны и хорошо понятны, о них собрано много вводных данных. То есть существуют показатели, по которым можно понять, что что-то не так, и предположить, как можно это исправить.
Допустим, мы разработали систему и написали к ней пользовательскую инструкцию. В ней описаны алгоритмы работы и все ошибки, которые могут возникнуть. По тому, на каком шаге «споткнулся» пользователь или с какой ошибкой он столкнулся, можно сделать вывод о том, в чём именно заключается проблема.
Слабоструктурированные проблемы — проблемы, которые требуют дополнительного изучения, потому что вводных данных недостаточно. Есть показатели, но непонятно, хватит ли их, чтобы оценить ситуацию, или нужно дополнительно собирать какие-то данные. Иногда показателей не хватает: приходится опираться не только на количественные метрики, но и на качественные.
Разберём тот же пример: мы разработали систему, но не подготовили инструкцию и не написали сообщения на случай ошибок. Пользователь пытается войти в систему и видит ошибку 403. Ему придётся самостоятельно выяснять, что означает эта ошибка. Если бы помимо кода мы вывели сообщение «Доступ запрещён. Обратитесь к администратору», путь к решению проблемы был бы проще.
Неструктурированные проблемы — проблемы, о которых очень мало вводных данных. Не известны никакие показатели, и часто непонятно, где их получить.
Неструктурированные проблемы самые сложные. Из-за того, что нет никакой информации и опыта работы с этими проблемами, их решают практически наугад. Результат решения может быть неизвестен заранее; но при этом неструктурированные проблемы потенциально решаемы.
Пример неструктурированной проблемы — бизнес-заказчик хочет видеть в системе метрики, которые сейчас не хранятся ни в одном из сервисов системы. Кроме того, непонятна механика их расчёта; неясно, где они должны быть и куда должны передаваться.
Как проводят системный анализ
Единого алгоритма системного анализа нет, всё зависит от задачи. Но можно выделить этапы, которые системный аналитик проходит в большинстве случаев.
Выясняет, есть ли проблема на самом деле. Слепо доверять вводным данным — грубая ошибка. Поэтому первое, что делает системный аналитик, — уточняет, действительно ли то, с чем к нему пришёл бизнес-заказчик, — проблема.
Например, бизнес-заказчик говорит: снизилось количество регистраций на сайте, раньше получали 400 регистраций в неделю, теперь — 100. Системный аналитик проверяет отчёт и видит, что пользователи действительно стали реже регистрироваться: понятно, что проблема реальна. Если бизнес-заказчик говорит «мне кажется, что регистраций стало меньше», системный аналитик сначала проверяет, сколько регистраций было раньше и сколько сейчас: так он убеждается, что проблема реально существует.
Ставит задачу. Если бизнес-заказчик не поставил задачу, системный аналитик делает это сам. Он определяет, какую проблему нужно решить и к какому результату прийти.
Для постановки задачи часто используют метод SMART. То есть ставят конкретную, измеримую, достижимую, релевантную и ограниченную по времени цель: не просто «повысить число регистраций на сайте», а «достичь 400 регистраций на сайте в неделю через три месяца».
Находит решение. Это самый продолжительный по времени этап. Системный аналитик изучает систему и связи объектов друг с другом, делает предположения; придумывает, как достичь поставленной цели с минимальными затратами ресурсов. Для поиска решения используют разные инструменты — о них мы поговорим ниже.
Опытный системный аналитик закрывает часть вопросов на своём уровне, не привлекая ресурсы разработки, если это позволяет задача. Допустим, бизнес-заказчик хочет, чтобы в IT-систему добавили отчёт, которого там сейчас нет, и ставит задачу системному аналитику. Системный аналитик изучает другие системы и выясняет, что в другой IT-системе есть такой же или максимально похожий отчёт. Он не привлекает ресурсы разработки, а предоставляет бизнес-заказчику доступ к отчёту в другой системе и тем самым закрывает его потребность.
Готовит техническое задание. Если решение задачи в том, чтобы доработать или разработать IT-систему, системный аналитик готовит техническое задание разработчикам. Он объясняет детали, учитывая связи и ограничения системы; понимает, на какие части системы повлияет эта разработка.
Какие инструменты и методы используют для системного анализа
Есть огромное количество методов и инструментов, которые используют для системного анализа. Мы перечислим некоторые из них.
Основной метод в системном анализе — моделирование бизнес-процессов. Чаще всего для него используют нотацию BPMN — это система условных обозначений, которая позволяет описывать бизнес-процессы в виде схем. Кроме неё, системные аналитики могут использовать IDEF, EPC, другие виды нотаций и обычные блок-схемы.
Также в системном анализе используют другие виды моделирования — например, UML-диаграммы. UML — унифицированный язык моделирования, больше о нём можно прочитать в статье об UML. Ещё системный аналитик может использовать диаграммы связей, теорию игр, кластерный анализ и многие другие методы, если они позволяют решить задачу.
Инструменты системного аналитика — любое программное обеспечение, в котором можно визуализировать процессы и связи между объектами системы. Так, для этого используются стандартный офисный пакет программ, Draw.io, Miro, Camunda и подобные им инструменты.
Если системный аналитик мало визуализирует и больше работает с кодом, он будет использовать другие инструменты: базы данных, инструменты для работы с ними вроде SQL, панели визуализации данных — например, Kibana.
Системные аналитики подбирают методы и инструменты для каждой задачи, исходя из своего опыта и условий.
Какие навыки нужны, чтобы заниматься системным анализом
Системный аналитик должен владеть навыками логического и системного мышления, быть коммуникабельным.
Логическое мышление — это способность анализировать информацию и делать выводы на основе данных. Это обязательное качество и для системного, и для бизнес-аналитика.
Системное мышление — это умение понимать связи между объектами и видеть их как единую систему; понимать, как объекты взаимодействуют друг с другом и что будет, если изменить один из них.
У меня нет пошаговой инструкции по тому, как стать системным человеком. Системность приобретается на практике.
Коммуникабельность — это умение слушать, слышать и задавать вопросы. Системный аналитик должен уметь общаться с людьми, потому что он выясняет их потребности, получает информацию о требованиях к системам — и передаёт её разработчикам в понятном для них виде.
Также системным аналитикам нужны знания об IT-системах, с которыми они работают, и о процессе разработки в целом. Специалист может не уметь читать код, но он должен понимать, о чём говорят разработчики, а для этого нужно разбираться в теме.
Как освоить системный анализ
Развить навыки системного анализа могут даже люди творческих профессий — например, писатели. Чтобы начать осваивать системный анализ, можно применять системный подход в жизни. Рассмотрим, как это может выглядеть, на примере аренды квартиры.
Если вы хотите арендовать квартиру, вы можете найти несколько объявлений, посмотреть все варианты и принять решение, отталкиваясь от того, какое жильё вам больше понравилось. А можете сделать по-другому:
- Составить список критериев, по которым будете оценивать квартиры. Например, цена, возможность проживания с домашними животными, наличие мебели.
- Составить список подходящих вариантов жилья.
- Оценить варианты по подобранным критериям и найти победителя — квартиру, которая подойдёт вам по большинству критериев.
Это и есть системный подход; вы руководствуетесь данными и принимаете взвешенное решение, а не отталкиваетесь от субъективных ощущений.
Но освоить системный анализ, только применяя системный подход в жизни, не получится. Нужно будет изучить инструменты визуализации, методы моделирования, процесс разработки и так далее. Сделать это можно, например, на курсах.
Узнать больше о системном анализе можно на курсе Skillbox «Профессия Системный аналитик». На нём учат собирать и разрабатывать требования, подготавливать спецификацию и работать с языком SQL. В программе есть 30 часов практики для закрепления полученных знаний.
Главное о системном анализе в 4 пунктах
- Системный анализ в IT — поиск и описание наилучшего решения бизнес-проблемы с учётом системных характеристик и ограничений системы. За системный анализ отвечает системный аналитик.
- Единого алгоритма системного анализа нет, но есть этапы, которые проходят в большинстве случаев. Сначала системный аналитик выясняет, действительно ли существует проблема. Потом определяет задачу, находит способ её решения и создаёт техническое задание на разработку.
- Есть огромное количество методов и инструментов, которые можно использовать для системного анализа. Чаще всего используют моделирование, в частности моделирование бизнес-процессов, и инструменты визуализации вроде Draw.io, Miro и Camunda.
- Системному анализу можно научиться. Сделать это легче будет коммуникабельным людям с аналитическим складом ума и системным мышлением. Чтобы научиться проводить системный анализ, нужно начать применять системный подход в жизни и изучить инструменты визуализации, методы моделирования, процесс разработки и многое другое. Сделать это можно, например, на курсах.
Больше материалов Skillbox Media для тех, кто интересуется аналитикой
- Кто такой системный аналитик, как он помогает бизнесу и как им стать
- Business intelligence (BI): что это такое, зачем бизнесу BI-системы и как они работают
- Аналитическое мышление: что это такое и как его развить
- Главное о бизнес‑аналитике: как она работает и чем поможет компании
- Кто такой бизнес-аналитик, сколько он получает и что надо уметь для первой работы