Однако человек – не робот, и строгие правила хороши до поры до времени. Люди все чаще и чаще сталкиваются с необходимостью отступать от этих правил. Обычно это происходит там, где возникает необходимость управления так называемыми экстремальными проектами. Что делать в таком случае? Ответ очевиден: пойти к программисту и попросить его добавить в алгоритм бизнес-процесса еще одну ветвь. И тут на горизонте начинают маячить сразу две проблемы.
Во-первых, программист – это лишние затраты как времени, так и денег, и чем чаще к нему придется обращаться, тем меньше времени и денег останется на работу, непосредственно относящуюся к бизнесу компании. Оптимизация хороша тогда, когда сумма затрат на операционную деятельность после оптимизации и на саму оптимизацию не превосходит тех затрат, которые были до нее.
К тому же программист как человек, непосвященный в детали работы компании, не всегда правильно понимает то, что от него требуется. Такое недопонимание может привести к ошибкам в бизнес-процессах, которые в лучшем случае будут выявлены и исправлены, опять же с затратами времени и денег, а в худшем так и останутся в алгоритме, и, кто знает, к чему тогда они приведут.
Результатом осознания этой проблемы становится то, что многие компании просто-напросто решают ничего не менять в алгоритмах бизнес-процессов и терпеть каждый раз неудобство при их несоответствии окружающей действительности.
Во-вторых, каждая новая ветвь влечет за собой усложнение алгоритма. А очень сложный алгоритм – это вечная головная боль для сотрудников. К тому же особенно большие алгоритмы с помощью стандартных средств СЭД и ECM просто не реализуются.
Внимание: вопрос! Как сделать так, чтобы учитывались все возможные ситуации в бизнес-процессах, но при этом не было слишком сложных алгоритмов? Решение вопроса невозможно в стандартных ECM-системах. Однако не стоит горевать – выход есть всегда. И в данном случае этот выход можно выстроить на фундаменте Alfresco.
Как известно, Alfresco отличается от конкурентов своей гибкостью. На ее основе можно создавать практически что угодно. Как показала практика, для нашей непростой ситуации она подходит и даже очень.
Связанные бизнес-процессы
Часто случается так, что среди больших разветвленных бизнес-процессов находятся похожие, отличающиеся друг от друг лишь некоторыми отдельными пунктами. Многие, кто на практике общался с такими алгоритмами процессов, знают, что нередко они содержат одинаковые фрагменты, которые можно выделить.
Например, ряду компаний часто приходится собирать информацию о продукте – все равно, о своем или чужом. Сбор информации, как правило, подразумевает поиск в Интернете и различных бумажных архивах, проведение опросов, подсчет статистики, просмотр рекламных материалов и так далее. Все эти действия логично было бы объединить в отдельный дочерний бизнес-процесс, который в свою очередь можно будет вызывать из разных родительских. При этом дочерний процесс на уровне родительского будет выглядеть как одна стадия. Таким образом, происходит группировка многочисленных блоков и ветвей большого алгоритма в ограниченное число самостоятельных бизнес-процессов.
Рисунок 1. Моделирование схемы бизнес-процесса в Activiti Modeler
Такой подход позволяет руководителю контролировать выполнение ключевых этапов бизнес-процесса, не вдаваясь в их подробности, а его подчиненным отвечать за содержимое этих отдельных этапов.
Каждый дочерний процесс может, в свою очередь, состоять из процессов более низкого уровня. Таким образом, сложные бизнес-процессы, как правило, представляют собой древовидную структуру, состоящую из нескольких ярусов дочерних процессов.
Тот факт, что несколько стадий алгоритма группируются в дочерний бизнес-процесс, удобен еще и тем, что «конкретизировать» каждый этап можно и по ходу его выполнения. Как следствие, процесс можно менять даже после запуска. При этом для такого изменения не нужно срочно бежать к программисту – достаточно самим пользователям выбрать требуемые стадии. Таким образом, процесс можно начать, даже если его сложно формализовать, а такое случается нередко.
В результате сотрудники сами могут творить судьбу бизнес-процесса. А для упрощения этой задачи создаются шаблоны, на основании которых и строятся процессы. Шаблоны также можно редактировать. При этом внесение изменения в шаблон автоматически распространяет это изменение на все процессы, в которых он будет использоваться.
Рисунок 2. Создание связанного процесса при выполнении задачи сотрудником
Ясное дело, все должно работать в разумных пределах, то есть свободу тоже как-то надо ограничивать. Для этого устанавливаются правила порождения связанных процессов. Все манипуляции такого рода регламентируются настройками: какие процессы можно вызывать и когда, а также какие шаблоны менять допускается, а какие нет. Так, например, бизнес-процесс «Оплата счета» не допускает изменений и протекает по строго установленным правилам.
Таким образом, достигается золотая середина между строгими рамками фиксированных бизнес-процессов, в которых нельзя пошевелиться, и состоянием хаоса, когда каждый делает, что хочет.
Параллельное выполнение процессов
Теперь остановимся на взаимоотношениях процессов между собой. Тут возможно несколько вариантов.
Во-первых, дочерние бизнес-процессы могут выполняться строго последовательно. В таком случае следующая стадия главного процесса или следующий дочерний будут стартовать только после того, как завершится предыдущий бизнес-процесс. Такой подход не всегда удобен и требует больших затрат времени.
Во-вторых, возможен также вариант параллельного выполнения бизнес-процессов. Следующая стадия может стартовать, не дожидаясь завершения предыдущего процесса. Более того, родительский бизнес-процесс может пройти все стадии до конца, а инициированный где-нибудь в середине дочерний будет продолжать выполняться.
Для чего это нужно? Приведу пример. При запуске продажи нового продукта необходимо его рекламировать. Процесс рекламирования продукта может включать в себя различные этапы, которые, в свою очередь, могут выполняться последовательно, а могут параллельно. К таким этапам можно отнести рекламирование продукта на сайте компании, по телевизору, в прессе. При этом начать рекламную компанию лучше до запуска продаж, чтобы покупатели заранее знали о продукте необходимый минимум. Далее можно продолжать рекламировать продукт, если это потребуется. Таким образом, родительский процесс запуска продажи нового продукта может завершиться, а дочерний процесс рекламы все еще будет продолжаться. С помощью последовательного выполнения этого достигнуть бы не удалось.
Параллельное выполнение процессов значительно облегчает всем жизнь. Ведь теперь не надо ждать, пока закончится предыдущая стадия, то есть не надо тратить лишнее время. Руководитель родительского процесса может отслеживать состояния дочерних процессов: запущены ли они, кто контролирует выполнение и т.д.
***
Подводя итоги, можно сформулировать ключевые возможности «перестроения» сложных «негнущихся» бизнес-процессов в гибкие и понятные на базе Alfresco:
- выделение нескольких стадий бизнес-процесса в отдельный дочерний процесс, общий для нескольких глобальных бизнес-процессов;
- конструирование бизнес-процессов непосредственно во время их выполнения самими пользователями;
- формирование глобальных процессов из нескольких ярусов дочерних процессов;
- возможность параллельного выполнения дочерних процессов в родительском;
- возможность завершения родительского бизнес-процесса, не дожидаясь окончания выполнения всех дочерних процессов, входящих в него;
- отслеживание состояний выполнения всех стадий глобального бизнес-процесса.
- Alfresco (платформа Alfresco) – http://www.alfresco.com.
- VDEL (компания – представитель Alfresco в Восточной Европе и СНГ) – http://www.vdel.com.
- Alvex (реализация связанных процессов на базе Alfresco) – http://www.alvexcore.com.