arrow

назад

Потому что вы совершаете грубые методологические ошибки

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

Простите, но это не редкие исключения, которые можно обнаружить исключительно в эксплуатации. Это базовые сценарии жизненного цикла сотрудника, подлежащие исследованию при анализе процесса.

Я задал автору несколько уточняющих вопросов (а вдруг передо мной начинающий коллега, ну бывает же). Выяснилось, что это была первая подобная автоматизация в компании, а сам Алексей не имел опыта архитектурного проектирования. Первоначальное решение содержало около 30–50 активностей, но после последовательных доработок выросло до "502 нод, 74 веток выполнения и 111 переменных". Накопился технический долг, потребовался рефакторинг.

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

Подмена анализа реализацией

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

Отказ кандидата выйти на работу или прекращение трудовых отношений во время адаптации не являются неожиданными событиями. Для их выявления не требуется знание конструктора Битрикс24. Требуется исследование предметной области. Разумеется, невозможно предусмотреть абсолютно все, но между неизвестными будущими обстоятельствами и невыявленными базовыми сценариями существует принципиальная разница.

Смешение бизнес-процесса и его автоматизации

Автор сообщает о разделении приема и адаптации на два самостоятельных БП. Однако что именно изменилось: границы организационных процессов или структура их автоматизированной реализации? Это разные архитектурные уровни. Бизнес-процесс определяется деятельностью организации, ее целями и результатами, а автоматизированное решение реализует логику поддержки этой деятельности. Разделение технического шаблона на два не обязательно означает изменение архитектуры бизнес-процессов организации.

Недостаточное управление изменениями

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

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

Ложная альтернатива

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

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

Именно поэтому меня удивляет не история первого проекта и не необходимость рефакторинга. Ошибки случаются, особенно при освоении новой технологии. Меня удивляет профессиональный вывод Алексея.

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

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

И это вопрос не к возможностям Битрикс24, а к методологии анализа и проектирования.

repost

81

input message

напишите коммент


5 комментов

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

0

ответить

Иван, ознакомился с вашим разбором. По ряду замечаний с вами согласен. В частности, отказ кандидата или увольнение во время адаптации действительно нельзя назвать какими-то редкими исключениями. Это вполне стандартные сценарии, которые необходимо учитывать при проектировании. Возможно, в первоначальном посте я не совсем корректно донес основную мысль. Хотелось бы немного дополнить контекст самого проекта. Изначально это была автоматизация процесса оформления сотрудников. В дальнейшем, на протяжении примерно одного года, функциональность постепенно расширялась, появлялись новые требования, дополнительные этапы и сценарии взаимодействия между подразделениями. Разумеется, это не отменяет необходимости предварительного анализа. Какие-то моменты действительно стоило предусмотреть раньше. Но, на мой взгляд, здесь важно разделять изначально неучтенные требования и новые потребности бизнеса, возникшие уже в процессе эксплуатации. Что касается разделения приема и адаптации, речь шла именно о переработке технической реализации Битрикс24. В частности, нам требовалось разделить жизненные циклы и отдельно учитывать продолжительность каждого этапа. Саму организационную структуру бизнес-процессов мы не меняли. По поводу технического долга тоже не спорю. Собственно, накопившаяся сложность решения и стала одной из причин, по которым сейчас занимаемся его рефакторингом. И отдельно соглашусь с замечанием о ложной альтернативе. Предварительный анализ и последующие доработки действительно не противоречат друг другу. Изначально хотел поднять немного другую тему. Насколько глубоко на практике удается проработать требования до начала разработки и как коллеги управляют изменениями, когда функциональность процесса существенно расширяется со временем. В любом случае спасибо за содержательный разбор. Есть над чем подумать.

0

ответить

Алексей, благодарю за обстоятельный ответ и дополнительные пояснения 👍🏻 Теперь контекст проекта стал мне значительно понятнее. Особенно ваше уточнение о том, что первоначально автоматизировался только процесс оформления, а дальнейшее усложнение решения было связано в том числе с расширением функциональных требований. Это действительно несколько меняет картину😌 И скорее полностью соглашусь с вашим уточненным вопросом. Глубина предварального анализа и управление изменениями на протяжении жизненного цикла решения представляют собой гораздо более интересную тему для профессиональной дискуссии. Мы часто совершаем непреднамеренные ошибки, и только наш собственный опыт "набивания шишек" самый ценный. Мне будет интересно почитать другие ваши материалы по профессиональной теме. Хоть что-то содержательное и новое в ленте бизнес-аналитиков 😌

0

ответить

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

0

ответить

Смотря о чем будете писать 😅 Ретроспективу очень важно проводить, потому что с опытом и течением времени мы учимся подмечать то, о чем раньше могли даже не иметь представления. Я еще весной писал об этом статью на GBAK 😌

0

ответить

еще контент автора

пост закреплён — пока закрепить можно только один пост

trash bin
перейти к нему не получится