Модуль 12.1. 100 вопросов системному аналитику на собеседовании
Технические и продуктовые блоки; «вопросы на системного аналитика» и ориентиры ответов. Плюс чек-листы, анти-паттерны, мини-кейсы.
Формат: ниже — 100 реальных вопросов, сгруппированных по темам. К каждому — что проверяют, сильный ответ (тезисы) и типичная ошибка. Не заучивайте формулировки — понимайте trade-off’ы и приводите свой кейс (CAR/STAR: Context–Action–Result).
Как смотрят на кандидата (быстро)
- Junior: грамотность терминов, базовые модели (BPMN/UML), аккуратность в SRS, способность учиться.
- Middle: автономность, интеграции/API, трассируемость/RTM, качественные AC/BDD, владение NFR/наблюдаемостью.
- Senior/Lead: архитектурное мышление (C4/DDD), риск-менеджмент, эволюция контрактов/данных, CCB/депрекейшн, фасилитация конфликтов.
Блок 1. Роль и границы SA (8 вопросов) — [1–8]
1. Чем системный аналитик отличается от бизнес-аналитика?
Что проверяют: понимание «что» vs «как».
Сильный ответ: BA формулирует ценность/бизнес-цели/«что», SA проектирует решение/«как»: контракты, данные, интеграции, NFR, согласование с архитектором/QA/DevOps. Пояснить зону перекрытия и handoff (Vision→SRS→контракты).
Ошибка: «BA — про людей, SA — про технику» без примеров и границ.
2. Границы с архитектором и разработчиком?
Проверяют: ответственность.
Ответ: SA — требования и спецификации (SRS, OpenAPI, ER, BPMN/DMN, NFR, RTM), варианты и ограничения; архитектор — ADR/схема компонентов/технологии; разработчик — реализация.
Ошибка: подмена ADR «по вкусу» SA.
3. Что такое артефакт SA?
Ответ: SRS, RTM, OpenAPI/AsyncAPI, ER/словари, BPMN/DMN, AC/BDD, NFR-каталог, C4 L1–L2, Change Log.
Ошибка: перечисление «документов» без связей.
4. Как меряете успех своей работы?
Ответ: «Доля требований с AC/BDD → 100%; дефекты по требованиям ≤ X; время ответа на уточнение; соответствие SLO; выпуск без срочных CR; on-time процент».
Ошибка: только «сдали в срок».
5. Пример компромисса между идеалом и сроками.
Ответ: фичефлаг + additive-change, частичный релиз, отложенные миграции.
Ошибка: «мы просто поднажали».
6. Как формализуете «неясное» требование?
Ответ: протокол Elicitation, примеры/контрпримеры, AC в Given-When-Then, прототип, Decision Record.
Ошибка: «спрашиваю у PO и пишу как сказали».
7. RACI по фиче.
Ответ: SA — R за SRS/контракты/RTM; PO — A за scope/ценность; Tech Lead — C; QA — C; DevOps — C; Support/Data — I.
Ошибка: все «в ответе за всё».
8. Как работаете с рисками?
Ответ: журнал рисков (вероятность/влияние/владелец/план), превентивно — фичефлаги, kill-switch, canary; откат — roll-forward.
Ошибка: «обсуждаем на стендапе».
Блок 2. Elicitation/приём требований (10 вопросов) — [9–18]
9. Чем интервью отличается от воркшопа?
Проверяют: техники фасилитации.
Ответ: интервью — глубина/персона, воркшоп — коллаборация/конфликты/приоритеты, используем «1-2-4-All», Parking-lot.
Ошибка: «воркшоп — то же самое, но много людей».
10. Какие виды требований?
Ответ: бизнес/пользовательские/системные; функциональные/нефункциональные; ограничения; правила (DMN).
Ошибка: свалить всё в «user stories».
11. Как снимаете конфликт требований?
Ответ: интересы vs позиции, матрица влияния, варианты + trade-off, CCB/DR, протокол решения.
Ошибка: голосование без критериев.
12. Техники приоритизации?
Ответ: MoSCoW, WSJF (Cost of Delay/Duration), RICE, Kano; для баг-фиксов — риск/влияние/SLO.
Ошибка: «берём, что проще».
13. Как фиксируете решения?
Ответ: Decision Record (контекст-варианты-решение-последствия, review date), линк в SRS/тикет.
Ошибка: «в комментариях Jira».
14. Как работать с «TBD»?
Ответ: нумерация TBD-ID, владелец/дата/риск, в DoD — «TBD=0/допустимо N с дедлайнами».
Ошибка: «потом уточним».
15. Что спросите на первом созвоне?
Ответ: цель/метрика успеха, ограничения/зависимости, пользователи/персоны, процессы AS-IS, источники данных, регуляторика, рычаги принятия решений.
Ошибка: «когда дедлайн?».
16. Пример «плохого требования» и как исправите.
Ответ: «быстро» → p95/p99/окно; «удобно» → WCAG/время сценария; «безопасно» → OAuth2/JWT/аудит.
Ошибка: «перескажу своими словами».
17. Как проверяете полноту требований?
Ответ: сценарии/альтернативы, таблицы ошибок, state-диаграмма, RTM покрытие, бэк-то-бэк с AC/BDD.
Ошибка: «если PO ок, то ок».
18. Трассируемость (RTM) — как ведёте?
Ответ: таблица REQ→AC/BDD→тесты→API/события→метрики/алерты, автоссылки.
Ошибка: «у нас Jira всё хранит».
Блок 3. Документация/SRS/версии (10 вопросов) — [19–28]
19. Структура SRS?
Ответ: Введение/Глоссарий, Общее описание, Интерфейсы, Функциональные, NFR, Данные, Сценарии/Состояния, Ограничения, RTM, AC, Приложения/Change Log.
Ошибка: смешать дизайн и требования.
20. Как пишете требование (грамматика)?
Ответ: shall + мера + условия + метод проверки; атрибуты: ID, источник, приоритет, версии.
Ошибка: «должно работать корректно».
21. NFR — 3 примера с измеримостью.
Ответ: p95 latency, SLO доступности, аудит логов WORM 3 года.
Ошибка: «надёжно/масштабируемо».
22. Как поддерживать живой SRS?
Ответ: Docs-as-Code, PR-ревью, семантическое версионирование, CHANGELOG.
Ошибка: «копируем Confluence».
23. Версионирование API/контрактов?
Ответ: semver; additive→MINOR, breaking→MAJOR; депрекейшн 30–90 дней; dual-run.
Ошибка: «переименуем поле — никто не заметит».
24. Как оформляете Change Request?
Ответ: CR шаблон: описание, обоснование, impact, диффы, план миграций/отката, релиз-ноты.
Ошибка: CR без анализа влияния.
25. Пример release notes для внешних клиентов.
Ответ: что изменилось, что делать клиентам, сроки устаревания, ссылки на контракты/гайды.
Ошибка: «выложили версию, разбирайтесь».
26. Что такое Definition of Ready/Done для требований?
Ответ: DoR — есть AC/макеты/зависимости; DoD — обновлены SRS/RTM/контракты/тесты/док.
Ошибка: DoD=«задеплоено».
27. Как фиксируете ошибки/коды?
Ответ: каталог ошибок (код/HTTP/сообщение/диагностика/ремедиэйшн), локализация.
Ошибка: ошибки «как получится».
28. Когда требование — «ограничение проектирования», а не хотелка?
Ответ: регуляторика/совместимость/лицензия/безопасность/SoT.
Ошибка: технологические предпочтения как требования.
Блок 4. Визуальное моделирование (10 вопросов) — [29–38]
29. Когда C4, когда UML, когда BPMN?
Ответ: C4 — контекст/контейнеры; UML Sequence/State/Component — поведение/жизненный цикл; BPMN — люди+системы+SLA; DMN — правила.
Ошибка: одной нотацией решать всё.
30. Что обязательно на Sequence?
Ответ: lifelines, alt/opt, коды ответов, идемпотентность, таймауты, корреляция.
Ошибка: «happy path».
31. State-диаграмма — зачем?
Ответ: сформулировать инварианты, таймауты, конечные состояния.
Ошибка: «у нас только статусы в таблице».
32. DMN: hit-policy примеры.
Ответ: U/F/P/A — unique/first/priority/any; где применяете (скидки, лимиты, AML).
Ошибка: «if/else в документе».
33. BPMN: что такое пограничные события?
Ответ: error, timer, message, compensation; пример PSP timeout.
Ошибка: отсутствие обработок ошибок.
34. C4 L1–L2: какие детали указывать?
Ответ: L1 — участники/системы/протоколы; L2 — сервисы/БД/очереди/зависимости/версии API.
Ошибка: перегрузка деталей на L1.
35. Сколько элементов на диаграмме — норма?
Ответ: 7±2/экран; «одна диаграмма — одна идея».
Ошибка: обои.
36. Как связать диаграммы с SRS?
Ответ: легенда/версия/владелец/ссылки на SRS§, OpenAPI, AC, RTM.
Ошибка: картинки без контекста.
37. Как показываете идемпотентность на Sequence?
Ответ: ветка «дубликат по ключу» → возврат прошлого результата.
Ошибка: игнор ветки дубля.
38. Когда DMN не нужен?
Ответ: когда правил мало/стабильные/в коде удобнее; избегать «табличного фетишизма».
Ошибка: DMN ради DMN.
Блок 5. Данные/ER/SQL/MDM/DQ (12 вопросов) — [39–50]
39. Нормализация 1–3НФ и аномалии?
Ответ: вставки/обновления/удаления; когда денормализация оправдана (OLAP/чтение).
Ошибка: «всегда 3НФ».
40. Первичные/внешние/натуральные/суррогатные ключи — когда что?
Ответ: OLTP — суррогат + уникальные натуральные; интеграции — бизнес-ключ.
Ошибка: «GUID всё решит».
41. Что такое SoT/MDM?
Ответ: источник истины по сущности; владельцы, validFrom/validTo, версия, DQ.
Ошибка: дублирование справочников.
42. Таблица фактов/измерений — чем отличаются?
Ответ: grain, SCD1/2, ключи, меры; пример star-схемы.
Ошибка: смешение гранулярности.
43. Что такое CDC и какие режимы?
Ответ: log-based/timestamp/trigger; tombstones; порядок/идемпотентность.
Ошибка: «берём updated_at — норм».
44. Как считаете дедуп в MERGE?
Ответ: ROW_NUMBER() по ключу/времени; hash сравнение; идемпотентный MERGE.
Ошибка: INSERT OVERWRITE без порядка.
45. Data Quality — какие классы и как мониторите?
Ответ: validity/completeness/uniqueness/consistency/timeliness/accuracy; пороги+алерты; quarantine-слой.
Ошибка: DQ «ручками в Excel».
46. ER для «Заказ–Оплата–Возврат» — ключевые сущности?
Ответ: Order/OrderItem/Payment/Refund/Shipment/Customer; ключи и связи.
Ошибка: свести всё к одной таблице.
47. Как хранить деньги?
Ответ: DECIMAL(18,2); валюта ISO 4217; суммы в минимальных единицах; внимательность к округлению.
Ошибка: float.
48. Как документируете словарь данных?
Ответ: имя, тип, домен, обязательность, справочник, владелец, DQ-правила.
Ошибка: «схема в БД — это и есть документация».
49. SCD-тип выбора?
Ответ: SCD2 для истории тарифов/цен; SCD1 для исправлений ошибок; SCD3 редко.
Ошибка: «всегда SCD2».
50. Как защитить PII в аналитике?
Ответ: классификация, маскирование, токенизация, RLS/CLS, минимизация атрибутов; аудит.
Ошибка: e-mail в событиях.
Блок 6. Интеграции и API (REST/GraphQL/gRPC/Async) (16 вопросов) — [51–66]
51. REST ресурсы/идемпотентность/статусы?
Ответ: nouns, POST/PUT/PATCH; Idempotency-Key для create; 201/202/409/422/429.
Ошибка: «POST всегда создаёт, дубликат — 500».
52. Пагинация/фильтры/сортировка?
Ответ: cursor предпочтительнее offset; стабильный sort key; лимиты.
Ошибка: «отдадим всё».
53. Версионирование API?
Ответ: path/accept-header; semver; deprecation policy.
Ошибка: «сломаем, но предупредим».
54. Ошибки и коды?
Ответ: единый словарь, machine-readable structure (code, message, details).
Ошибка: 200 с текстом ошибки.
55. Безопасность: OAuth2/JWT scopes?
Ответ: гранулярные скопы, истечение, refresh, подпись RS256, аудииты.
Ошибка: «один токен на всё».
56. Идемпотентность при сетевых сбоях?
Ответ: реестр ключей, TTL, повтор → тот же результат.
Ошибка: «клиент пусть не жмёт дважды».
57. GraphQL — когда?
Ответ: сложные выборки/клиент-ориентированные схемы; минусы — N+1, кэширование, контроль глубины.
Ошибка: «всегда лучше REST».
58. gRPC — когда?
Ответ: low-latency, двоичный протокол, внутренние связи; минусы — браузер/прокси.
Ошибка: «где угодно».
59. Асинхрон: pub/sub, очереди — гарантии?
Ответ: at-least-once + идемпотентные консьюмеры; outbox; ключ партиционирования.
Ошибка: «ровно один раз» без оговорок.
60. Контракт событий?
Ответ: схема (Avro/JSON), версия, ключ, occurredAt, source, correlationId; additive-evolution.
Ошибка: «свободный JSON».
61. Дедупликация событий?
Ответ: eventId/генерация hash; запись processed-events.
Ошибка: надеяться на брокер.
62. Когда 202 Accepted?
Ответ: долгие/неопределённые операции (PSP, экспорты), с состоянием job.
Ошибка: 200 и «ждать на клиенте».
63. Ретраи/джиттер/корреляция?
Ответ: экспоненциальный backoff c jitter; Correlation-Id для трассировки.
Ошибка: агрессивные бесконечные ретраи.
64. Idempotency vs дедуп в БД?
Ответ: ключ на уровне API + уникальный индекс/реестр в БД; соответствие.
Ошибка: «одно из двух достаточно».
65. OpenAPI — что обязательно?
Ответ: схемы запрос/ответ, коды, ошибки, примеры, securitySchemes, версионирование.
Ошибка: пустые «описания».
66. Контракт-тесты?
Ответ: провайдер/консьюмер тесты, CI-гейт; snapshot схем.
Ошибка: «у нас postman-коллекция».
Блок 7. Архитектура/DDD (8 вопросов) — [67–74]
67. Монолит, модульный монолит, микросервис — как выбираете?
Ответ: по независимости развертывания/цикла изменений/владельцу домена; риски микросервисов — распределённые транзакции.
Ошибка: «микросервисы всегда лучше».
68. Порты-адаптеры (Hexagonal)?
Ответ: домен изолирован; порты — интерфейсы, адаптеры — реализации; тестируемость/замены.
Ошибка: смешать HTTP-клиент в домене.
69. Bounded Context/UL?
Ответ: общий язык в каждом контексте; контекст-мапа (Shared Kernel/Customer-Supplier/Anti-corruption).
Ошибка: один UL «на всю компанию».
70. Агрегат и инварианты?
Ответ: единица консистентности; пример Payment с инвариантом «refund ≤ captured».
Ошибка: гипертрофированные агрегаты.
71. Сага/компенсации?
Ответ: координация через события/оркестратор; компенсирующие действия.
Ошибка: «двухфазный коммит во всём».
72. Outbox/Inbox паттерн?
Ответ: транзакционно публикуем события; inbox — идемпотентное потребление.
Ошибка: публиковать «после коммита вручную».
73. Feature flags/kill-switch?
Ответ: безопасные релизы, canary, быстрый откат.
Ошибка: релиз без флаги/плана отката.
74. C4→ADR→SRS связь?
Ответ: контекст→решения→требования; ссылки и версии.
Ошибка: разрозненные документы.
Блок 8. NFR/Надёжность/Безопасность/Observability (12 вопросов) — [75–86]
75. Как формулируете SLO?
Ответ: X% успешных запросов ≤ Y ms в окне Z; error budget/алерты.
Ошибка: «быстро/стабильно».
76. RPS/Latency/Throughput — как считаете?
Ответ: перцентили (p95/p99), windowed; нагрузочный план.
Ошибка: среднее.
77. Кэширование/инвалидация?
Ответ: cache-aside/write-through, TTL/ETag; согласованность.
Ошибка: бессрочный кэш.
78. Очереди/бэкофисы — где границы?
Ответ: вынос длительных/нестабильных операций, 202+job.
Ошибка: всё «в синхроне».
79. Идемпотентность в БД?
Ответ: уникальные ключи/реестры + транзакции.
Ошибка: «повезёт».
80. Аутентификация/авторизация?
Ответ: OAuth2/JWT, scopes, ABAC/RBAC, least privilege.
Ошибка: админ-токен на всё.
81. Шифрование/секреты?
Ответ: TLS, at-rest, KMS/Vault, ротация.
Ошибка: секреты в конфиге.
82. Логи/метрики/трейсы — что и как?
Ответ: JSON-логи со схемой, RED/USE метрики, OpenTelemetry трассировки.
Ошибка: «посмотрим в stdout».
83. Алерты — по чему?
Ответ: SLO нарушения, queue lag, error rate/спайки, saturation.
Ошибка: алертить на всё.
84. Деградация/feature toggle?
Ответ: отключение тяжёлых функций, заглушки, лимиты.
Ошибка: падение целиком.
85. Модель угроз (на уровне фичи)?
Ответ: STRIDE-подход, потоки данных, меры (rate limit, captcha, audit, mTLS).
Ошибка: «у нас брандмауэр».
86. Регуляторика/PII/GDPR-подобные требования?
Ответ: минимизация, согласия, право на удаление, ретенция, аудит.
Ошибка: «мы внутренняя система».
Блок 9. Тест-дизайн/AC/BDD/UAT (8 вопросов) — [87–94]
87. Классы эквивалентности/границы?
Ответ: разбиение доменов, граничные значения, негативы.
Ошибка: только позитивы.
88. AC vs тест-кейсы?
Ответ: AC — договор о поведении; тесты — реализация проверки/данные.
Ошибка: AC=«пользователь доволен».
89. BDD/Gherkin — пример?
Ответ: Given-When-Then с примерами; связь с RTM.
Ошибка: сценарии без проверок.
90. Контракт-тест vs e2e?
Ответ: контракт — совместимость интерфейсов; e2e — сквозной сценарий.
Ошибка: один e2e «покроет всё».
91. UAT — вход/выход/ролей?
Ответ: вход: RC, тест-данные; роли: бизнес (Approve), SA (Driver), QA/DevOps; выход: sign-off.
Ошибка: UAT «посмотреть глазом».
92. Негативные сценарии — какие для платежа?
Ответ: timeout PSP (202), decline, дубликат, неверная валюта, лимит KYC.
Ошибка: «вернём 500».
93. Тесты наблюдаемости?
Ответ: смоки SLI/SLO, проверка алертов/трассировок, лог-схем.
Ошибка: «наблюдаемость — дело SRE».
94. Как измеряете покрытие требований тестами?
Ответ: RTM: REQ→AC→тесты; отчёт «дыр».
Ошибка: «coverage по коду».
Блок 10. Agile/планирование/изменения (6 вопросов) — [95–100]
95. Scrum vs Kanban?
Ответ: Scrum — итерации/ритуалы/velocity; Kanban — поток/WIP/lead time.
Ошибка: «одно и то же».
96. Декомпозиция эпика → фичи → стори?
Ответ: цель → capability → MVP-инкременты; DoR/DoD на каждом уровне.
Ошибка: «режем по UI».
97. Оценка: story points vs time?
Ответ: points — относительная сложность/риск; time — для контрактов/планирования релизов (с буферами).
Ошибка: «points=часы».
98. План релиза и критический путь?
Ответ: зависимости, внешние окна, risk buffer, Go/No-Go критерии.
Ошибка: «берём по порядку».
99. Управление изменениями (CCB)?
Ответ: CR→triage→решение→миграции→релиз→Change Log; semver; deprecation.
Ошибка: изменения «тихо».
100. Коммуникации/стейкхолдеры?
Ответ: регистр стейкхолдеров, план коммуникаций, DR/MoM, RAG-статусы.
Ошибка: «пишу всем в общий чат».
Анти-паттерны ответов
- «Это зависит…» без критериев. → Добавьте 2–3 параметра выбора и сделайте вывод.
- Пересказ терминов без кейса. → Дайте Context–Action–Result.
- «У нас так было». → Объясните почему так и когда нельзя так.
- Уход от цифр. → Давайте метрики/диапазоны.
- Обесценивание прошлых команд. → Говорите про процессы и улучшения, не про людей.
Мини-кейсы (попросить у доски)
Кейс A (5–7 мин): «Добавить promoCode в платеж».
Ожидаем: MINOR, additive поле, AC, OpenAPI дифф, SQL expand, фичефлаг, release notes.
Кейс B (10 мин): «Заказ оплачивается, PSP иногда отвечает через 30 сек».
Ожидаем: 202+job, ретраи с джиттером, идемпотентность, события pending/complete, наблюдаемость.
Кейс C (10 мин): «Сверка платежей с реестром PSP».
Ожидаем: ключи матчей (RRN/authCode/amount/date), отчёты mismatch, SLA расследования.
Шаблоны для ответов
Фрейм выбора (3 пункта):
- Критерии (нагрузка/совместимость/сроки/риск).
- Опции + плюсы/минусы.
- Решение + план рисков/отката.
Фрейм NFR:
«В окне X при условиях Y сервис ДОЛЖЕН обеспечивать метрику Z, проверяем методом M».
Фрейм AC:
Given [контекст] When [действие] Then [измеримый результат] (+ Examples).
Чек-лист подготовки к собеседованию
- Обновите портфолио артефактов: SRS (1–2), OpenAPI/AsyncAPI, BPMN/DMN, ER, RTM, AC/BDD, NFR-каталог, C4.
- Освежите SQL: JOIN/агрегаты/окна, MERGE, дедуп.
- Пройдитесь по идемпотентности/ретраям/semver/депрекейшну — это частые ловушки.
- Придумайте 3 кейса (финтех/1C/e-com) с цифрами и результатами.
- Подготовьте вопросы работодателю (SLA/NFR, CCB, observability, ownership, качество требований).
Q&A (короткие частые)
— Чем измеримый NFR отличается от нефункц. хотелки?
— Наличие метрики, окна, метода проверки и владельца.
— Как отвечать, если не знаете?
— «Скажу честно: не делал напрямую. Я бы подошёл так: критерии → 2–3 опции → риски → выбрал бы X. Могу подготовить письменный разбор».
— Какую ошибку вы сделали и чему научились?
— Опишите контекст → ошибка → коррекция процесса (например, ввели RTM/контракт-тесты/фичефлаги).
Теория (что освежить перед интервью)
- ISO/IEC/IEEE 29148 (качество требований), ISO 25010 (качество ПО).
- SemVer/депрекейшн, C4, DDD (bounded context/aggregate), DMN hit-policies.
- OAuth2/JWT, идемпотентность/идентификаторы, RED/USE/OTel.
- CDC паттерны, SCD1/2, star-schema, MERGE дедуп.
- Scrum/Kanban/WSJF/RICE, CCB, DoR/DoD, UAT.



