Инженерия требований

Требования к готовым (коробочным) решениям

Коротко Когда вы покупаете готовый коммерческий пакет (commercial off-the-shelf, COTS) или подписываетесь на продукт по модели «ПО как услуга» (software as a service, SaaS), требования помогают выбрать подходящий вариант, а затем настроить, интегрировать и расширить его. Будьте готовы скорее менять свои процессы под пакет, чем наоборот.

По материалам: К. Вигерс, Дж. Битти, «Разработка требований к программному обеспечению», 3-е изд. (Microsoft Press, 2013), гл. 22.

На этой странице

Главные идеи#

Чем отличаются такие проекты#

  • Функции и экраны уже спроектировал вендор, поэтому детальные функциональные требования бессмысленны. Вигерс и Битти советуют работать на уровне вариантов использования или пользовательских историй и проверять, какой пакет их покрывает.
  • Вы адаптируете свои бизнес-процессы к пакету. При заказной разработке ПО подстраивается под процесс; здесь в основном наоборот.
  • Есть четыре типа внедрения, по возрастанию трудоёмкости: использование как есть; настройка (параметры, без кода); интеграция с существующими системами (обычно с некоторым объёмом собственного кода); расширение (разработка недостающих функций). Даже вариант «как есть» может потребовать изменений в среде, например обновлений операционной системы.

Усилия — по ставкам#

Чтобы выбрать программу для личной бухгалтерии, достаточно списка ключевых вариантов использования. Закупка для предприятия на многие миллионы долларов требует полных вариантов использования, а также требований к данным и к качеству. Авторы описывают выбор всего из трёх кандидатов для завода полупроводников, который занял шесть месяцев: усилия определяются стоимостью и риском, а не числом кандидатов.

Что специфицировать#

  • Пользовательские требования: варианты использования или истории для важных задач.
  • Бизнес-правила: можно ли настроить пакет под ваши политики? Кто обновляет глобальные правила, например расчёт налогов, когда они меняются, и стоит ли это дополнительных денег?
  • Требования к качеству: производительность (время отклика, число одновременных транзакций), удобство использования (привычные соглашения, обучение от вендора), гибкость (интерфейсы для расширения и сохранятся ли ваши доработки при обновлениях), функциональная совместимость, целостность и безопасность. Для SaaS внимательно изучите соглашение об уровне обслуживания (SLA).

Балльная оценка кандидатов#

Авторы приводят метод из четырёх шагов, который предложили Лоулис (Lawlis) и коллеги: 1. Задайте вес важности каждого требования от 1 до 10. 2. Оцените, насколько каждый пакет выполняет каждое требование: 1 — полностью, 0,5 — частично, 0 — не выполняет. Используйте документацию, ответы на ваш запрос предложений (RFP) и практические проверки. Требования с высоким приоритетом всегда проверяйте сами: ответы на RFP могут не совпадать с реальностью. 3. Сложите взвешенные оценки по каждому пакету. 4. Отдельно оцените стоимость, репутацию вендора, поддержку, внешние интерфейсы и соответствие техническим ограничениям. Сравнивайте стоимость после функционального соответствия, а не вперемешку с ним.

Добавьте тесты на основе высокоприоритетных вариантов использования, включая ошибочные ситуации, и прогоните их на каждом кандидате — это «операционный профиль» в терминах Мусы (Musa). Пусть хотя бы один человек участвует во всех оценках, чтобы баллы толковались одинаково.

Если кандидатов много, оценивайте в несколько раундов. В случае, который описывают авторы, 60 вендоров и 200 функций сократили до 16 кандидатов по 30 самым важным критериям, которые лучше всего различали варианты; затем до пяти финалистов по всем 200; каждого финалиста затем опробовали на реальном проекте. Практическая работа с реальными данными выявила расхождения между заявленным и фактическим поведением.

Требования к внедрению#

  • Настройка: по одному потоку процесса или варианту использования за раз, с опорой на руководство пользователя пакета; доступ настраивайте по матрице ролей и прав.
  • Интеграция: адаптеры (меняют интерфейсы или добавляют функции), брандмауэры (изолируют пакет от остальных систем) и обёртки (перехватывают и изменяют входы и выходы).
  • Расширение: для каждого разрыва решите, отказаться ли от требования, изменить процесс под пакет или построить «мост».
  • Данные: сопоставьте сущности и атрибуты; договоритесь, какие данные без соответствия будут потеряны при миграции.

Типичные трудности#

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

Пример#

«Мастерская», вымышленная сеть веломастерских, сравнивает три вымышленных пакета для записи.

Требование Вес Пакет A Пакет B Пакет C
Клиент записывается на время в выбранную мастерскую 10 1 1 1
Стойка приёма оформляет клиентов, пришедших без записи, и звонящих по телефону 8 1 0,5 1
SMS при изменении статуса ремонта 7 0,5 1 0
Поиск запчастей через интерфейс поставщика 6 0 1 0,5
Настраиваемые правила отмены 4 1 0,5 1
Взвешенная сумма (максимум 35) 25,5 29 25

Пакет B лидирует, но лишь частично поддерживает оформление клиентов, пришедших без записи, — потребность с большим весом. Прежде чем сравнивать стоимость, команда проверяет этот сценарий на практике вместе с сотрудниками стойки приёма.

Чек-лист#

  • Бизнес-цели определяют, что значит «достаточно хорошо».
  • Ключевые варианты использования и требования к качеству записаны, детальные функции — нет.
  • У каждого требования есть вес, и один и тот же оценщик участвует во всех сессиях.
  • Требования с высоким приоритетом проверены на практике.
  • Стоимость сравнивается после функционального соответствия.
  • По каждому разрыву принято решение: отказаться, изменить процесс или расширить пакет.
  • Доработки переживут обновления.
  • Сопоставление данных и допустимые потери данных согласованы.
  • Пользователи участвуют в выборе и в изменении процессов.

Источники и что почитать#

  • K. Wiegers, J. Beatty. Software Requirements, 3rd ed. Microsoft Press, 2013. Рус. изд.: К. Вигерс, Дж. Битти. Разработка требований к программному обеспечению, 3-е изд. М.: Русская редакция; СПб.: БХВ-Петербург, 2014. Гл. 22 (включая ссылки авторов на Лоулиса и соавторов и на Мусу).