BA & SA | 10000 Interview questions
10.2K subscribers
172 photos
14 videos
342 links
Вопросы и задачи, которые задают на собеседованиях на позицию Бизнес и Системного аналитика. По вопросам сотрудничества- @DeliveryManager7
Download Telegram
1791. ВОПРОС:

Вы аналитик в крупном ритейлере. Заказчик (директор по маркетингу) требует добавить в мобильное приложение персонализированные push-уведомления на основе геолокации («когда пользователь рядом с магазином — присылаем промокод»). Команда разработки оценивает задачу в 3 недели. Одновременно владелец продукта (product owner) настаивает на срочном исправлении критического бага в оформлении заказа, который приводит к потере 5% заказов. У вас фиксированный спринт (3 недели) и команда из 5 разработчиков. Как правильно поступить?
1791. Варианты ответа:

A) Выполнить и то, и другое, сократив объёмы тестирования и документации, чтобы уложиться в срок

B) Взять задачу по уведомлениям, а баг перенести на следующий спринт, так как задача новее и интереснее

C) Организовать сессию приоритизации с участием заказчика и PO, используя весомые аргументы (стоимость бага, бизнес-ценность фичи), и принять взвешенное решение, зафиксировав компромисс

D) Передать решение архитектору, так как это технические вопросы
Выбери верный вариант ответа:
Anonymous Quiz
2%
А
2%
В
96%
С
0%
D
Объяснение:

Этот кейс — классика управления конфликтами стейкхолдеров. В реальных проектах такие ситуации возникают постоянно: маркетинг хочет новую фичу, а продажи нуждаются в стабильности. Аналитик здесь не просто «пишет требования», а выполняет роль фасилитатора и приоритизатора.

Почему C — единственно верный вариант?

Факты, а не эмоции. Нужно собрать данные: сколько заказов теряется из-за бага (5% → это тысячи рублей в день). Какова ожидаемая прибыль от геопромокодов (прогноз маркетинга).
Приоритизация по бизнес-ценности. Можно использовать WSJF (Weighted Shortest Job First) или MoSCoW. Буг с потерей заказов — это Must Have, а новая фича — Could Have в текущем спринте.
Компромисс не значит «сделать всё». Возможные варианты: баг фиксим сейчас (2 дня), а уведомления делаем частично (MVP — только для топ-10 магазинов) или переносим на следующий спринт с гарантией приоритета.
Документирование решения. Протокол встречи с подписями сторон — защита от будущих претензий.

Почему не подходят другие варианты:

A (сделать всё в ущерб качеству) — гарантированно приведёт к новым багам, техническому долгу и выгоранию команды.

B (взять новую фичу, отложить баг) — потеря 5% заказов на 3 недели катастрофа для бизнеса. Такой аналитик быстро лишится работы.

D (передать архитектору) — архитектор не имеет полномочий решать бизнес-приоритеты. Это уход от ответственности.

Реальный кейс из практики:

В одном маркетплейсе маркетологи требовали внедрить «умные рекомендации» (оценка 4 недели), а в это время фикс бага в выдаче поиска (потеря 12% конверсии) висел уже две недели. Аналитик организовал встречу, показал график потерь выручки, и стороны договорились: сначала фикс бага (1 неделя), затем сокращённая версия рекомендаций (2 недели) с доработкой базы за счёт перераспределения ресурсов. Результат: потери остановлены, маркетинг получил MVP, конфликт исчерпан.

Что должен зафиксировать аналитик в рабочем процессе:

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

Вывод: Аналитик высокого уровня — это не просто «приёмщик требований», а стратег, умеющий разрешать конфликты на основе данных и обеспечивать максимальную бизнес-ценность за ограниченное время. Он не боится трудных переговоров и умеет переводить эмоции в цифры. 🎯

