Перейти к содержимому

Вопросы на собеседовании системного аналитика

Команда Workbit · · 24 мин чтения · 50 вопросов

Мы собрали вопросы, которые чаще всего задают системному аналитику на собеседовании, от требований и BPMN до SQL и интеграций, и разобрали, какой ответ на них ждут.

Что проверяют на собеседовании системного аналитика

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

  1. 1Сбор и запись требований. На интервью могут дать задачу, сказанную одной фразой, и попросить превратить её в требования. Вопросы о требованиях собраны в разделе о требованиях и ТЗ.
  2. 2Владение нотациями. Часто просят нарисовать процесс или диаграмму последовательности и объяснить, почему выбрана именно эта нотация. Такие задания разобраны в разделе о BPMN и UML.
  3. 3SQL и устройство данных. Запрос с JOIN и группировкой могут попросить написать прямо на встрече, а модель данных набросать на доске. Об этом рассказывает раздел о SQL и базах данных.
  4. 4Обмен данными между системами. Скорее всего, спросят про REST, коды ответа и очереди, а иногда попросят спроектировать интеграцию двух систем. Этому посвящены разделы об API и интеграциях и о задаче на проектирование.
  5. 5Работа с заказчиком и командой. Аналитик стоит между бизнесом и разработкой, поэтому, скорее всего, спросят про конфликт требований и спор с разработчиком. Эти вопросы собраны в разделе об опыте и команде.

Как проходит собеседование на системного аналитика

Чаще всего отбор состоит из трёх встреч:

  • короткий скрининг у рекрутера;
  • техническое интервью примерно на час, иногда на полчаса, где теорию перемешивают с практикой;
  • встреча с руководителем или командой.

Техническое интервью часто делят на блоки о требованиях, интеграциях, базах данных и безопасности. В практической части просят написать SQL-запрос, нарисовать диаграмму или поработать с API, а иногда вместо этого присылают тестовое задание.

Вопросы о требованиях и ТЗ

Требования нередко открывают техническое интервью, и по ответам видно, работали ли вы с живым заказчиком.

9 вопросов

Чем функциональные требования отличаются от нефункциональных?

Нефункциональные требования легко принять за «пожелания», поэтому разницу удобнее показать на одной функции.

Функциональные требования описывают, что система делает, а нефункциональные описывают, каким условиям она отвечает по скорости, доступности, безопасности и нагрузке. Функциональное звучит как «система отправляет клиенту письмо с подтверждением заказа», а нефункциональное как «письмо уходит не позже чем через минуту после оплаты».

Что вы спросите, если в требованиях написано «система должна работать быстро»?

Требование без цифры нельзя ни реализовать, ни проверить, поэтому «быстро» превращают в условие с операцией, нагрузкой и порогом. Цифры в образце ответа условные.

«Спрошу, какая операция должна быть быстрой, сколько пользователей работает одновременно и какое время ответа приемлемо. В требование запишу, что поиск по каталогу отвечает за 2 секунды при 500 одновременных пользователях».

Какие нефункциональные требования вы соберёте для сервиса бронирования билетов?

Там, где продают места, упавший в час пик поиск означает потерянные продажи. Цифры для таких требований аналитик не придумывает сам, а узнаёт у тех, кто за них отвечает.

Сервис доступен в часы пик продаж, а поиск и оплата укладываются в заданное время. Платёжные и паспортные данные хранятся защищённо, доступ к ним выдаётся по ролям. Одно место не продаётся дважды, даже если два человека нажали «купить» одновременно. Цифры я уточню у бизнеса, эксплуатации и службы безопасности.

Какие вопросы вы зададите заказчику, если задача пришла одной фразой?

Задача часто приходит готовым решением вроде «нужен баннер в личном кабинете», и смотрят, начнёте ли вы с вопросов.

Сначала выясню, какую проблему решаем и как поймём, что решили, кто пользователи и где границы задачи. Если просят баннер в личном кабинете, вопросы будут такими: «Кому и зачем показываем баннер? Кто меняет текст? Что будет, если пользователь его закроет? Как поймём, что баннер сработал?»

Как вы собираете требования?

