Нефункциональные требования: список, который вспоминают перед релизом. Часть 1
Конспект статьи. Автор оригинала: Анастасия Нечепоренко (SiYa_renko, OTUS)
Первая статья серии о НФТ с акцентом на те, что напрямую влияют на деньги. Автор сравнивает систему с мотоциклом: кроме основной функции важны скорость, надёжность и безопасность.
Девять групп НФТ
- Производительность — скорость реакции при нагрузке.
- Масштабируемость — как меняется производительность при росте нагрузки (горизонтальная и вертикальная).
- Переносимость — оборудование, ОС, браузеры.
- Совместимость — отсутствие конфликтов с другими приложениями.
- Надёжность — частота критических сбоев.
- Сопровождаемость — время на устранение проблемы.
- Доступность — средний простой.
- Безопасность — защита системы и данных.
- Удобство использования.
Производительность
Ориентиры Якоба Нильсена: около 0,1 с воспринимается как мгновенная реакция, около 1 с — заметная задержка без потери мысли, около 10 с — полная потеря внимания. Многие посетители уходят, если страница грузится дольше 3 секунд. Примеры формулировок: лендинг при 5000 пользователей в час отвечает не дольше 6 с в Chrome на LTE; поиск выдаёт результаты за 3 с в 90% запросов. Нужно уточнять, что именно измеряется (ответ сервера или полная отрисовка), а задержки внешних API в требования к своей системе не включать.
Масштабируемость
Требования должны опираться на бизнес-прогноз: рост транзакций в 10 раз за 5 лет, рост IoT-устройств с 10 до 500 тысяч, +300% трафика в сезон. Для финтеха важны объём транзакций, для игр и стриминга — число пользователей.
Доступность
Доля времени в рабочем состоянии или доля успешных запросов. Формулируется от бизнес-ограничений: сколько простоя допустимо и какой ущерб он наносит. У разных компонентов могут быть разные SLA (платёжный модуль, лендинг, админка). Требования задаются отдельно для штатного режима, пиковой нагрузки и аварийных условий.
Автор: Анастасия Нечепоренко (SiYa_renko, OTUS)
Это конспект, пересказ основных идей. Полный текст, иллюстрации и примеры читайте в оригинальной статье.