Кто отвечает за нефункциональные требования

«Кто отвечает за нефункциональные требования» — вопрос из категории Требования и ТЗ, который задают на 23% собеседований Менеджер Проектов. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Нефункциональные требования (NFR) — зона ответственности всей команды, но ключевые роли распределены так:

  1. Product Owner / Бизнес-аналитик — формулирует NFR (например, нагрузка 1000 RPS, отказоустойчивость 99.9%).
  2. Архитектор / Tech Lead — проектирует решение под эти требования (выбор СУБД, кеширование, балансировка).
  3. Разработчики — реализуют (например, пишут код с ретраями для отказоустойчивости).
  4. DevOps / SRE — обеспечивают инфраструктуру (мониторинг, автоскейлинг).
  5. QA — проверяют NFR через нагрузочное тестирование.

Пример кода для NFR (отказоустойчивость):

import requests
from retrying import retry

@retry(stop_max_attempt_number=3, wait_fixed=2000)
def call_external_service():
    response = requests.get("https://api.example.com")
    response.raise_for_status()
    return response.json()

PM координирует процесс, следит за соблюдением NFR в рамках сроков и бюджета.