По ответу видно, пересказываете ли вы слова заказчика или проверяете их на данных и процессах.

«Провожу интервью с заказчиком и пользователями, разбираю текущую систему и её данные, читаю регламенты и смотрю, как люди работают сейчас. После встреч записываю требования и отправляю на согласование, чтобы расхождения всплыли до разработки».

Чем user story отличается от use case?

Оба формата встречаются в вакансиях, а выбор между ними зависит от сложности процесса.

User story — это короткая потребность от лица пользователя, например «Как покупатель, я хочу сохранить корзину, чтобы вернуться к покупке позже». Use case по шагам описывает работу пользователя с системой вместе с альтернативными ветками и ошибками. Для сложного процесса с ветвлениями берут use case, а для небольшой доработки хватает истории.

Как выглядит хорошая user story?

Историю легко написать формально правильно, но без понятного результата.

Её пишут по шаблону «Как <роль>, я хочу <действие>, чтобы <ценность>» и добавляют условия готовности. Например: «Как покупатель, я хочу видеть статус доставки в личном кабинете, чтобы не звонить в поддержку. Готово, если статус обновляется после каждого события у службы доставки». Без части «чтобы» непонятно, зачем делать историю.

Что такое ТЗ и какие разделы в нём обязательны?

Часть работодателей просит оформлять ТЗ по ГОСТу. Если вы работали без ГОСТа, расскажите, из чего состояла ваша постановка.

Техническое задание — это документ с требованиями к системе и порядком её создания, по нему ведут разработку и принимают результат. По ГОСТ 34.602-2020 в число обязательных разделов входят общие сведения, цели и назначение системы, характеристика объектов автоматизации, требования к системе, порядок контроля и приёмки, требования к документированию и источники разработки.

Чем ГОСТ 34 отличается от ГОСТ 19?

Знание ГОСТов встречается в требованиях вакансий, а ссылка на устаревшую редакцию сразу заметна.

ГОСТ 34.602 описывает ТЗ на автоматизированную систему в целом. ГОСТ 19.201-78 описывает ТЗ на программу или программное изделие. ГОСТ 34.602-2020 действует с 1 января 2022 года и заменил ГОСТ 34.602-89, поэтому ссылаться на 89-й уже некорректно.

Вопросы о нотациях: BPMN и UML

Интервьюер может спросить про элементы нотаций, а потом попросить нарисовать схему и объяснить её.

7 вопросов

Что такое BPMN и из каких элементов строится диаграмма?

BPMN нужна, чтобы процесс одинаково поняли бизнес и разработка. Элементы понятнее всего на примере одного процесса.

BPMN — это нотация для описания бизнес-процессов. Диаграмма строится из событий, задач, шлюзов для ветвлений и потоков между ними, а участников показывают пулы и дорожки. Оформление заказа клиентом будет стартовым событием, проверка наличия задачей, а развилка «есть товар или нет» шлюзом.

Что означает ромб на BPMN-диаграмме?

Шлюзов несколько видов, и тот, кто рисовал процессы с ветвлениями, назовёт хотя бы два.

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

Когда вы рисуете BPMN, а когда UML?

Нотацию выбирают под читателя, и схему для бухгалтерии рисуют иначе, чем для разработчиков.

«BPMN беру для процесса с людьми, ролями и решениями, например чтобы показать, как заявка проходит через отделы. UML нужен для устройства системы. Диаграмма последовательности показывает, какие сервисы друг другу пишут и в каком порядке, а диаграмма классов показывает сущности и связи».

Нарисуйте процесс оформления заказа в интернет-магазине.

Нотацию часто дают выбрать, а смотрят, какие вопросы вы задаёте и не забываете ли ветки с ошибками.

Сначала уточняю участников, начало и конец процесса. Потом рисую основной путь, где покупатель оформил заказ, система проверила наличие, покупатель оплатил, склад собрал и передал заказ в доставку. Затем добавляю ветки на случай, если товара нет, оплата не прошла или покупатель отменил заказ.

Как на sequence-диаграмме показать асинхронный вызов?

В интеграциях через очередь вызов асинхронный, и это должно быть видно на схеме сразу.

