Зачем нужно моделировать индивидуальные и типовые сценарии?
Постановка задачи
Для простоты представим, что предприятие структурно разделено на два уровня. (В общем случае уровней может быть сколько угодно).
На уровне предприятия производятся следующие работы:
- Формулируются требования к предприятию в целом и выявляются ограничения, накладываемые внешними условиями;
- Определяются производственные мощности предприятия;
- Формулируются стратегические цели предприятия и текущие планы (задания);
- Задания для предприятия декомпозируются на задания для подразделений. При этом учитываются возможности отдельных подразделений;
- Задания передаются подразделениям.
На уровне подразделения производятся следующие работы:
- Задания для подразделения валидируются на предмет возможности их выполнения;
- В случае успешной валидации задачи для подразделения декомпозируются на задания исполнителям;
- Исполнители выполняют задания;
- Анализируется ход выполнения этих заданий;
- Анализируется ход выполнения заданий подразделения в целом;
- Анализируются завершенные операции, как на уровне исполнителей, так и на уровне подразделения в целом;
- На основе собранных фактов определяются производственные возможности каждого исполнителя;
- Находятся узкие места, требующие усиления;
- Анализируются производственные возможности подразделения в целом, и информация об этом передается на уровень предприятия.
На уровне предприятия работа продолжается:
- Принимается и анализируется информация о ходе выполнения фактических работ;
- Изучаются фактические возможности подразделений;
- Эта информация используется для определения узких мест и возможности их усиления;
- Эта же информация используется для определения производственных возможностей предприятия в целом.
Таким образом, в каждой структурной единице приходится выполнять следующие работы:
- Валидировать поступающие с верхнего структурного уровня задания;
- Создавать планируемые сценарии планируемых работ, которые по замыслу их создателя должны привести к выполнению заданий, пришедших с верхнего структурного уровня;
- Валидировать планы, и на их основе создавать задания, которые назначать конкретным исполнителям;
- Выполнять задания;
- Анализировать результаты выполненных работ;
- На основе полученных данных производить корректировку планируемых работ, и координацию этих изменений как со смежными единицами, так и с верхней структурной единицей;
- Поддерживать знание о производственной мощности каждого исполнителя;
- С целью повышения производительности находить и «расшивать» узкие места;
- Вычислять суммарную производственную мощность структурной единицы в целом. Информацию об этом передается как смежным единицам, так и на уровень выше.
Пусть перед ИТ отделом стоит задача: необходимо автоматизировать следующие функции:
- Моделирование операций и сценариев на основе типовых схем;
- Сравнение полученных результатов с планируемыми;
- Корректировка планов.
Введение
Я хочу объяснить, почему для решения подобной задачи использование обычного движка workflow не годится. Существуют ограничения, о которых я расскажу.
Планирование работ обычно происходит путем множества «забросов», где каждый «заброс» — это сценарий будущих работ. Каждый сценарий содержит некоторое количество планируемых операций, расположенных на временной оси и связанных между собой логическими условиями, например такими:
- После завершения операции 3 начнется выполнение операции 5;
- Результат операции 5 будет играть роль вспомогательного инструмента в операции 6.
Существует разница между индивидуальным сценарием и типовым сценарием. Чтобы объяснить разницу между ними, я прибегну к аналогии со строительным проектом.
Пример из области строительства
Представьте себе, что вы планируете построить собственный дом. Для такого строительства нужен проект. Проект делает проектная организация. Вы заказываете разработку проекта вашего будущего дома в проектной организации, где вас спрашивают: вам разработать типовой проект, или индивидуальный? При этом типовой стоит 20000 рублей, а индивидуальный — 200000, то есть, на порядок дороже! Для ответа на этот вопрос вы должны знать, чем типовой проект отличается от индивидуального.
Отличие в том, что типовой проект не адаптирован под конкретные условия. Конкретные условия — это (в том числе) геология и рельеф местности. Например, уклон в 30 градусов на песчаном склоне, затапливаемом в половодье.
Представьте себе, если на таком склоне будет построен дом на ленточном фундаменте, так как указано в типовом проекте. Понятно, что он долго не простоит — его смоет. Чтобы такой дом стоял долго, его надо поставить на сваи, которые придется бить на глубину, достаточную, чтобы упереться в материнское основание и с частотой, которая способна выдержать нагрузку сползающего слоя песка. Если бы вы заказали индивидуальный проект, то расчет такого фундамента вам сделает проектная организация. В типовом проекте вы не найдете свайный фундамент, потому что типовой проект рассчитан на типовые условия.
Пусть в проекте указано, что в качестве щебенистой фракции в бетоне, который идет на заливку перекрытия, необходимо использовать гранитный щебень фракции 20–50. Но местный производитель готов поставить только известняковый. Покупать же гранитный щебень невероятно дорого! Вопрос: можно ли заменить гранитный щебень на известняковый? Проектная организация, зная местные условия, может произвести замену материала, перечитав допустимые нагрузки, и предложить залить перекрытие бетоном толщиной не 20 см, а 30 см. Правда, для этого придется заменить фундаментные блоки на монолитный ростверк, что приведет к удорожанию фундамента. Поэтому возникает вопрос, что дешевле: привезти гранитный щебень, или пойти на удорожание фундамента? Если вы закажете индивидуальный проект, то эти вопросы задаст вам исполнитель проектных работ. Он же даст и ответы на них. Если же вы купите типовой проект, то вам придется задавать эти вопросы самостоятельно и решать их на свой страх и риск.
Если вы достаточно опытный строитель, если готовы провести экспертизу типового проекта и оценить возможность его адаптации к конкретным местным условиям, то вам для работы достаточно типового проекта. Если же вы не обладаете нужным опытом, то стоит заказать индивидуальный проект.
Пример из области управления производством
Индивидуальный сценарий отличается от типового сценария тем же: на основе типового сценария создается индивидуальный сценарий. Создается он путем адаптации его (типового сценария) к конкретным условиям: конкретным датам и конкретным исполнителям, материалам и проч.
Типовой строительный проект требует «посадки на местность». Это значит, что достаточно будет указать координаты углов и отметку высоты, чтобы типовой проект начал приобретать черты индивидуального. Для типового сценария «посадка на место» означает привязку к конкретному времени: указание времени начала выполнения. Эту «посадку» может осуществить движок автоматически.
Типовой проект требует адаптации под местные строительные материалы, геологию и рельеф. Для типового сценария это означает, что его надо адаптировать под конкретные условия и конкретных исполнителей. Адаптация эта будет выглядеть как назначение конкретных исполнителей на роли, корректировку планируемых длительностей операций, замену одних операций на другие, или изменение порядка операций и тд.
Зачем моделировать сценарии?
Так есть ли необходимость в моделировании индивидуальных или в моделировании типовых сценариев?
Правило для выбора объекта автоматизации гласит: для автоматизации надо выбирать те функции, автоматизация которых принесет пользу. Это значит, что автоматизации подлежат часто встречающиеся случаи (даже, если автоматизация каждого из них дает небольшой экономический эффект), а также редко встречающиеся случаи, но автоматизация каждого из которых дает большой экономический эффект (например, путем снижения рисков).
Типовые сценарии требуют адаптации к реальным условиям с частотой от «почти никогда» до «почти всегда».
Надо ли моделировать индивидуальные сценарии, или не надо, надо ли моделировать типовые, или не надо — зависит от выгоды, извлекаемой из этого моделирования.
Когда мы можем не моделировать индивидуальные сценарии?
- Когда отклонения планируемых сценариев от типового происходят редко, и анализ этих отклонений не дает ощутимой выгоды.
Когда мы вынуждены моделировать индивидуальные сценарии?
- Когда отклонения индивидуальных сценариев от типового происходят часто;
- Когда отклонения происходят редко, но анализ этих отклонений дает ощутимую выгоду.
Итак, можно сделать вывод, что моделирование индивидуальных сценариев нужно, когда они (сценарии) часто отклоняются от типового, или, когда идет непрерывное улучшение производственного процесса.
Когда можно не моделировать типовые сценарии?
- Когда отклонения планируемых сценариев от типового сценария происходят очень часто.
Когда надо моделировать типовые сценарии?
- Когда отклонения планируемых сценариев от типового сценария происходят редко.
Формулировка проблемы
Теперь вернемся к вопросу, почему для решения поставленной выше задачи нельзя использовать обычный инструмент workflow.
В постановке задачи есть пункты:
- Моделирование операций и сценариев на основе типовых схем;
- Сравнение полученных результатов с планируемыми;
- Корректировка планов.
Эти функции нельзя автоматизировать, если в информационной системе не будут храниться модели планируемых сценариев.
Есть редакторы диаграмм Ганта, которые позволяют строить модели планируемых сценариев.
Однако могут возникнуть две задачи:
- Может понадобиться типовой сценарий, поскольку отклонения индивидуальных сценариев от типового случаются редко. Это решается путем создания типовой диаграммы Ганта;
- Может понадобиться моделировать ветвление планируемого сценария в зависимости от условий, складывающихся в процессе выполнения работ. Эта задача с помощью диаграммы Ганта уже не решается.
Есть нотация BPMN. Эта нотация предназначена для моделирования типовых сценариев, но в ней нельзя создать модель индивидуального сценария.
Вывод
На сегодняшний день я не нашел информационной системы или нотации, которые предложили бы моделирование как типовых, так и индивидуальных сценариев с учетом ветвлений. Скорее всего, я мало искал. Если кто-то знает подобные системы, сообщите, пожалуйста!
Спасибо за внимание!