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

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

1. UML

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

Уверен, что все, кто каким-либо образом замешаны в разработке ПО - видели UML-диаграммы. Это незаменимый инструмент, особенно в работе системного аналитика, когда необходимо понятно для всей команды описать интеграцию систем, например, с помощью диаграммы последовательностей.

Например, вот часть диаграммы, на которой описан процесс регистрации.

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

2. BPMN

Business Process Model and Notation (нотация моделирования бизнес-процессов) — это система условных обозначений, которая отображает бизнес-процессы с помощью блок-схем. BPMN диаграмма показывает в какой последовательности совершаются рабочие действия и перемещаются потоки информации.

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

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

Тут описана часть клиентского пути одного из реальных проектов.
Тут описана часть клиентского пути одного из реальных проектов.

3. Confluence

Confluence - wiki-подобная система для внутреннего использования организациями с целью создания единой базы знаний.

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

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

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

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

Поэтому переходим к следующему пункту.

4. Asciidoc + git

Столкнувшись с проблемами, описанными выше при работе в Confluence, мы с командой начали искать пути решения. Была предложена связка asciidoc + git. И это стало потрясающим открытием для меня.

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

Во-вторых, избавились от проблем с одновременной работой нескольких аналитиков над одним сервисом. Опять же, пришлось потратить некоторое время на создание репозиториев в git под каждый сервис и перенос туда существующей документации. Однако после этого можно было спокойно отводить ветки от мастер-ветки, вносить изменения, создавать MR (merge request). Опять же - удобно согласовывать MR между аналитиками и удобно отдавать их в разработку, т.к. git отлично отображает все изменений между ветками, в отличие от Confluence. В итоге вся документация из git, с помощью плагина git4c, вставлялась в Confluence, который также рендерил asciidoc в нормальный текст.

С Asciidoc я работал через IDEA. С помощью плагина AsciiDoc преобразует asciidoc в обычный текст. Выглядит это примерно так:

На этом мой базовый набор заканчивается. Если вы до сих пор пишите требования в Word/Excel, рекомендую попробовать, очень экономит время и силы.

Поделитесь в комментариях, если есть еще какие-то важные инструменты для работы аналитика.

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


  1. tas
    17.02.2022 10:37
    +7

    Как-то мухи с котлетами смешались - нотации и средства.

    Это все равно, что написать - а я вот в WORD документы делаю и у меня в документах есть текст, таблицы и схемы!

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

    2. BPMN - приведенная схема прекрасный пример того, как не нужно делать. Divide et impera - принцип для людей, но для процессов он тоже отлично подходит. Если на диаграмме больше 10 задач - выделяйте часть в отдельный подпроцесс. И понимать и сопровождать такое описание будет на порядок проще.

    3. Confluence - это инструмент. Нашли другой инструмент, который больше подходит именно вам - это просто отлично. Либо учитесь использовать Confluence, но не требуйте от него, чтобы он наладил вам рабочие процессы.


  1. DrRaznomazov
    17.02.2022 21:29

    Системный аналитик -очень широкое понятие. Знания нужны обширные. Зачастую, огромная работа проводится по построению моделей данных. Почему то автор игнорирует altova, oxigen и тучу бесплатных сайтов для построения api. Где swager? Где sql?


  1. Stas911
    19.02.2022 05:40

    Ну и где, наконец, SparxEA (да пребудет с ним сила)? Или он уже вышел из моды?

    Я бы еще добавил знание хотя бы Python/Pandas, ибо что за аналитик без возможности анализа данных? Мне как-то в бытность FA в банке пришлось помогать разбираться с одной проблемой, для которой нужно было сравнить состав КЛАДРов в нескольких системах (в нем, на минуту, более миллиона адресов на тот момент было). Простенький скрипт на питоне и дело в шляпе - в трех системах оказались загружены три разных версии КЛАДРа из-за чего периодически приходили странные отлупы в интерфейсах по несовпадению адресных данных клиентов.