Синхронный вызов рисуют сплошной стрелкой с закрашенным наконечником, а ответ на него пунктирной стрелкой обратно. Асинхронный вызов рисуют стрелкой с открытым наконечником, потому что отправитель не ждёт ответа. Брокер сообщений рисуют отдельным участником.

Чем sequence-диаграмма отличается от диаграммы активности?

Обе диаграммы описывают шаги процесса, и их часто путают.

Sequence показывает, кто кому и в каком порядке отправляет сообщения. Диаграмма активности показывает последовательность действий с ветвлениями и параллельными потоками, а участники в ней вторичны. По форме она похожа на BPMN, но чаще описывает логику внутри системы, а BPMN описывает процесс для бизнеса.

Как вы объясните диаграмму заказчику, который не знает нотаций?

Схема бесполезна, если её не понял тот, кто её согласует. Объяснять её приходится простыми словами, без терминов нотации.

«Вот клиент оформил заказ. Дальше система проверяет, есть ли товар. Если есть, идём к оплате, а если нет, отправляем письмо с извинениями». После объяснения спрошу, всё ли совпадает с тем, как у заказчика работает на самом деле, потому что так и всплывают забытые ветки.

Вопросы по SQL и базам данных

В SQL-блоке спрашивают про JOIN, группировку и устройство модели данных. Если в резюме написан «продвинутый SQL», готовьтесь к запросам посложнее.

9 вопросов

Чем INNER JOIN отличается от LEFT JOIN?

Без соединения таблиц аналитик не проверит ни одной гипотезы на данных.

INNER JOIN оставляет только строки, у которых нашлась пара в обеих таблицах. LEFT JOIN оставляет все строки левой таблицы, а где пары нет, подставляет NULL. Если соединить клиентов с заказами через INNER JOIN, останутся только клиенты с заказами, а LEFT JOIN вернёт всех клиентов.

Как найти клиентов, у которых нет ни одного заказа?

Та же логика нужна, чтобы искать расхождения между двумя системами. Если поставить в WHERE фильтр по полю правой таблицы, он отбросит строки с NULL и превратит LEFT JOIN в INNER.

Соединю клиентов с заказами через LEFT JOIN и оставлю строки, где заказа не нашлось: «SELECT c.id, c.name FROM clients c LEFT JOIN orders o ON o.client_id = c.id WHERE o.id IS NULL». То же можно сделать через NOT EXISTS.

Чем WHERE отличается от HAVING?

Путаница между двумя фильтрами ломает отчёт незаметно.

WHERE фильтрует строки до группировки, а HAVING фильтрует группы после неё, поэтому в HAVING пишут условия на агрегаты. Клиентов, у которых больше пяти оплаченных заказов, найдёт запрос «SELECT client_id, COUNT(*) FROM orders WHERE status = 'paid' GROUP BY client_id HAVING COUNT(*) > 5».

Напишите запрос, который вернёт пользователей, зарегистрированных за последний месяц.

«Последний месяц» можно понять двумя способами, и выборки получатся разными. Функции дат в разных базах данных отличаются, и об этом стоит сказать.

Сначала уточню, считать ли последние 30 дней или прошлый календарный месяц и в каком поле хранится дата регистрации. Для PostgreSQL запрос может выглядеть так: «SELECT id, email, created_at FROM users WHERE created_at >= CURRENT_DATE - INTERVAL '1 month'».

Зачем нужны индексы?

С индексов начинается любой разговор о том, почему отчёт строится десять минут.

Индекс — это отдельная структура, по которой строки находят без чтения всей таблицы, как главу по оглавлению книги. Он ускоряет поиск, соединения и сортировку, но занимает место и замедляет запись, потому что его тоже нужно обновлять. Поэтому индексы ставят на столбцы, по которым часто ищут и соединяют таблицы.

Что такое транзакция и что значит ACID?

От транзакций зависит, не пропадут ли деньги при сбое. Пример с переводом между счетами объясняет ответ лучше определений.