#REQUIREMENTS
Please open Telegram to view this post
VIEW IN TELEGRAM
№4792 категория вопросов: #UML
4792. При автоматизации кредитного конвейера нужно отобразить состояния заявки: «Новая», «На проверке», «Одобрена», «Отклонена». Переходы происходят по событиям: «Заявка создана», «Получен ответ скоринга». Какая диаграмма UML лучше всего подойдёт?
Anonymous Quiz
0%
Диаграмма деятельности
13%
Диаграмма последовательности
87%
Диаграмма состояний (State Machine Diagram)
1%
Диаграмма компонентов
Объяснение:

Диаграмма состояний специально создана для моделирования жизненного цикла одного объекта (заявки) — его состояния и переходы под действием событий. Диаграмма деятельности хороша для потоков работ, но здесь фокус на смене состояний, а не на алгоритме. Диаграмма последовательности показывает обмен сообщениями во времени, но не весь жизненный цикл. Диаграмма компонентов — статическая структура. В банках именно State Machine используют для описания статусной модели кредитной заявки.
Please open Telegram to view this post
VIEW IN TELEGRAM
№4793 категория вопросов: #DBMS
4793. В таблице logs 200 млн записей. Частый запрос: «SELECT * FROM logs WHERE user_id = 123 ORDER BY created_at DESC LIMIT 20» выполняется 4 секунды, хотя есть индекс. Причина медленности в том, что индекса не хватает, покрыть все поля. Как ускорить?
Anonymous Quiz
33%
Партиционировать таблицу по created_at
31%
Заменить индекс на (created_at, user_id)
32%
Создать покрывающий индекс, добавив в него все поля из SELECT
5%
Убрать ORDER BY и сортировать в приложении
🤔3👍1
Объяснение:

Индекс (user_id, created_at) позволяет быстро найти 20 нужных строк в индексе, но затем для получения значений других полей (кроме user_id и created_at) СУБД делает случайные чтения основной таблицы — отсюда 4 секунды. Покрывающий индекс включает все поля, которые запрашивает SELECT * (например, message, type). Тогда запрос может быть выполнен полностью по данным индекса без обращения к таблице (Index Only Scan), что сокращает время до миллисекунд. Партиционирование (A) не решит проблему случайных чтений. Индекс (created_at, user_id) (B) неоптимален для фильтрации по пользователю. Сортировка в приложении (D) не уменьшит объём обрабатываемых данных.
Please open Telegram to view this post
VIEW IN TELEGRAM
1🤔1
№4794 категория вопросов: #INTEGRATION
4794. Сервис A отправляет данные в сервис B через REST API. При недоступности B, данные теряются. Решили внедрить очередь в RabbitMQ. Какое дополнительное требование обязательно для обеспечения сохранности данных даже при перезапуске RabbitMQ?
Anonymous Quiz
2%
Установить больший таймаут подключения
89%
Сделать очередь и сообщения персистентными (durable и persistent)
0%
Увеличить количество потребителей
9%
Использовать auto-acknowledgment
Объяснение:

Без персистентности (durable queue + persistent messages) очередь и сообщения хранятся только в оперативной памяти. При перезапуске RabbitMQ все данные исчезают. Требование «сохранность даже при перезапуске брокера» означает, что очередь и сообщения должны быть записаны на диск. Остальные варианты: таймаут (A) влияет на ожидание, но не на сохранность; увеличение потребителей (C) — на пропускную способность, а не на сохранность; auto-ack (D) вообще удаляет сообщение до обработки, что опасно. Аналитик обязан указать в требованиях настройки персистентности для критичных очередей.
Please open Telegram to view this post
VIEW IN TELEGRAM
№4795 категория вопросов: #TESTING
4795. Автотесты на заказ проходят, но через неделю на проде обнаружили, что перестала работать интеграция с CRM — из ответа API исчезло поле crm_id. Какой вид тестирования должен был предотвратить это?
Anonymous Quiz
16%
Модульное тестирование
5%
Нагрузочное тестирование
75%
Контрактное тестирование (Contract testing)
5%
Юзабилити-тестирование
Объяснение:

