Наверняка все слышали выражение, что работать нужно не 12 часов, а головой.
Правильный подход к моделированию – это залог того, чтобы «работать головой», потому что именно моделирование позволяет вам разложить/представить сложные объекты в виде простой схемы, простого рисунка, набора диаграмм и выявить скрытые проблемы, которые, как правило, приводят потом к двенадцатичасовой работе на этапе внедрения.
Своим опытом моделирования я начал делиться на Инфостарте уже давно – еще в 2016 году я выступал с докладом на тему практики применения UML для проектирования бизнес процессов и информационных систем. И сегодня у меня завершающий доклад в этой серии.
Что бывает, если не проводить моделирование
Расскажу несколько кейсов про то, что проводить моделирование важно.
-
Первый кейс – не поняли друг друга. Мы выполняли проект по ТКВ (технологии корпоративного внедрения), где первым этапом было предпроектное обследование, в рамках которого разрабатывалась концепция автоматизированной системы. И вот мой коллега сдаёт концепцию, показывает, как реализуются те или иные элементы концепции в системе – ген. директор понял, руководитель проекта со стороны заказчика тоже понял, а представители производственного блока не поняли, поэтому пришлось подключаться мне. Я сделал достаточно простую модель (на слайде представлено, как она выглядела). Но даже такая простая схема помогла нам наладить взаимопонимание с заказчиком, и, к счастью, проект не сорвался – мы начали внедрять, нам в этом помогло грамотное моделирование.
-
Второй кейс – на предыдущем месте работы при сдаче работ вылез незапланированный процесс. В этом кейсе, тоже из моей практики, я выполнял проект для производственной компании Москвы, с которой до этого работал на протяжении многих лет – я думал, что знаю об этой компании вообще всё. В один прекрасный момент генеральный директор мне предложил сделать большой и интересный проект по переходу с 7.7 на 8.2 – работы было примерно на год. На финальной процедуре сдачи работ директор (он же собственник) принимает систему, проверяет, как она работает, ему все нравится – я уже потираю руки. И тут он просит меня показать, как работать с пробниками. А я ничего про это не знаю. Работая с этим директором на протяжении многих лет, я думал, что знаю про его компанию все, поэтому при разработке новой системы мы сделали небольшое формальное ТЗ, систему бизнес-процессов не описывали, и данный процесс упустили. К счастью, я тогда довольно быстро справился, за пару недель нарисовал бизнес-процесс. В объеме годового проекта это были не существенные убытки.
-
Третий кейс – не те метаданные использовали. Это был проект для транспортного подразделения буровой компании, где мы делали систему учета автотранспорта. Все было хорошо, мы прописали бизнес-процессы, но выбрали не тот объект метаданных – взяли регистр сведений вместо того, чтобы сделать документами. В итоге нам пришлось на протяжении трех месяцев переделывать обработку по распределению автомобилей на рейс. Сейчас мне кажется, что если бы мы тогда сделали технический проект и нормальную модель метаданных, мы бы эту проблему сразу увидели и поняли, что объект метаданных нужен другой.
Я надеюсь, что дал вам понять, что бывает, если не проводить моделирование на проектах. А теперь поговорим, как моделирование может помочь нам улучшить наши проекты.
Как моделирование помогает улучшать работу на проекте
-
Очевидно, что всё в голове удержать невозможно, а если вы раскладываете бизнес-процессы по полкам, то вы можете учесть даже самые незаметные нюансы – вам легче представить, что вас ожидает на проекте.
-
Сотрудники увольняются, болеют и т.д., проблема передачи информации возникает очень часто, и формализованные схемы в этом очень помогают.
-
Кроме того, моделирование очень помогает при согласовании документации. Процесс моделирования я запускаю и когда внедряю на стороне исполнителя, и в случае, если работаю inhouse – в обоих случаях это очень помогает найти общий язык между заказчиком и исполнителем.
В этой презентации я хочу вам передать мое видение процесса моделирования.
Всегда, когда я на каком-то новом месте работы поднимаю проблему моделирования, мне говорят – это долго, дорого, сложно, важнее решить текущие проблемы, научи людей писать ТЗ и т.д. Нет! Это не сложно, не дорого и не долго, это просто нужно делать, подходить к этому с головой, интегрировать все в текущие процессы – в тот же процесс написания технического задания. Тогда все будет достаточно просто. И это действительно помогает.
Моделирование в 1С
Ранее я на Инфостарте представлял доклады:
-
Практика применения UML для проектирования бизнес-процессов и информационных систем (2016 год) – это доклад по нотации моделирования UML;
-
Находим взаимопонимание с заказчиком с применением Enterprise Architect (2019 год) – это большой доклад про Enterprise Architect, который позволяет строить модели на UML;
-
а сегодня я буду рассказывать про то, как интегрировать процесс моделирования непосредственно в ваши рабочие процессы, в процесс управления проектами, в процесс исполнения задач внутреннего заказчика.
Обратите внимание, слева на слайде промоделирована сказка «Курочка Ряба». В каждую из своих презентаций я вставляю какую-то сказку на UML. В том году была «Репка», до этого – «Три поросенка». Главное, что при описании в нотации UML сразу понятно, о чем сказка.
В каком порядке запускать процесс моделирования
Итак, именно в таком порядке я призываю вас запускать процесс моделирования:
-
сначала вы выбираете нотацию моделирования – определяетесь с тем что хотите моделировать и как;
-
затем выбираете CASE-средство, на базе которого будете запускать процесс моделирования;
-
и только затем, проработав нотацию и выбрав CASE-средство, вы внедряете это в ваши процессы.
Выбор нотации моделирования
В нашей отрасли существует два аспекта, которые необходимо учитывать при разработке модели:
-
Поведенческая модель => диаграммы поведения:
-
Диаграмма деятельности
-
Диаграмма состояний
-
Диаграмма use-case
-
И др.
-
Логическая модель => структурные диаграммы:
-
Диаграмма классов
-
Диаграмма компонентов
-
Диаграмма объектов
-
И др.
Согласно логической модели, в любом проекте существует:
-
предприятие, которое мы автоматизируем;
-
программный продукт, с помощью которого мы автоматизируем;
-
и люди, которые работают с этим программным продуктом по определённым инструкциям.
В итоге у нас есть:
-
поведенческая модель – то, как люди работают с этим продуктом (в каком порядке вводят те или иные документы, в каком порядке используют интерфейсы)
-
и есть логическая модель – взаимосвязи тех объектов, которые используются в рамках деятельности.
Например, есть процесс ввода заказа, значит в поведенческой модели будет бизнес-процесс регистрации заказа, а в логической модели будет заказ, связанная с ним нормативно-справочная информация (контрагенты и т.д.).
Для моделирования я предлагаю использовать диаграммы UML – например, диаграмму деятельности для моделирования бизнес-процессов.
Я очень призываю не усложнять – не нужно стараться использовать какие-то сложные нотации, начните с самого простого. Я применяю диаграмму use-case, классов и деятельности. И все.
Что такое вообще модель
Модель – это разложение сложного объекта по простым осям, в понятные и простые ракурсы.
Например, таким ракурсом для предприятия может быть оргструктура, состав бизнес-процессов, сами бизнес-процессы, бизнес-правила, объекты, используемые на данном предприятии.
Другим примером является всем известный «Дом ARIS», когда у нас предприятие раскладывается на диаграммы:
-
диаграмма организационной структуры;
-
слева – диаграмма взаимосвязей объектов (как связаны продукты, клиенты и заказы клиентов);
-
справа – диаграмма функции предприятия (из каких функций состоит формирование заказа);
-
и посередине мы получаем диаграмму бизнес-процесса, которая объединяет все эти взгляды на разные стороны предприятия.
На выходе должен получиться очень простой документ – «положение о моделировании». Для себя я его сделал 10 лет назад и с тех пор его ношу с собой по всем компаниям, немного адаптируя.
Давайте посмотрим, как этот документ выглядит.
Здесь мы описываем те модели, которые мы применяем на наших проектах, и дальше по каждой модели описываем, зачем она нам нужна, как она строится и т.д.
Прямо сюда я вставляю скриншоты из CASE-средства. И таким образом, любой сотрудник, взяв такое положение о моделировании, может пройти определенные этапы, определенные шаги, которые описаны в положении о моделировании, и получить на выходе модель, которую уже потом передать другому сотруднику, и она будет понятна благодаря тому, что правила составления этой модели описаны, формализованы, и все в компании их применяют.
Выбор CASE-средства. Enterprise Architect
Почему нужно использовать CASE-средство, а не Visio?
-
После моего предыдущего выступления коллега сказал, что Enterprise Architect – это классное средство для превращения потока сознания в системный вид. И это действительно так. Сегодня мы немного посмотрим на Enterprise Architect, почему он помогает привести поток сознания в системный вид.
-
CASE-средства, в отличие от просто «рисовалок» сокращает время на работу с моделями, потому что там очень много специализированных интересных инструментов по поиску тех или иных объектов, по организации взаимосвязей элементов и т.д.
-
Кроме того, CASE-средства часто содержат специализированные инструменты. Тот же Enterprise Architect позволяет управлять проектом, там присутствует простая система управления проектами.
-
К тому же Enterprise Architect имеет API – мы интегрировали его с СППР.
-
И в отличие от Visio такие профессиональные средства намного больше подходят для работы с моделями.
Давайте посмотрим, как Enterprise Architect помогает в работе.
Начнем с того, что однажды мне на вход прилетел протокол совещания, на базе которого нужно было составить техническое задание.
Давайте посмотрим, что было в этом протоколе.
-
Во-первых, они отметили, что согласовали функциональные требования.
-
Затем, они написали, что они хотят, чтобы базы данных лежали на разных устройствах
-
Дальше они написали, что в автономные базы должны выгружаться данные по основным средствам и номенклатуре.
-
И т.д.
То есть они в линейный список засунули разнородные требования, которые касаются и архитектуры, и требования функциональности. Это только в первом разделе.
Во втором разделе еще больший поток сознания был. Чтобы что-то из этого сделать, как-то это систематизировать, я применил Enterprise Architect.
Как я это сделал:
-
все требования, которые были в протоколе, я наложил на диаграмму:
-
Каждое требование связал с бизнес-процессом,
-
предположил, какой объект метаданных в рамках этого бизнес-процесса может использоваться.
-
Дальше разложил бизнес-процессы на составляющие
-
Также сделал связь с требованиями
-
И получился абсолютно понятный состав объектов метаданных.
Как видите, поток сознания, который был на входе, превратился в понятную, логически связанную модель, где мы, начиная от требований дошли до объектов метаданных, описали бизнес-процессы.
Кроме того, CASE-средство позволяет составить матрицу трассировки – вы видите, какой бизнес-процесс из какого требования родился и понимаете, почему он там появился.
Кроме этого, вы можете прямо здесь, как в MS Project вести план – конечно, функциональность здесь простая, но в ряде случаев вполне хватает.
Кроме этого, здесь есть специализированное средство поиска элемента на диаграммах – вы можете сразу найти, на какой диаграмме этот элемент находится. Тут еще очень много возможностей, можно даже документы выводить напрямую – тоже очень удобно.
Но моделирование ради моделирования – бессмысленно. И если вы делаете модель, ее очень здорово передать потом клиенту и согласовать.
Самый простой пример, где можно использовать модель – это, конечно же, в техническом задании. Непосредственно в техническое задание мы вставляем модель процесса и дальше по каждому из объектов метаданных, которые в этом процессе участвуют, описываем требования к этому объекту метаданных.
Людям это всегда понятно и нравится. И именно такой формат позволяет с одной стороны быстрее найти взаимопонимание с Заказчиком, с другой стороны, уменьшить риски на следующих этапах.
Итак, где можно использовать CASE-средство (на примере Enterprise Architect):
-
Для обработки протоколов совещаний
-
Для формирования диаграмм зависимостей на основе результатов протоколов, планирования по проекту и т.д.
-
Для формирования ТЗ с моделями
Организация процесса моделирования для выполнения проекта
Итак, мы с вами поговорили про нотации моделирования, про CASE-средства, и теперь переходим к самому интересному – к организации процесса моделирования для выполнения проекта.
Процесс моделирования можно встроить в любую технологию, например, в 1С:ТКВ, про которую мы сегодня будем говорить.
Выявление требований на основе системы шаблонов
Чтобы правильно построить модель, нужно правильно выявить требования на проекте. Из недавнего негативного примера – коллега в разделе требований написал: «На данный момент ВГО элиминируется приблизительно в Excel». Кем элиминируется? Зачем элиминируется? Почему приблизительно? Непонятно. Так делать конечно нельзя.
Чтобы правильно выявить требования, должен быть понятный формат описания этих требований.
На слайде показана таблица с шаблоном по выявлению требований, которую я всегда использую при описании бизнес-процесса. Эту же таблицу я вставляю прямо в протокол встречи.
Сотруднику понятно, что на входе, какое действие он с этими документами выполнил, и что на выходе.
На основании этой таблицы нам очень просто описать бизнес-процесс и связать требования с моделями.
Кросс-классификация требований
Далее – важно определить правильный уровень требований.
Часто при сборе требований вам говорят «система должна обеспечить план-фактный отчет», а рядом сидит девушка-оператор, которая говорит «и обязательно с красной кнопкой». Это требования разного уровня.
Если вы попробуете на этапе разработки концепции какое-то требование не учесть, вас, конечно, не поймут. Я предлагаю следующую идеологию: когда вы выявляете требования, то записываете их все, но работаете только с теми требованиями, которые соответствуют этапу проекта.
Например, на этапе определения требований и разработки концепций вы работаете с бизнес-требованиями высокого уровня, остальные просто фиксируете и прорабатываете на последующих этапах.
На слайде показан пример выявления функциональных требований и требований к надежности.
-
на уровне бизнес-требований они формулируются достаточно высокоуровнево;
-
при продвижении по проекту мы, соответственно, их уточняем и детализируем;
-
и в конце доходим до качественных характеристик – время формирования, какому макету должна соответствовать форма и т.д.
Формализация описания требований
Важно научиться формализовать требования:
-
например, использовать стандартный набор фраз: Система должна обеспечить... формирование отчета на основании данных системы… с ограничениями… не более чем за… секунд…
-
второй вариант – требования можно формулировать в виде сценария (мне этот вариант нравится больше, но он сложнее, потому что его сложнее правильно систематизировать):
-
А. Пользователь вводит…
-
Б. Система выполняет обработку данных по алгоритму.
-
В. Система выполняет регистрацию данных в ….
-
Г. Пользователь на основе зарегистрированных данных получает отчет по форме. На основании данных отчета пользователь принимает решение… (выполняет действие)
-
Не важно, какой вариант вы выберете, важно, что вы это делаете осознанно, и требования формулируете в какой-то одной парадигме на всех проектах.
Кстати, при описании сценариев также не забываем про то, что сценарии должны делиться на уровни:
-
Бизнес-процессы
-
Сценарии работы пользователя с системой
-
И т.д.
Процесс изменения моделей от требований
Итак:
-
у нас есть модель нашего предприятия, которую мы построили;
-
дальше нам на вход приходит какое-то требование об изменении этого процесса;
-
и у нас таким образом получается новая модель.
То есть модель в процессе выполнения проекта меняется, но то, как она изменяется, регулируется требованиями.
Документирование требований
Здесь на слайде я собрал некоторые типы документов по формализации требований, которые встречал в своей карьере.
Например, бизнес-требования можно формализовать в документе:
-
BRD;
-
ТЗ;
-
«Функциональные требования»;
-
«Спецификация требований» и др.
В документы бизнес-требований удобно включать модели, которые написаны во второй строке:
-
организационная структура;
-
схема функциональной структуры (состав бизнес-процессов);
-
бизнес-процессы и т.д.
Требования к функциям автоматизированной системы удобно описывать в документах:
-
ТЗ (ближе к техпроекту);
-
Частное техническое задание;
-
Технический проект.
В документы функций автоматизированной системы удобно включать модели:
-
Логическая структура объектов АС;
-
Представление объектной модели;
-
Схема БД;
-
Взаимосвязи объектов.
Но обратите внимание, что:
-
на каждом уровне требований у нас свой документ;
-
для каждого уровня работы над проектом у нас своя модель.
Алгоритм работы с требованиями
Итак, алгоритм работы с требованиями заключается в том, что:
-
Сначала мы выявляем требования в стандартном шаблоне
-
Дальше – мы классифицируем требования по уровню и типу
-
И включаем требование в подходящий для уровня документ
Интеграция моделей в автоматизированную систему
Вообще сейчас очень интересный тренд наметился – это интеграция модели в автоматизированную систему, которая разработана по этой модели.
-
Классический пример, который все знают, это интеграция СППР, где модель построена в нотации IDEF0 в систему ERP 2 (KA 2) – у нас непосредственно в системе ERP есть кнопка, вы нажимаете, например, в приходном ордере кнопку и понимаете, какой бизнес-процесс поддерживается этим документом, какие документы можно ввести впоследствии на основании этого документа.
-
И второй вариант уже из моей практики – это интеграция сценариев в ВРМ (про него я сейчас подробнее расскажу).
Недавно мы делали небольшой проект по интеграции множества систем (мобильные приложения, автоматизированная банковская система, CRM, личный кабинет). Все эти программные продукты интегрировались между собой с помощью BPM-системы, которая выполняла роль обработчика сценариев.
-
Например, мобильное приложение при установке запрашивает у BPM-системы по номеру телефона, есть ли у нас такой клиент.
-
BPM-система маршрутизирует сообщение в CRM, АБС, определяет наличие клиента и возвращает ответ на мобильное приложение.
Поскольку таких типов взаимодействий между BPM-системой и всеми приложениями у нас было порядка трех тысяч – разумеется, подрядчики начали в них теряться. Поэтому:
-
мы включили в BPM-систему описание бизнес-сценариев;
-
и каждый тип сообщения привязали к бизнес-сценарию.
Данное действие помогло нам упростить взаимоотношения с подрядчиками – подрядчики намного проще стали понимать, в каком сценарии (при каком взаимодействии) какой ID сообщения им нужно применять.
Подбор аналитика для организации процесса моделирования
Но мало того, что вам нужно построить процесс моделирования, вам еще нужно подобрать для этого подходящего специалиста. Сегодня я вам подскажу, какие вопросы нужно задать аналитику, чтобы убедиться, что аналитик – это действительно аналитик, а не тот, кто проверяет «А налито ли у всех?»
Для оценки персонала я использую матрицу, которая показана на скриншоте. В колонке я пишу фамилию кандидата, а далее задаю ему определенные вопросы и отмечаю, насколько данный специалист подходит мне по выбранным критериям (я не ставлю ему оценку по его знаниям, я проверяю, насколько он мне подходит). Например:
-
я разбираюсь с профессиональным опытом.
-
в разделе «выявление требований» я разбираюсь с тем:
-
как он понимает требования;
-
понимает ли он, что требование – это характеристика будущей системы или он записывает весь поток сознания в бумажный вид;
-
понимает ли он, что такое управление требованиями;
-
какие у него подходы к разработке модели и т.д.
-
Пройдя по такому опроснику, вы уже поймете – перед вами аналитик или же тот, который умеет «галочки ставить».
Как запустить процесс моделирования
Итак, давайте подытожим – что нужно сделать, чтобы запустить процесс моделирования:
-
Сначала мы правильно организуем работу с требованиями (мы их выявляем, классифицируем, строим модели)
-
Потом организуем хранение этих моделей и процессы по их обновлению – обеспечиваем доступ всех участников к этим моделям.
-
И подбираем аналитика, который способен выполнять эти пункты – правильно выявлять требования, правильно строить модели на основании требований, документировать это и передавать заказчику.
А для того, чтобы запустить процесс управления требованиями, вам достаточно:
-
подобрать нотацию;
-
выбрать CASE-средство;
-
запустить процесс моделирования на исполнение.
Открытые вопросы
У меня остался набор открытых вопросов для которых я для себя не определил однозначного ответа. О которых, возможно, имеет смысл дискутировать:
-
На всех моих выступлениях я слышу вопрос: «Мы же используем типовую систему… нужно ли ее описывать полностью?» Пока, я для себя сделал такой вывод – что описывать систему полностью не нужно, потому что процесс работы с основными средствами, например, практически у всех одинаковый, поэтому можно просто поставить квадратик – основные средства, и все. А те процессы, которые имеют вариативность, описать в виде бизнес-процессов.
-
Нужно ли строить две модели – AS IS и TO BE? Я считаю, что не нужно, потому что вместо модели AS IS можно использовать протоколы интервью, поэтому я строю только модель TO BE. Но иногда возникают мысли, что может быть, все-таки имеет смысл описывать две модели. Хотелось бы услышать ваш опыт, ваше мнение.
-
Мне не дает покоя идея «Исполняемых бизнес-процессов» – это очень интересная нотация BPMN. Имеет ли право на жизнь идея исполняемых бизнес-процессов в рамках проектов на 1С, я пока для себя не нашел однозначного ответа.
-
И еще один вопрос – нужно ли моделировать «до объектов метаданных»? Нужно ли делать модель метаданных для передачи ее программисту? Иногда я это делаю, когда мне необходимо объяснить схему регистров программисту, но всегда только частично, чтобы у программиста оставалась свобода выбора метода реализации.
*************
Данная статья написана по итогам доклада (видео), прочитанного на онлайн-митапе "Инструментарий руководителя проекта".