Протестированный программный продукт должен быть внедрен. Внедрение системы охватывает весь процесс внедрения программного обеспечения, перенос данных из старой системы, обучение пользователей и системных администраторов, поддержка пользователей системы и внесение исправлений для устранения ошибок, обнаруженных после развертывания.
Внедрение программного продукта содержит ряд различных шагов. Точный процесс отсутствует, поскольку обстановка, в которой программное обеспечение внедряется, существенно варьируется у различных клиентов. Однако, как правило, необходимы следующие виды деятельности:
- развертывание программного продукта, т. е. инсталлирование (установка) на «железо». Для более сложных, распределенных систем полезны UML-схемы развертывания, которые описывают локализацию программного обеспечения на различные аппаратные узлы, в том числе:
- Выпуск (release). Выпуск следует за процессом разработки. Он включает в себя все виды деятельности, подготавливающие систему для ассемблирования (перевод в машинный код) и передачу клиенту. В ходе этой деятельности определяют также ресурсы, необходимые для работы у клиента.
- Установка (инсталлирование) и активизация программного обеспечения – запущенные компоненты устанавливают на компьютеры-серверы, где они должны впредь работать. Более сложные системы также нуждаются в инсталлировании прочего поддерживающего программного обеспечения (например, новая версия процессора баз данных, и т.д.). Часто большую систему устанавливают в нескольких средах – например, в дополнение к тестовому серверу, который может быть впоследствии использован для обучения пользователей и для других целей.
- Адаптация и обновление – в процессе обновления устанавливают новую версию системы, адаптации – это также изменение системы, но ее основанием является, главным образом, изменение в клиентской среде.
- перенос данных из старой системы – в используемой ранее системе имеются, как правило, данные, которые следует использовать и в дальнейшем. Желательно создание инструмента автоматического переноса данных, который запускают однократно при переносе данных из старой системы к новую. Механизм переноса может быть довольно сложным, особенно если структуры данных старой системы и новой системы существенно различаются. Если совокупность данных – небольшая и / или выработка алгоритма автоматического преобразования чрезмерно сложна, можно данные переносить вручную. В этом случае может понадобиться создать рапорты для извлечения данных из старой системы и формы (средства) для ввода данных вручную во внедряемую систему;
- внесение изменений в другие приложения, которые должны работать совместно и / или которых используют вместе развертываемым с программным продуктом;
- подготовка и проведение обучения людей, соприкасающихся с программным продуктом, согласно следующим ролям:
- обычные пользователи
- администраторы
- поставщики услуг сопровождения
Обучение должно охватывать как теоретическую, так и практическую части. Практическую часть желательно проводить в созданной среде (как программное обеспечение, так и данные), созданной для тестирования и / или обучения, прежде всего для предотвращения рисков в интересах конфиденциальности, доступности и целостности реальных данных;
- создание состояния готовности при управлении кризисной ситуацией и для поведения в кризисных ситуациях. Возможные кризисы при внедрении программного продукта:
- отказ программы в рабочей среде
- обнаружение в программе ошибок
- потери данных.
Ошибка в программном продукте может привести к приостановке бизнес-процессов, значительный экономический ущерб и ущерб репутации предприятия или учреждения государственного сектора. В ходе подготовки к кризисной ситуации согласовываются роли, процессы и управление: как поступать в кризисной ситуации, как общаться с пользователями и теми, кто занимается регулированием кризисной ситуации, как и когда, информировать общественность, как при необходимости и возможности использовать старое программное обеспечение и прочее.
Люди также являются риском при внедрении программного обеспечения. Особо это может проявиться при внедрении программного обеспечения впервые, когда может произойти сильное противостояние внедрению. Часть из этих рисков можно преодолеть при помощи вышеупомянутого обучения. Вдобавок, необходимо продумать ежедневные процедуры. Могут ли используемые до сих пор процедуры функционировать теперь таким же образом, если будет использоваться программная система? Часто нет. Это может обусловить большую человеческую путаницу и добавить противостояние к обновлениям. Таким образом, в дополнение к техническому обучению, как использовать программное обеспечение, следует обучать работников обдуманно, научить их думать по-новому.
Например, как после введения цифровой (дигитальной) системы управления документами поступить со счетом, чтобы его смог бы перечислить бухгалтер? Или как может ученик после внедрения новой учебной информационной системы узнать о переэкзаменовках, если больше такую информацию не вывешивают на стене? Говоря в общем, при внедрении программного обеспечения может понадобиться перепланирование необходимых бизнес-процессов, у которого есть две стороны – согласование бизнес-процессов, которое представляет организационную точку зрения, приемка и одобрение, которое представляет точку зрения индивидуума.
Кейперс Джонс (Capers Jones) делится следующими рекомендациями (best practices) в своей книге « Software Engineering Best Practices», которыми можно воспользоваться во время этапа внедрения:
- Объединяйтесь с сетью пользователей того же самого приложения (если эта сеть существует)
- Просите совета и рекомендации по внедрению программного обеспечения у нынешних пользователей программного обеспечения
- Находите консультантов, у которых есть опыт по внедрению.
- Побеспокойтесь о создании подходящих специализированных курсов и находите соответствующие курсы.
- Приспосабливайте программное обеспечение для местных нужд.
- Создавайте интерфейс между новым разработанным программным обеспечением и заменяемым программным обеспечением.
- Регистрируйте и сообщайте об ошибках и дефектах, которые возникают во время внедрения.
- Устанавливайте патчи и обновления производителя программного обеспечения.
- Оценивайте успешность нового приложения.
Согласно этому же автору этап внедрения может быть очень длинным, даже 12 месяцев, и потребовать работу нескольких десятков людей и около 1 миллиона долларов наличными.
Программное обеспечение, которое не создается непосредственно для данной фирмы, может потребовать также довольно долгой и тщательной настройки прежде, чем его вообще можно будет использовать.
Ранее описанное внедрение программного продукта скорее является однократным действием. В соответствии с моделью жизненного цикла программного обеспечения затем следует фаза сопровождения (поддержки), которая по существу продолжается до тех, пока программное обеспечение остается в эксплуатации.
В связи с изменениями в бизнес-среде, законодательстве, ведении бизнеса необходимо приводить программное обеспечение в соответствие со временем (обновлять), также требуется, чтобы выявленные ошибки программного продукта были бы исправлены. Это помогает осуществлять управление изменениями программного продукта в согласованном порядке, в этом также помогают специальные CASE-средства, которые позволяют сообщать об ошибках в продуктах или о необходимости исправлений; задавать приоритеты требованиям об изменениях на основе важности, критичности и пр., направлять на выполнение исправлений, управлять версиями программного обеспечения и т.д.
Кроме того, вышеописанные этапы внедрения присутствуют, по крайней мере, частично, при проведении значительных изменений в программном обеспечении (например, добавляя новую функциональность)