System Design Space

    Глава 51

    Обновлено: 15 февраля 2026 г. в 21:30

    Software Requirements (short summary)

    Прогресс части0/14

    Software Requirements (Разработка требований к программному обеспечению)

    Авторы: Karl Wiegers, Joy Beatty
    Издательство: Microsoft Press, 2013 (3rd Edition)
    Объём: ~670 страниц

    Классика от Карла Вигерса: уровни требований, техники выявления, приоритизация MoSCoW и Kano, управление изменениями.

    Software Requirements — оригинальная обложкаОригинал
    Разработка требований к программному обеспечению — переводПеревод

    Ключевые концепции

    Уровни требований

    • Business Requirements — цели бизнеса
    • User Requirements — что пользователи смогут делать
    • Functional Requirements — поведение системы
    • Non-functional — качественные атрибуты

    Quality Attributes

    • Performance (latency, throughput)
    • Scalability (load growth)
    • Availability (uptime)
    • Security, Maintainability, Usability

    Stakeholders

    Разные stakeholders имеют разные требования. Важно идентифицировать всех заинтересованных лиц и понять их приоритеты. На интервью это помогает задавать правильные уточняющие вопросы.

    Use Cases

    Описание взаимодействия пользователя с системой. Включает основной сценарий и альтернативные пути. Помогает не упустить edge cases при проектировании.

    Структура книги

    Part I

    Software Requirements: What, Why, and Who

    Основы: что такое требования, почему они важны, роли в процессе. The Business Analyst роль. Requirements engineering как дисциплина.

    Part II

    Requirements Development

    Elicitation (выявление), Analysis (анализ), Specification (документирование), Validation (валидация). Техники интервью и воркшопов.

    Part III

    Requirements for Specific Project Types

    Agile проекты, пакетные решения, outsourcing, embedded systems, business intelligence.

    Part IV

    Requirements Management

    Управление изменениями, версионирование, traceability, повторное использование требований.

    Техники выявления требований

    Интервью

    Структурированные и неструктурированные беседы со stakeholders. Открытые вопросы для исследования, закрытые — для уточнения.

    Наблюдение

    Наблюдение за пользователями в их рабочей среде. Помогает выявить неосознанные требования и реальные workflows.

    Прототипирование

    Быстрые прототипы для валидации понимания требований. Помогает обнаружить пробелы на ранних стадиях.

    Приоритизация требований

    На интервью часто просят определить MVP или приоритизировать функции. Вигерс предлагает несколько подходов:

    MoSCoW

    • Must have — обязательно для релиза
    • Should have — важно, но не критично
    • Could have — желательно
    • Won't have — не в этом релизе

    Kano Model

    • Basic — ожидаемое (must be)
    • Performance — чем больше, тем лучше
    • Excitement — wow-эффект

    Типичные ошибки

    ❌ На интервью

    • Сразу прыгать к решению без уточнения требований
    • Не спрашивать о масштабе и нагрузке
    • Игнорировать нефункциональные требования
    • Не уточнять приоритеты фич

    ✓ Как правильно

    • Начать с бизнес-контекста и целей
    • Определить основные use cases
    • Уточнить SLA/SLO (availability, latency)
    • Согласовать scope и приоритеты

    Применение на System Design интервью

    Чек-лист вопросов (из книги):

    Кто основные пользователи системы?
    Какие основные сценарии использования?
    Какой ожидаемый объём данных/трафика?
    Какие требования к latency и availability?
    Какие ограничения (бюджет, сроки, технологии)?
    Что точно НЕ входит в scope?
    Какие интеграции с внешними системами?
    Какие требования к безопасности?

    Главные выводы

    Требования — это не список фич, а иерархия от бизнес-целей до деталей
    Нефункциональные требования часто важнее функциональных
    Приоритизация — ключевой навык при ограниченных ресурсах
    Уточняющие вопросы в начале экономят время на переделку
    Scope creep — главный враг успешного проекта
    Хорошие требования — testable, measurable, traceable

    Где найти книгу