259. Когда одной схемы процесса уже мало

Продолжаю периодически вытаскивать из закромов разные способы рисовать процессы и системы.

Сегодня про UML.

Само название немного пугает. Unified Modeling Language звучит, будто сейчас придётся открывать учебник на 600 страниц и ловить флешбеки из университетской жизни.

На практике всё проще. Не пугайтесь.

⚡️ UML это не одна схема, а целый набор способов посмотреть на систему с разных сторон.

Причём именно на систему, а не только на отдельный бизнес-процесс.

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

И в какой-то момент этого вам станет маловато.

Например, у нас есть менеджер собственной персоной, Битрикс, 1С, юрист и какой-нибудь внешний сервис. Все они участвуют в одном процессе, что-то друг другу передают, чего-то друг от друга ждут, на какие-то действия как-то реагируют.

Сам процесс быть может и понятен. А вот что конкретно происходит между его участниками уже не очень.

❗️ Тут UML как раз начинает быть полезен.

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

🤘 Менеджер что-то сделал в CRM. CRM отправила данные в другой сервис. Сервис вернул результат. После этого система создала задачу сотруднику.

И вместе с этим довольно сложная логика начинает уютно помещаться на одном листе.

😈 Мне в таких схемах нравится ещё одна штука.

Они хорошо показывают ожидания.

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

На диаграмме последовательностей такая странность видна буквально глазами.

Три независимых действия почему-то выстраиваются в цепочку и сразу возникает классический вопрос автоваза.

〰А зачем?

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

⚡️ Собственно, наверное, поэтому UML мне нравится не как язык для аналитиков или разработчиков. Это ещё один инструмент, который помогает разобраться, как должна быть устроена система.

Особенно когда в процессе начинают одновременно участвовать люди, кони и другие сервисы.

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

И чаще всего несколько стрелочек UML объясняют эти связи сильно быстрее, чем три страницы технического задания.

Вот и думайте.

#систематизируйэто

@M3ubeev


В этом посте были ссылки, но мы их удалили по правилам Сетки