Транзакция — это группа операций, которая выполняется целиком или не выполняется совсем. ACID обозначает её свойства: атомарность (всё или ничего), согласованность (данные остаются допустимыми), изолированность (параллельные транзакции не мешают друг другу) и долговечность (подтверждённое изменение переживёт сбой). Списание и зачисление при переводе идут одной транзакцией, иначе при сбое между ними деньги исчезнут.

Что такое нормализация?

Без нормализации в модели данных появляются дубли, которые потом расходятся.

Нормализация — это разбиение данных по таблицам так, чтобы каждый факт хранился в одном месте. Если адрес клиента записан в каждом заказе, после переезда заказы покажут разные адреса, поэтому адрес держат в таблице клиентов.

Когда данные сознательно денормализуют?

У нормализации есть цена в виде лишних соединений таблиц, и бывают задачи, где её не платят.

Денормализуют, когда чтение важнее записи, как в отчётах, витринах и аналитических хранилищах. Часть данных дублируют, чтобы читать одним запросом, а копии обновляют задачей по расписанию или по событию. Например, в отчёте по заказам имя клиента хранят прямо в строке заказа.

Как вы спроектируете модель данных для интернет-магазина книг?

Модель данных начинается с сущностей и связей, а цену покупки легко потерять, если хранить её только в каталоге.

Сначала уточню, что продаёт магазин и нужна ли история цен. Потом выделю книги, авторов, покупателей, заказы и позиции заказа. Связь книг и авторов многие-ко-многим разверну промежуточной таблицей «книга — автор». Позиция ссылается на заказ и книгу и хранит количество и цену на момент покупки, иначе старые заказы «подорожают» вместе с каталогом.

SQL, а также любую другую тему можно отработать отдельно в тренировке с ИИ.

Начать тренировку

Вопросы по API и интеграциям

Интеграции составляют центральную часть работы системного аналитика, поэтому вопросов о них здесь больше всего.

16 вопросов

Какие методы HTTP вы знаете?

Методы аналитик сам указывает в постановке, и на одном ресурсе их разница видна лучше всего.

GET получает ресурс, POST отправляет данные на обработку, чаще всего для создания, PUT создаёт или полностью заменяет ресурс, PATCH меняет его частично, DELETE удаляет. На заказах «GET /orders/15» получает заказ, «POST /orders» создаёт, «PATCH /orders/15» меняет адрес доставки, а «DELETE /orders/15» отменяет заказ.

Чем PUT отличается от PATCH?

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

PUT заменяет ресурс целиком, и поле, которого нет в теле запроса, пропадёт или сбросится. PATCH применяет набор изменений вроде «поменяй адрес», и остальное остаётся как было.

Что такое идемпотентность и какие методы идемпотентны?

От этого зависит, можно ли повторить запрос, если ответ не дошёл, и не спишутся ли деньги дважды.

Метод идемпотентен, если несколько одинаковых запросов дают на сервере тот же результат, что и один. По RFC 9110 идемпотентны GET, HEAD, OPTIONS, TRACE, PUT и DELETE, а POST и PATCH нет. Два PUT с адресом доставки оставят тот же адрес, а два POST на создание заказа без защиты создадут два заказа.

Можно ли получать данные через POST?

Технически это возможно, но у такого решения есть цена.

Можно, так делают, когда фильтры поиска не помещаются в строку запроса. Но GET по стандарту безопасный (ничего не меняет) и идемпотентный (повтор даёт тот же результат), и клиенты и прокси знают, что его можно повторить, а POST таких гарантий не даёт. Создавать что-то через GET уже ошибка, потому что GET не должен ничего менять на сервере.

Какие коды ответа HTTP вы знаете?

От кодов в контракте зависит, как клиент поведёт себя при ошибке, в том числе повторит ли запрос.

Коды 2xx означают успех, например 200 OK, 201 Created и 204, когда тела ответа нет. Коды 4xx сообщают об ошибке клиента, например 400 о неверном запросе, 401 об отсутствии действующих учётных данных, 403 о запрете доступа, 404 о ненайденном ресурсе, 409 о конфликте с его состоянием. Коды 5xx сообщают о сбое сервера, например 500 и 503. После 4xx запрос обычно нужно исправить, а после 503 его можно повторить через паузу.