Контрактное тестирование проверяет, что поставщик API (сервис заказов) не нарушает ожидания потребителей (CRM, мобильное приложение, другие сервисы). Оно включает написание тестов, которые имитируют требования потребителя к структуре ответа (поля, типы). При изменении API, если оно удаляет поле, которое ожидает потребитель, контрактный тест падает и не даёт выкатить релиз. Модульные тесты (A) проверяют отдельные функции, они не заметят изменение публичного API. Нагрузочное тестирование (B) проверяет производительность, а не совместимость. Юзабилити (D) — про удобство интерфейса.
Please open Telegram to view this post
VIEW IN TELEGRAM
ИИ уже не “будущее” — он тихо стал частью повседневности.🤖

Нейросети помогают писать тексты, генерировать изображения, анализировать данные, искать ошибки в коде и даже придумывать идеи для бизнеса. Но самое интересное — ИИ не заменяет человека, а усиливает того, кто умеет правильно задавать вопросы.🧠

Главный навык ближайших лет — не просто пользоваться технологиями, а понимать, как с ними сотрудничать.

IT + ИИ + нейро = новая реальность, где побеждает не тот, кто знает всё, а тот, кто быстрее учится. 🚀

Забрать папку 🎁

Добавиться в папку ⚡️
№4796 категория вопросов: #ARCHITECTURE
4796. Стартап запускает сервис доставки с прогнозом 100 заказов в день. Команда хочет использовать микросервисную архитектуру «на вырост». Какой аргумент против этого решения наиболее весомый?
Anonymous Quiz
5%
Микросервисы требуют больше серверов
3%
Микросервисы не поддерживают ACID-транзакции
88%
Микросервисы сложнее в отладке и эксплуатации, что замедлит выход MVP
3%
Микросервисы медленнее из-за сетевых вызовов
Объяснение:

1. Суть проблемы

Микросервисная архитектура даёт преимущества при большом масштабе (тысячи заказов в секунду, 10+ команд разработки), но на старте проекта главное — как можно быстрее выкатить рабочий продукт (MVP), проверить гипотезы и получить обратную связь. Микросервисы же требуют значительных начальных инвестиций в инфраструктуру, инструменты и процессы.

2. Что значит «сложнее в отладке и эксплуатации»

Отладка: локально поднять 5 сервисов с их базами данных, очередями, кэшами — это время и память. Трассировка запроса, проходящего через сервисы, требует внедрения распределённого трейсинга (Jaeger, Zipkin).
Эксплуатация: нужны оркестрация (Kubernetes), сервис-меш (Istio), мониторинг (Prometheus + Grafana), сбор логов (ELK). Всё это настраивается неделями.
Развёртывание: CI/CD для микросервисов сложнее, чем для монолита.
Для MVP с 100 заказами в день эти затраты неоправданны. Монолит (или модульный монолит) позволит запуститься за месяц вместо трёх.

3. Почему остальные аргументы слабее

A (больше серверов): В облаке дешёвые инстансы для 5 микросервисов стоят несущественно. Не главное.

B (нет ACID-транзакций): Действительно проблема, но для доставки еды конечная согласованность (eventual consistency) часто допустима. Например, если заказ создался, а уведомление чуть задержалось — не катастрофа.

D (сетевые задержки): При 100 заказах в день сетевые вызовы добавляют миллисекунды, пользователь не заметит. Не весомо.

4. Реальный кейс

Стартап потратил 6 месяцев на проектирование микросервисов, а конкуренты на монолите запустились за 2 месяца и захватили рынок. После этого стартап закрылся. Другой пример: известный сервис доставки еды начинал с монолита и перешёл на микросервисы только когда нагрузка превысила 1000 заказов в минуту.

5. Что должен сделать аналитик

Оценить стадию проекта (MVP — монолит).
Согласовать с командой «архитектуру на вырост» в виде модульного монолита с чёткими границами пакетов, которые в будущем легко вырезать.
Зафиксировать нефункциональное требование: «Архитектура должна позволять выделение сервисов без полной переписки при росте нагрузки более 5000 заказов в сутки».

Вывод: Микросервисы — не бесплатный бонус, а плата высокой сложностью за масштабируемость и независимость команд. Для MVP эта плата обычно чрезмерна.
Please open Telegram to view this post
VIEW IN TELEGRAM
№4797 категория вопросов: #BROKER