Программное обеспечение: сопровождение, разработка, продвижение и обслуживание

Программное обеспечение сегодня пронизывает все сферы нашей жизни. От пользовательских приложений на смартфонах до сложных корпоративных систем - без программного обеспечения невозможно представить работу современных компаний. От качества разработки, внедрения и последующего сопровождения ПО во многом зависит конкурентоспособность бизнеса. Давайте разберемся, что такое сопровождение ПО и почему оно так важно.

Понятие сопровождения программного обеспечения

Сопровождение программного обеспечения - это процесс улучшения, оптимизации и устранения дефектов ПО после передачи его в эксплуатацию. Цель сопровождения - поддерживать и повышать качество ПО, добавлять новую функциональность, повышать удобство использования.

В процессе сопровождения программного обеспечения могут вноситься следующие изменения:

  • Исправление ошибок
  • Улучшение быстродействия и надежности
  • Адаптация к новым устройствам и ОС
  • Добавление новых функций

Сопровождение программного обеспечения может осуществляться как на постоянной основе в рамках договора, так и периодически по мере необходимости. Обычно услуги по сопровождению оговариваются с компанией-разработчиком ПО.

Стандарты сопровождения ПО

Процесс сопровождения программного обеспечения достаточно хорошо стандартизован. Существуют международные и российские стандарты, регламентирующие сопровождение ПО:

  • ГОСТ Р ИСО/МЭК 12207-2010
  • ГОСТ Р ИСО/МЭК 14764-2002
  • IEEE 1219

Эти стандарты помогают четко определить процессы и этапы сопровождения программного обеспечения.

Крупным планом трое программистов сидят за столом и смотрят на экран компьютера, на котором отражается программный код в их очках. Они выглядят сосредоточенными, печатая на нескольких клавиатурах и устройствах на столе вокруг них

Место сопровождения ПО в жизненном цикле

Сопровождение программного обеспечения является одной из фаз жизненного цикла ПО. Она следует за этапом внедрения ПО в эксплуатацию и длится вплоть до вывода ПО из эксплуатации.

По статистике, на долю сопровождения приходится около 2/3 от общей продолжительности жизненного цикла ПО.

Сопровождение vs поддержка ПО

Иногда понятия "сопровождение ПО" и "поддержка ПО" употребляют как синонимы. Однако есть различия:

  • Поддержка ПО - более узкое понятие, включает консультирование пользователей и оперативное реагирование на их запросы.
  • Сопровождение ПО - более широкий процесс, нацеленный на эволюционное улучшение и развитие ПО на протяжении всего жизненного цикла.

Таким образом, поддержка ПО является одной из задач процесса сопровождения.

Виды сопровождения программного обеспечения

В зависимости от целей выделяют несколько основных видов сопровождения программного обеспечения:

Корректирующее сопровождение

Направлено на исправление ошибок, дефектов и неполадок, выявленных в процессе эксплуатации ПО. Является реакцией на конкретные проблемы.

Адаптивное сопровождение

Предполагает внесение изменений в ПО для обеспечения совместимости с новыми аппаратными или программными компонентами инфраструктуры.

Совершенствующее сопровождение

Ориентировано на расширение функционала ПО, повышение удобства использования, производительности и других качественных характеристик.

Профилактическое сопровождение

Направлено на предотвращение возможных проблем в работе ПО путем диагностики и упреждающих действий. Относится к проактивному подходу.

Помимо этого, сопровождение программного обеспечения может быть:

  • Регламентным или по запросу
  • Дистанционным или с выездом к заказчику
  • С различной периодичностью оказания услуг

Таким образом, существует множество моделей организации процесса технического сопровождения программного обеспечения, зависящих от потребностей и возможностей заказчика.

Процесс сопровождения программного обеспечения

Процесс сопровождения программного обеспечения строится на основе цикла Деминга PDCA:

  1. Планирование сопровождения
  2. Выполнение запланированных работ
  3. Проверка результатов
  4. Анализ и корректировка процесса

Концепция сопровождения ПО

На этапе планирования разрабатывается концепция или стратегия сопровождения программного обеспечения. Этот документ определяет цели, задачи, виды, объемы и сроки сопровождения. Концепция позволяет спланировать ресурсы и бюджет сопровождения.

План сопровождения ПО

На основе концепции формируется детальный план сопровождения программного обеспечения. В нем описываются:

  • Роли и ответственность участников процесса
  • Необходимые технические и человеческие ресурсы
  • Конкретные способы и сроки исполнения задач
  • Формы отчетности и взаимодействия

План сопровождения ПО служит руководством к действию для команды сопровождения.

Вид сверху на современный профессиональный офис с большим количеством столов, на которых работают программисты за компьютерами и различными электронными устройствами, кабели ведут по полу, рядом окно с синим небом снаружи

Связь сопровождения ПО с эволюцией

Процесс сопровождения тесно связан с эволюцией программных систем. Согласно исследованиям Мэнни Лемана, деятельность по сопровождению представляет собой эволюционную разработку ПО.