Чем 401 отличается от 403?

От выбора между этими кодами зависит, предложит ли приложение пользователю войти заново.

По RFC 9110 401 Unauthorized означает, что у запроса нет действующих учётных данных, например токен не передан или истёк, и нужно войти. 403 Forbidden означает, что сервер знает, кто вы, но отказывает в доступе. Запрос к профилю без токена получит 401, а обычный пользователь, который запросил админку, получит 403.

Чем REST отличается от SOAP?

SOAP до сих пор встречается в вакансиях рядом с REST, и хороший ответ заканчивается выбором под задачу.

SOAP — это протокол обмена XML-сообщениями со строгим контрактом в WSDL. REST — это архитектурный стиль, в котором ресурсы доступны по адресам, действия выражаются методами HTTP, а данные чаще идут в JSON. «Если партнёр отдаёт только SOAP-сервис, интегрируюсь по его WSDL, а своё новое API делаю на REST, потому что он проще».

Что входит в контракт API?

Контракт — это главный артефакт аналитика в интеграции, по нему работают обе стороны.

В контракт входит всё, что нужно клиенту и серверу, чтобы договориться без созвона. Это адрес и метод, параметры, тело запроса и ответа с типами и обязательностью полей, коды ответа и формат ошибок, способ аутентификации и ограничения вроде частоты запросов. Описывают контракт обычно в OpenAPI (Swagger).

Спроектируйте API библиотеки со списком книг и книгой по ID.

Эту задачу решают при интервьюере. Её могут проверять в Postman, поэтому полезно заранее отправить в нём пару запросов к любому публичному API.

Сначала уточню, нужно ли только чтение или ещё создание и правка книг. «GET /books» возвращает список с постраничной выдачей по параметрам «page» и «size» и общее количество книг. «GET /books/{id}» возвращает одну книгу или 404, если её нет. Дальше опишу поля книги, фильтры по автору и жанру и ответ 400 на неверные параметры.

Чем синхронная интеграция отличается от асинхронной?

С этого выбора начинается проектирование любой интеграции.

При синхронной интеграции система ждёт ответа, как при проверке остатка на складе во время оформления заказа. При асинхронной она отправляет сообщение и продолжает работу, а результат приходит позже через очередь, вебхук или опрос. Асинхронную берут, когда операция долгая, получатель бывает недоступен или сообщение нужно нескольким системам.

Чем вебхук отличается от опроса (polling)?

Вопрос продолжает разговор об асинхронных интеграциях и о том, как система узнаёт о событии.

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

Зачем нужен брокер сообщений?

Kafka и RabbitMQ часто стоят в требованиях вакансий, а интеграции через очереди аналитик описывает сам.

Брокер принимает сообщения от одной системы и доставляет другим, так что отправителю не нужно знать получателей и ждать их. Если получатель упал, сообщение подождёт в очереди. Например, событие «заказ оплачен» забирают склад, рассылка и аналитика, каждый в своём темпе.

Чем Kafka отличается от RabbitMQ?

По ответу видно, работали ли вы с брокерами или знаете только названия.

RabbitMQ — это брокер очередей, в котором сообщение после подтверждения удаляется. Kafka — это распределённый журнал событий, где сообщения хранятся заданное время, а потребители читают их со своей позиции и могут перечитать. Поэтому RabbitMQ подходит для задач, которые надо выполнить и забыть, а Kafka для потоков событий, которые читают несколько систем.

Что вы предусмотрите, если система-получатель не ответила на запрос?

Если поведение при сбое не опишет аналитик, разработчик придумает его на ходу.

Определю, сколько ждём ответа и сколько раз с какими паузами повторяем. Если повторы не помогли, сообщение уходит в очередь для разбора, а ответственный получает уведомление. Отдельно опишу, что видит пользователь, потому что «Заказ принят, подтверждение придёт в течение часа» лучше бесконечной загрузки.

Как сделать повтор запроса безопасным?

После обрыва связи повтор легко создаёт двойной заказ или платёж, поэтому об этом стоит сказать без подсказки.

