При разработке и внедрении программного обеспечения часто применяется метод моделирования работы будущей информационной системы на данных, представленных заказчиком. Небольшие по объему, но разнообразные по содержанию данные называются «контрольным примером». В отличие от разработки детального технического проекта метод моделирования на данных контрольного примера менее трудоемок и может быть выполнен в сжатые сроки. Единственно важным условием для возможности его применения является наличие готовой подходящей программы — прототипа будущей информационной системы. Если мы имеем дело с программной платформой 1С, то в качестве программ — прототипов выступают так называемые «типовые программные продукты», например «1С:Бухгалтерия предприятия» или «1С:ERP Управление предприятием».
Основные этапы моделирования на данных контрольного примера следующие:
- Разработка сценариев моделирования (сценариев контрольных примеров)
- Сбор или разработка исходных данных для контрольных примеров
- Подготовка ожидаемых результатов для проверки контрольных примеров (вручную или с помощью исторических программных систем)
- Выполнение сценариев на контрольных примерах, демонстрация результатов пользователям заказчика
- Сбор замечаний и пожеланий в процессе демонстрации, оформление протокола демонстрации
- Анализ результатов, уточнение требований и подготовка списка функциональных разрывов (функциональных дефицитов).
В общем случае для моделирования нужно подготовить и данные для ввода в программу, и данные для проверки получаемых результатов.
В случае, если новое программное обеспечение внедряется для замены устаревшего, у команды внедрения появляется возможность провести моделирование работы как новой программы, так и специально подготовленной копии старой информационной системы.
Таким образом, команда внедрения на этапе планирования работ неизбежно встает перед выбором — какой подход выбрать? Выполнить моделирование на данных контрольного примера и в старой, и в новой программах, или выполнить моделирование только в новой программе?
Мы разберем детально оба подхода, их плюсы и минусы, и дадим свои рекомендации по выбору одного из них для моделирования в конкретном случае.
Подход «моделирование в старой и новой программе»
Для этого подхода входные данные контрольного примера нужно ввести как в старую, так и в новую программу.
Так как старая программа давно используется на предприятии, и наполнена реальными данными, возникает соблазн ничего в нее не вводить, а использовать ее данные «как есть». Но в этом случае возникает проблема. Как сравнить результаты, которые мы получим в новой программе, в которую введена ограниченная выборка данных, с полными данными в старой программе? Мы, конечно, можем сравнить отчеты по форме, но сравнить их по содержанию не представляется возможным. Что же делать? Вариант перенести реальные данные из старой программы в новую мы сразу исключаем. Причина — большой объем таких данных, и необходимость огромных трудозатрат на разработку конвертеров, перенос и сверку данных.
Остается единственный разумный вариант подготовки старой программы к моделированию. Необходимо сделать пустую копию информационной базы программы и наполнить ее теми же данными, что мы вводим в новую программу. После чего выполнить все сценарии контрольных примеров в обеих программах, получить и сравнить результаты.
Плюсами такого подхода являются:
- Отсутствие необходимости вручную готовить результаты контрольных примеров
- Возможность использовать инструкции по работе со старой программой как готовые сценарии для моделирования
- Возможность привлечь персонал заказчика для ввода данных в старую программу
- Высокое доверие к результатам, полученным в новой программе, если они совпадут с данными старой программы.
Однако, у этого подхода имеются и минусы:
- Необходимость готовить пустую копию информационной базы данных старой программы. Зачастую это нетривиальная задача. Удаление данных из копии базы может быть очень непростым делом и занимать значительное время
- Сложность сравнения результатов, если интерфейс, формы отчетов или алгоритмы старой и новой программ сильно отличаются
- Риск перенести ошибки старой программы в новую, если априори считать результаты старой программы точными
Подход «моделирование только в новой программе»
Для этого подхода входные данные контрольного примера вводятся только в новую программу. Так как старая программа отсутствует или не используется, при этом появляется задача определения, являются ли результаты, получаемые в новой программе, годными для использования.
Решается эта задача несколькими способами. Первый, и самый простой — это экспертная оценка таких результатов. Например, если новая программа выполняет бухгалтерские операции взаиморасчетов с контрагентами, то наличие проводок по дебету и кредиту бухгалтерского счета 62 на сумму реализации и сумму оплаты позволит эксперту считать программу пригодной к эксплуатации.
Второй способ — это сравнение результатов работы по форме с теми, что установлены нормативными документами, получаются вручную или с помощью старой программы. Например, если форма счета-фактуры соответствует установленной законодательством, принимается решение, что новая программа соответствует требованиям и не содержит функционального разрыва в этой части.
Ну и, наконец, третий способ проверки результатов — это ручной расчет выходных результатов на основе подготовленных входных данных и ручное заполнение всех необходимых печатных форм и форм отчетов. Такой способ является крайне трудоемким, но самым надежным. Например, для описанных выше случаев должны быть созданы таблицы с проводками по реализации, с указанием не только счетов в проводках, но и их сумм. Подготовлена и заполнена форма счета-фактуры с конкретными суммами в каждой строке и колонке. Этот способ позволяет абсолютно точно сравнить получаемые в новой программе результаты с требуемыми и принять решение о наличии или отсутствии функционального разрыва (функционального дефицита).
Плюсы этого подхода:
- Отсутствие необходимости готовить для проверки информационную базу старой программы
- Отсутствие необходимости вводить данные в две программы и сравнивать результаты
- Возможность избежать влияния ошибок старой программы на результаты.
Минусы тоже есть:
- Высокая трудоемкость ручной подготовки контрольного примера для сверки результатов, в случае, если требуется полная проверка программы на соответствие требованиям
- Риск ввести в эксплуатацию недостаточно адекватное решение, если для проверки используются только мнение экспертов и внешнее соответствие формам
Рекомендации по выбору подхода при внедрении программы в конкретном случае
Какой подход выберет проектная команда в каждом конкретном случае зависит от множества факторов. В списке ниже приведены значимые факторы для выбора:
- Предпочтение заказчика. Если у заказчика уже сложился определенный подход к моделированию, лучше всего использовать его. Это вызовет больше доверия к результатам моделирования
- Размер выделяемого бюджета. Так как метод с использованием старых и новых программ требует ввода данных в две программы, этот подход может оказаться дороже. Но только в том случае, если для новой программы не требуется детальный, подготовленный вручную контрольный пример для сверки результатов. Подготовка такого примера в общем случае более затратна, чем ввод данных в две программы
- Соответствие старой и новой программ по функционалу. В случае, если соответствие близкое, программы похожи, лучше выполнить моделирование в обеих программах. Например, для программ «1С:Управление производственным предприятием» и «1С:ERP Управление предприятием» моделирование в старой и новой программах будет вполне рабочим подходом. В случае, если программы сильно различаются, такое моделирование может быть затруднено или и вовсе невозможно. Скажем, бесполезно будет сравнивать самописную программу планирования производства на FoxPro с алгоритмами, заложенными в ту же «1С:ERP Управление предприятием».