В процессе эксплуатации программные системы постоянно развиваются, растет их сложность. Без специальных усилий по упрощению они становятся все менее понятными и трудными в сопровождении.

Законы эволюции ПО

На основе анализа динамики развития программных систем Леман сформулировал несколько эмпирических законов их эволюции:

  1. Постоянные изменения. ПО должно регулярно изменяться, иначе оно устареет.
  2. Увеличение сложности. Сложность ПО со временем растет, если не предпринимать меры по ее снижению.
  3. Саморегуляция сложности. Эволюция ПО направлена на минимизацию роста его сложности.

Понимание этих законов позволяет принимать верные решения в процессе сопровождения программного обеспечения.

Реактивное и проактивное сопровождение

По источнику возникновения задач выделяют два подхода к сопровождению ПО:

  • Реактивное сопровождение - ответ на запросы и инциденты от пользователей.
  • Проактивное сопровождение - самостоятельные действия по улучшению ПО.

Эффективное сопровождение должно включать оба этих подхода. Реактивное решает острые текущие проблемы, проактивное обеспечивает стратегическое развитие ПО.

Баланс реактивного и проактивного подходов

Соотношение реактивных и проактивных работ должно поддерживаться в оптимальном балансе. Смещение в сторону реактивных задач приводит к "гашению пожаров", не оставляя ресурсов на развитие. И наоборот, чрезмерный акцент на новых фичах в ущерб оперативному реагированию снижает лояльность пользователей.

Организация процесса сопровождения

Существует несколько моделей организации сопровождения программного обеспечения:

  • Внутренняя - силами штатных ИТ-специалистов
  • Внешняя - привлечение стороннего подрядчика
  • Смешанная - сочетание внутренних ресурсов и аутсорсинга

Структура команды сопровождения

В составе команды сопровождения типично выделяют несколько ролей:

  • Руководитель
  • Системный аналитик
  • Программист
  • Тестировщик
  • Специалист техподдержки

Инструменты для сопровождения ПО

Для эффективной работы команде сопровождения необходим набор специализированных инструментов:

  • Система учета запросов и ошибок
  • Средства тестирования и отладки
  • СУБД и хранилища данных
  • Инструменты разработки и сборки ПО
  • Системы мониторинга работоспособности

Применение таких инструментов повышает эффективность команды и сокращает трудозатраты на рутинные операции в рамках сопровождения программного обеспечения.

Договор и SLA по сопровождению ПО

Правовой основой сопровождения ПО является договор, который определяет права и обязательства сторон. Дополнением к договору служит SLA (Service Level Agreement) - соглашение об уровне услуг.

В SLA оговариваются:

  • Показатели качества сопровождения
  • Целевые уровни показателей
  • Методики измерения показателей
  • Ответственность сторон

Таким образом обеспечивается прозрачность процесса сопровождения программного обеспечения для заказчика.

Ценообразование на услуги сопровождения ПО

Существует несколько базовых моделей ценообразования на услуги по сопровождению программного обеспечения:

  • Почасовая оплата труда специалистов
  • Фиксированный ежемесячный платеж
  • Оплата конкретных выполненных задач

Выбор модели зависит от потребностей и приоритетов заказчика, а также вида сопровождаемого ПО.

Факторы стоимости сопровождения ПО

На стоимость услуг по сопровождению программного обеспечения влияют следующие факторы:

  • Объем и сложность ПО
  • Требуемое время реакции
  • Необходимый уровень доступности системы
  • Количество пользователей системы

Окупаемость затрат на сопровождение ПО

Затраты на сопровождение программного обеспечения должны окупаться за счет эффектов от его использования. К таким эффектам относятся:

  • Повышение производительности труда сотрудников
  • Снижение издержек бизнес-процессов
  • Увеличение объемов и качества оказываемых услуг
  • Получение новых конкурентных преимуществ

Для оценки окупаемости применяют показатели ROI, TCO и другие финансовые метрики. Грамотный анализ помогает обосновать инвестиции в сопровождение и развитие программного обеспечения.

Риски при организации сопровождения ПО

Существует ряд рисков, которые необходимо учитывать при организации процесса сопровождения программного обеспечения:

  • Недостаточная квалификация команды
  • Нарушение регламентов и стандартов
  • Несоблюдение сроков исполнения задач
  • Превышение бюджета на сопровождение

Способы минимизации рисков

Для снижения рисков рекомендуется:

  • Тщательный подбор и обучение команды
  • Внедрение регламентов и контроль их исполнения
  • Применение гибких технологий управления проектами
  • Мониторинг показателей сопровождения и бюджета

Главное - на этапе планирования предусмотреть возможные проблемы и заложить меры по их нейтрализации.

Статья закончилась. Вопросы остались?
Комментарии 0
Подписаться
Я хочу получать
Правила публикации
Редактирование комментария возможно в течении пяти минут после его создания, либо до момента появления ответа на данный комментарий.