Идемпотентный PUT или DELETE можно повторить автоматически, RFC 9110 это разрешает, если связь оборвалась до ответа. Для POST на создание заказа с системой-получателем договариваются об уникальном идентификаторе операции в запросе. Получив тот же идентификатор второй раз, система не создаёт новый заказ и отвечает так же, как в первый.

Чем монолит отличается от микросервисов?

От архитектуры зависит, сколько интеграций придётся описывать.

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

Задача на проектирование интеграции

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

Как вы опишете интеграцию CRM с ERP?

Это типовой кейс, в котором видно всё сразу. Пройдите его вслух по шагам от цели до схемы и на каждом шаге говорите, что уточняете и что решаете.

Начну с цели. Допустим, менеджер закрыл сделку в CRM, и ERP должна создать заказ и выставить счёт. Потом договорюсь о данных, способе обмена, контракте и поведении при сбоях, а в конце нарисую диаграмму последовательности.

ШагЧто решитьВ задаче «CRM → ERP»
ЦельЧто решитьКакую проблему бизнеса решает интеграцияВ задаче «CRM → ERP»Заказ и счёт появляются в ERP без ручного ввода после закрытия сделки
ДанныеЧто решитьЧто передаём туда и обратно, кто владелец данныхВ задаче «CRM → ERP»В ERP уходит событие «сделка выиграна» с клиентом, товарами, суммой и номером сделки, обратно приходит номер счёта
СпособЧто решитьСинхронно или через очередь, кто начинает обменВ задаче «CRM → ERP»CRM не ждёт ответа, поэтому событие идёт через брокер, и ERP заберёт его, даже если была недоступна
КонтрактЧто решитьПоля, типы, обязательность, формат ошибокВ задаче «CRM → ERP»Описание события и ответного события «заказ создан» с номером счёта
СбоиЧто решитьПовторы, дубли, что видит пользовательВ задаче «CRM → ERP»Если событие пришло дважды, ERP по номеру сделки видит, что заказ уже есть, и второй не создаёт. Необработанное событие уходит в очередь для разбора
СхемаЧто решитьКакую диаграмму нарисоватьВ задаче «CRM → ERP»Диаграмму последовательности с CRM, брокером и ERP

Как вы объясните незнакомый фрагмент кода, который показали на интервью?

Иногда дают короткий кусок на Java или Python. Писать код аналитику не нужно, но читать его приходится, чтобы понимать, как система работает сейчас.

Читаю по шагам вслух. Допустим, функция на Python обходит список заказов, для заказов со статусом «paid» прибавляет сумму к итогу и возвращает его. Тогда ответ будет таким: «Функция считает сумму оплаченных заказов». Незнакомую конструкцию так и называю незнакомой и предполагаю по названию, что она делает.

Вопросы об опыте и работе с командой

Вопросы об опыте задают и на техническом интервью, и на встрече с руководителем. Отвечайте историями из практики с контекстом, действием и результатом, потому что общие слова в духе «я коммуникабельный» не работают.

7 вопросов

Расскажите о себе.

По рассказу собеседник решает, о чём спрашивать дальше. Уложитесь в 5-7 минут и говорите о том, что относится к вакансии.

«Последние два года я системный аналитик в команде платежей. Описывал интеграции с банками по REST и через Kafka, писал постановки и контракты в OpenAPI. Самым заметным проектом был перевод возвратов на асинхронную схему, после него обращений в поддержку о зависших возвратах стало меньше. Хочу больше проектирования, поэтому откликнулся на вашу вакансию».

Расскажите о самой сложной задаче на последнем месте.

Ответ «мы всей командой справились» слабый, потому что непонятно, какая часть работы ваша.

Опишите, что было сложно, например противоречивые требования, старая система без документации или жёсткий срок. Потом расскажите, что вы сделали лично, с кем поговорили и какое решение предложили, и закончите итогом, лучше с цифрой.

Что вы сделаете, если стейкхолдер посреди спринта приносит новое требование?

Принять изменение молча значит сорвать спринт, а решать о приоритетах должен тот, кто за них отвечает.

