Хочу поделиться с вами историей из релизного ада ⚙️🔥.
Есть у нас система со строгим процессом: для каждого релиза нужно готовить мега-артефакт. Один из ключевых разделов — описание логики через UML-диаграмму последовательностей. Без неё никуда.
К счастью, эту работу теперь ведёт другой аналитик, так что я могу наблюдать этот эпик со стороны 🍿🍿.
А главным героем нашей истории выступает согласующий эксперт. Его запрос —
А если пользователь откажется? Где эта ветка?
А почему не показан поход в сервис... за...?
В соответствии с замечаниями в диаграмму вносятся правки, она растёт вширь и вглубь, постепенно превращаясь в бесконечную портянку. Основные потоки теряются среди альтернативных, и кажется, что для просмотра хотя бы всех линий жизни сиквенса нужен отдельный большой монитор 🖥️.
Так мы дошли до 4-го релиза. Эксперт открывает эту огромную простыню и сокрушается, что не понимает, где посмотреть произошедшие изменения относительно прошлой версии...😵💫
Наш аналитик глубоко задумался и распилил всё на две отдельные диаграммы: "Существующие сценарии" и "Новые сценарии". Значительно легче не стало, но это лишь отсрочка решения.
Я вангую, что когда в 5-м или 6-м релизе изменения будут точечными (новая ветка, дополнительный вызов микросервиса и пр.), вопрос вернётся бумерангом. Ведь к тому моменту уже всё окажется внутри "Существующих сценариев", а новые правки уже будут разбросаны 🌪️ по всей диаграмме.
Вот так шаг за шагом, как мне кажется, мы добрались до потери самого смысла визуальной модели.
Вы сталкивались с подобным? Как разрешали противоречие между требованиями эксперта? 👇
#визуализация #uml