Разберусь, что изменилось и почему это срочно, и вместе с командой оценю, что сдвинется. Владельцу продукта предложу варианты: «Можем взять в этот спринт, но выгрузка для бухгалтерии уедет в следующий. Или делаем в следующем спринте». Договорённость зафиксирую в требованиях.

Как вы поступите, если заказчики требуют противоположного?

За противоположными требованиями часто стоят совместимые цели.

Выясню у каждого, какую задачу он решает, и покажу всем, где противоречие и во что обходится каждый вариант. Допустим, продажам нужна короткая анкета, а юристам все поля для договора. Тогда предложу короткую анкету на входе, а остальные поля запросить перед договором. Если договориться не получится, вынесу решение владельцу продукта.

Что вы сделаете, если разработчик не согласен с вашим решением?

Аналитик разработчику не начальник, и договариваться приходится без эскалации. Ответ «пойду к менеджеру» без попытки разобраться звучит слабо.

Выслушаю аргументы и пойму, о чём спор. Если о способе реализации, у разработчика часто больше знаний, и решение можно поменять, пока оно закрывает требование. Если о самом требовании, вернусь к цели и данным, а при необходимости позову заказчика или архитектора. Итог зафиксирую в постановке.

Как вы работаете с командой разработки?

От того, как аналитик передаёт задачу, зависит, сколько вопросов потом будет у разработки и тестирования.

«Перед стартом разбираю постановку с разработчиками и тестировщиком, вопросы записываю в задачу. Потом участвую в приёмке и после релиза проверяю, что поведение совпало с требованиями».

Почему вы уходите с текущего места?

Сильный ответ называет честную причину без жалоб на прошлое место.

«В текущей команде я в основном пишу постановки по готовым решениям, а хочу участвовать в проектировании. У вас в вакансии это основная часть работы».

Что спросить у работодателя

В конце интервью обычно оставляют время на ваши вопросы. Лучше задавать такие, на которые работодатель ответит фактом, а не обещанием.

  • Чем я буду заниматься в обычный день? По ответу видно, совпадает ли работа с вакансией и сколько в ней аналитики.
  • По какой методологии работает команда и в чём рисуют схемы? Если на это сложно ответить, процесса работы с требованиями, скорее всего, нет.
  • Требования я собираю с заказчиком сам или получаю готовую постановку? Ответ покажет, насколько аналитик влияет на решения.
  • Есть ли в команде другие аналитики и архитектор? Если аналитика нанимают впервые, процесс придётся выстраивать самому.
  • Чего вы ждёте от меня к концу испытательного срока? Конкретный ответ показывает, что ожидания работодателя реальны.
  • Как устроена команда, в которую я приду? По ответу можно узнать про нагрузку и порядки, не спрашивая о переработках в лоб.

Спрашивать, нравится ли собеседнику работать в компании, бессмысленно, потому что он, скорее всего, представит её в лучшем свете.

Как подготовиться к собеседованию системного аналитика

Перед интервью полезно пройтись по основам и проговорить ответы вслух.

  1. 1Повторите методы HTTP, коды ответа и идемпотентность, их часто спрашивают на техническом интервью.
  2. 2Набейте руку в SQL на JOIN, GROUP BY и HAVING и напишите несколько запросов к любой учебной базе.
  3. 3Нарисуйте один процесс в BPMN и одну диаграмму последовательности и попробуйте объяснить их человеку не из ИТ.
  4. 4Подготовьте две-три истории из опыта про сложную задачу, конфликт требований и спор с разработкой.
  5. 5Пересмотрите резюме. Всё, что там написано, могут попросить показать на деле, поэтому технологии, которые знаете понаслышке, лучше убрать.
  6. 6Пройдите ИИ-интервью по реальной вакансии. Вставьте ссылку на вакансию с hh.ru, и ИИ задаст вопросы по её требованиям и покажет, где ответы получились слабыми.
  7. 7Темы, на которых ответы дались особенно трудно, прокачайте в тренажёре. Он задаст вопросы по выбранному навыку и разберёт каждый ответ.

Пройдите пробное ИИ-собеседование по реальной вакансии

Вставьте ссылку на вакансию с hh.ru, и нейросеть подготовит вопросы на основе требований работодателя.