Skip to content

Latest commit

 

History

History
521 lines (430 loc) · 56.7 KB

File metadata and controls

521 lines (430 loc) · 56.7 KB
layout ../../layouts/Layout.astro
title Процессы разработки
description Методологии разработки, оценка задач и взаимодействие системного аналитика с командой
category Карьера
kind questions
order 895

Процессы разработки

Методологии разработки

Из каких этапов состоит разработка?

Жизненный цикл разработки программного обеспечения (Software Development Life Cycle - SDLC) обычно включает следующие основные этапы, хотя их конкретное наполнение и последовательность могут варьироваться в зависимости от методологии:

  1. Планирование (Planning): Определение целей проекта, рамок (scope), ресурсов, сроков, бюджета, оценка рисков. Формирование видения продукта.
  2. Анализ требований (Requirements Analysis): Сбор, анализ, документирование и валидация требований от стейкхолдеров. Понимание того, что система должна делать. (Ключевой этап для аналитика).
  3. Проектирование (Design): Разработка архитектуры системы и детального дизайна компонентов, интерфейсов, баз данных на основе требований. Определение того, как система будет реализована. (Аналитик активно участвует).
  4. Разработка / Реализация (Development / Implementation / Coding): Написание кода программистами в соответствии с дизайном и требованиями.
  5. Тестирование (Testing): Проверка соответствия разработанного продукта требованиям, выявление и исправление дефектов. Включает разные уровни: модульное, интеграционное, системное, приемочное (UAT). (Аналитик участвует в UAT и консультирует тестировщиков).
  6. Развертывание / Внедрение (Deployment / Implementation): Установка готового продукта в рабочую среду (production), доступную для конечных пользователей. Может включать миграцию данных, обучение пользователей.
  7. Сопровождение и поддержка (Maintenance & Support): Поддержка работоспособности системы после запуска, исправление возникающих ошибок, внесение небольших доработок, мониторинг.

В Agile-методологиях эти этапы часто выполняются итеративно и инкрементально для небольших частей функциональности.

Какова роль аналитика на проекте?
  • Основная роль: Аналитик выступает связующим звеном (мостом) между бизнесом (заказчиками, пользователями) и командой разработки (программистами, тестировщиками, дизайнерами). Его главная задача – понять потребности бизнеса и пользователей и трансформировать их в понятные, полные и непротиворечивые требования для команды разработки.
  • Ключевые задачи:
    • Выявление и сбор требований: Использование различных техник (интервью, воркшопы, анализ документов).
    • Анализ и структурирование требований: Понимание бизнес-процессов, выявление зависимостей, противоречий, пробелов.
    • Документирование требований: Создание артефактов (User Stories, Use Cases, ТЗ, SRS, диаграммы, макеты).
    • Моделирование: Визуализация процессов (BPMN), данных (ERD), взаимодействий (UML).
    • Коммуникация и согласование: Постоянное общение со стейкхолдерами и командой, фасилитация встреч, разрешение конфликтов по требованиям.
    • Валидация и верификация требований: Убедиться, что требования правильные (нужны бизнесу) и качественные (понятные, тестируемые).
    • Управление требованиями: Отслеживание изменений, управление бэклогом (совместно с PO).
    • Поддержка разработки и тестирования: Консультирование команды, уточнение деталей, участие в демонстрациях и приемочном тестировании.
    • Исследование предметной области: Погружение в бизнес-контекст проекта.
На каких этапах аналитик является основным игроком и на каких этапах участие аналитика опционально?
  • Основные этапы для аналитика (ключевая роль):
    1. Анализ требований: Это "родной" этап аналитика, где он несет основную ответственность за выявление, анализ и документирование требований.
    2. Проектирование (Логическое/Высокоуровневое): Аналитик активно участвует в разработке логической модели системы, проектировании пользовательских интерфейсов (часто совместно с дизайнером), описании интеграций, определении бизнес-правил. Он обеспечивает соответствие дизайна требованиям.
  • Этапы с активным участием (важная роль поддержки):
    1. Планирование: Помогает определить границы проекта, оценить объем работ (на высоком уровне), выявить риски, связанные с требованиями.
    2. Тестирование: Консультирует тестировщиков по требованиям и критериям приемки, участвует в анализе дефектов, проводит или координирует приемочное тестирование (UAT).
    3. Развертывание / Внедрение: Может участвовать в подготовке документации для пользователей, обучении, поддержке во время запуска.
  • Этапы с меньшим/опциональным участием (зависит от проекта и роли):
    1. Разработка / Реализация: Аналитик консультирует разработчиков по мере необходимости, отвечает на вопросы, но непосредственно код не пишет.
    2. Сопровождение и поддержка: Может привлекаться для анализа сложных проблем или при планировании доработок, но рутинной поддержкой обычно не занимается.

Важно: В Agile-командах аналитик часто участвует во всех этапах внутри итерации (спринта), но фокус его деятельности смещается.

Как аналитик может взаимодействовать с тестировщиками?

Взаимодействие аналитика и тестировщика (QA-инженера) – это партнерство, критически важное для качества продукта. Основные точки взаимодействия:

  • Ревью требований: Тестировщики – одни из главных потребителей требований. Они проверяют их на полноту, непротиворечивость, однозначность и, самое главное, тестируемость еще до начала разработки. Аналитик предоставляет требования на ревью и обрабатывает обратную связь.
  • Уточнение требований и критериев приемки (AC): Тестировщики часто задают самые каверзные вопросы, выявляя неясности и пограничные случаи. Аналитик должен быть доступен для консультаций и оперативно уточнять детали.
  • Ревью тест-кейсов / тест-планов: Аналитик может просматривать тест-кейсы, написанные тестировщиками, чтобы убедиться, что они полностью покрывают требования и AC, и что понимание функциональности у аналитика и тестировщика совпадает.
  • Анализ дефектов (Bugs): При обнаружении бага тестировщик описывает его. Аналитик может помочь определить, является ли это действительно дефектом (несоответствием требованиям) или же это новая/неучтенная функциональность, или проблема в самих требованиях.
  • Приемочное тестирование (UAT): Аналитик часто участвует в UAT вместе с бизнес-пользователями и тестировщиками, помогая проверить соответствие реализованной функциональности исходным бизнес-потребностям.
  • Демонстрации продукта: Аналитик и тестировщик вместе участвуют в демонстрациях результатов работы команды.
Как проводится декомпозиция и оценка задач?
  • Декомпозиция: Это процесс разделения больших и сложных задач (например, эпиков или фич) на более мелкие, управляемые и понятные части (например, пользовательские истории - User Stories, технические задачи - Tasks).
    • Зачем:
      • Лучшее понимание объема и содержания работы.
      • Возможность более точной оценки.
      • Упрощение планирования и распределения работы.
      • Возможность пошаговой реализации и поставки ценности.
    • Как проводится (обычно в Agile):
      1. Определение высокоуровневой цели (Epic).
      2. Разбиение Эпика на более мелкие функциональные блоки (Features или крупные User Stories).
      3. Дальнейшее разбиение User Stories на более мелкие, реализуемые за одну итерацию (спринт) User Stories (согласно критерию INVEST, особенно 'S' - Small).
      4. (Иногда) Разбиение User Story на технические подзадачи (Tasks) для разработчиков и тестировщиков (например, "Реализовать API", "Написать Unit-тесты", "Сверстать UI", "Провести тестирование").
    • Роль аналитика: Активно участвует в декомпозиции на уровне Эпиков и User Stories, помогая правильно определить границы и содержание каждой части с точки зрения бизнес-логики и пользовательской ценности.
  • Оценка задач: Это процесс определения примерного объема усилий, необходимых для выполнения задачи.
    • Зачем: Планирование релизов и спринтов, прогнозирование сроков, понимание пропускной способности команды (velocity).
    • Как проводится (обычно в Agile):
      1. Командная работа: Оценку дает вся команда разработки, а не один человек (и не аналитик или менеджер).
      2. Относительная оценка (Story Points): Команда оценивает задачи не в абсолютных единицах времени (часах), а в относительных единицах (Story Points), сравнивая их сложность, объем работы и неопределенность с эталонными задачами. Используются шкалы (Фибоначчи: 1, 2, 3, 5, 8, 13... или другие).
      3. Метод оценки: Часто используется Planning Poker – техника, где каждый член команды анонимно выкладывает свою оценку, а затем обсуждаются расхождения до достижения консенсуса.
    • Роль аналитика: Представляет задачу команде, объясняет требования и критерии приемки, отвечает на вопросы, чтобы команда могла дать максимально точную оценку. Сам аналитик обычно не оценивает задачи разработки в Story Points.
Что такое DoR, DoD, AC ?

Это важные артефакты, используемые в Agile (особенно Scrum) для обеспечения ясности и качества работы:

  • DoR (Definition of Ready) - Определение Готовности:

    • Это чек-лист критериев, которым должна соответствовать Пользовательская История (User Story) или другой элемент бэклога перед тем, как команда возьмет его в работу в спринт.
    • Цель: Убедиться, что задача достаточно проработана, понятна и готова к реализации, чтобы команда не тратила время на выяснение базовых вопросов в спринте.
    • Примеры критериев: User Story написана по формату, есть понятные Acceptance Criteria, есть макеты UI (если нужны), внешние зависимости определены, Story оценена командой.
    • DoR определяется и согласовывается всей командой.
  • DoD (Definition of Done) - Определение Готовности (Завершённости):

    • Это общий для всей команды чек-лист критериев, которым должна соответствовать Задача/User Story/Инкремент продукта, чтобы считаться полностью завершенной.
    • Цель: Обеспечить единое понимание качества и полноты выполненной работы, гарантировать, что инкремент потенциально готов к выпуску.
    • Примеры критериев: Код написан и прошел ревью, Unit-тесты написаны и проходят, функциональное тестирование пройдено, соответствует Acceptance Criteria, документация обновлена, развернуто на тестовом стенде, получило одобрение Владельца Продукта.
    • DoD определяется и согласовывается всей командой (иногда с учетом стандартов организации).
  • AC (Acceptance Criteria) - Критерии Приемки:

    • Это условия, специфичные для конкретной User Story, которые должны быть выполнены, чтобы данная User Story считалась реализованной с точки зрения пользователя или бизнеса. Они описывают ожидаемое поведение системы.
    • Цель: Уточнить требования User Story, сделать ее тестируемой и однозначной. Служат основой для написания тест-кейсов.
    • Форматы: Часто пишутся в виде нумерованного списка или в формате Given/When/Then (BDD).
    • Пример (для Story "Как покупатель, я хочу фильтровать товары по цвету..."):
      1. На странице есть блок фильтра "Цвет".
      2. При выборе цвета N список товаров обновляется.
      3. В списке отображаются только товары цвета N.
    • AC обычно формулируются аналитиком или Владельцем Продукта и согласовываются с командой.
Какие виды оценки задач чаще всего применяются? Какие сам используешь?
  • Виды оценки:

    • Экспертная оценка (Expert Judgment): Оценка дается одним или несколькими опытными членами команды на основе их прошлого опыта. Быстро, но субъективно.
    • Оценка по аналогии (Analogy Estimating): Задача сравнивается с похожими задачами, выполненными ранее, и оценивается аналогично.
    • Декомпозиция (Bottom-up Estimating): Задача разбивается на мелкие подзадачи, каждая оценивается отдельно, затем оценки суммируются. Может быть точной, но трудоемкой.
    • Оценка по трем точкам (Three-point Estimating): Оцениваются три сценария: оптимистичный (O), пессимистичный (P) и наиболее вероятный (M). Итоговая оценка рассчитывается по формуле (например, PERT: (O + 4M + P) / 6).
    • Относительная оценка (Relative Sizing):
      • Story Points (Стори Поинты): Оценка задачи в относительных единицах (сложность, объем, неопределенность) по сравнению с другими задачами. Используется шкала (Фибоначчи, степени двойки). Применяется в Scrum.
      • T-shirt Sizing (Размеры футболок): Грубая относительная оценка (XS, S, M, L, XL). Используется для быстрой высокоуровневой оценки бэклога.
    • Planning Poker: Техника для групповой оценки в Story Points с использованием карт для достижения консенсуса.
    • Оценка в идеальных часах/днях: Оценка времени, которое потребовалось бы на задачу, если бы не было отвлечений, ожиданий и т.д. (Не фактическое календарное время).
  • Какие сам используешь (пример ответа): "На проектах, где мы работали по Scrum, основным методом оценки задач разработки был Planning Poker с использованием Story Points. Я, как аналитик, представлял User Story и отвечал на вопросы, а команда давала оценку в Story Points. Для очень крупных задач или на ранних стадиях планирования мы могли использовать T-shirt Sizing для быстрой приоритизации. Оценку своих аналитических задач я иногда делал в часах или днях, так как это проще для индивидуальной работы, но старался также соотносить их сложность с общей шкалой команды, если это было применимо."

В чем разница между оценкой в часах и стори пойнтах?
Признак Оценка в Часах (Абсолютная) Оценка в Story Points (Относительная)
Единица измерения Время (часы, дни). Абстрактные единицы (пункты).
Что измеряет Продолжительность выполнения задачи. Относительную сложность, объем работы и неопределенность задачи по сравнению с другими.
Точность Часто неточна, сильно зависит от исполнителя, подвержена оптимизму/пессимизму. Со временем становится более стабильной для команды в целом (через Velocity).
Зависимость от исполн. Сильная. Опытный сделает быстрее неопытного. Низкая (в идеале). Отражает сложность задачи для команды.
Сравнение между командами Нельзя напрямую сравнивать часы разных команд. Нельзя напрямую сравнивать SP разных команд (1 SP у команды А ≠ 1 SP у команды Б).
Влияние внешних факторов Сильно влияет (митинги, ожидания, переключения). Меньше влияет (оценивается "усилие", а не календарное время).
Цель Предсказать точное время завершения. Предсказать объем работы, который команда может выполнить за итерацию (Velocity), для планирования релизов/спринтов.
Методология Чаще в традиционных. Стандарт для Agile/Scrum.
Как аналитик оценивает сроки реализации задачи?
  • Важно: Аналитик не оценивает сроки реализации задач разработки. Оценку трудоемкости и, соответственно, сроков реализации конкретных User Stories или технических задач дает команда разработки, так как именно они будут выполнять эту работу и лучше понимают технические сложности.
  • Роль аналитика в оценке сроков:
    1. Обеспечение качественных требований: Чем понятнее, полнее и однозначнее требования и критерии приемки, тем точнее команда сможет оценить задачу. Аналитик отвечает за качество этих входных данных для оценки.
    2. Декомпозиция: Помогает разбить большие задачи на более мелкие и понятные, что упрощает оценку командой.
    3. Участие в обсуждении оценки: Присутствует на сессиях оценки (Planning Poker), отвечает на вопросы команды, проясняет детали, чтобы помочь им прийти к консенсусу.
    4. Оценка аналитических задач: Аналитик может и должен оценивать свои собственные задачи, связанные с проработкой требований, исследованием, моделированием. Эта оценка (часто в часах или днях) может учитываться при общем планировании.
    5. Высокоуровневая оценка (редко): На самых ранних этапах проекта аналитик может дать очень грубую, предварительную оценку сложности фичи или эпика (например, в T-shirt размерах), основываясь на своем понимании предметной области и предыдущем опыте, но это не является точной оценкой сроков реализации.
Какие есть методологии разработки? По какой методологии работаешь или работал? Какая методология тебе больше нравится?
  • Основные методологии разработки:

    • Каскадная модель (Waterfall): Последовательное выполнение этапов (требования -> дизайн -> разработка -> тестирование -> внедрение). Мало гибкости, изменения на поздних этапах дороги.
    • V-образная модель (V-Model): Модификация Waterfall, подчеркивающая связь между этапами разработки и соответствующими этапами тестирования.
    • Итеративная модель (Iterative): Разработка ведется короткими циклами (итерациями), в каждом из которых создается работающая часть продукта, которая затем дорабатывается.
    • Спиральная модель (Spiral): Фокусируется на управлении рисками, сочетает итеративность с этапами Waterfall.
    • Гибкие методологии (Agile): Семейство подходов, основанных на Agile-манифесте. Ценности: люди и взаимодействие важнее процессов, работающий продукт важнее документации, сотрудничество с заказчиком важнее контракта, готовность к изменениям важнее следования плану.
      • Scrum: Фреймворк с фиксированными итерациями (спринтами), четкими ролями (Scrum Master, Product Owner, Development Team) и событиями (Planning, Daily, Review, Retrospective).
      • Kanban: Метод управления потоком работ, фокусирующийся на визуализации (доска), ограничении незавершенной работы (WIP-лимиты) и оптимизации потока (измерение Lead Time/Cycle Time).
      • Экстремальное программирование (XP - Extreme Programming): Набор инженерных практик (парное программирование, TDD, рефакторинг, непрерывная интеграция).
      • Lean Software Development: Принципы бережливого производства, примененные к разработке ПО (устранение потерь, быстрая доставка, уважение к людям).
  • По какой методологии работаешь/работал (пример ответа): "Большая часть моего опыта связана с Agile, в основном я работал в командах, использующих Scrum. Мы работали двухнедельными спринтами, проводили все стандартные Scrum-церемонии. На одном из проектов применялись элементы Kanban для управления потоком задач поддержки и небольших доработок. Также в начале карьеры я участвовал в проекте, который велся по каскадной модели, где требовалось подготовить полное ТЗ перед началом разработки."

  • Какая методология больше нравится (пример ответа): "Мне больше импонирует Agile-подход, в частности Scrum, из-за его гибкости и ориентации на быструю обратную связь. Возможность регулярно показывать работающий продукт заказчику и получать фидбек позволяет создавать действительно нужный продукт и быстро адаптироваться к изменениям. Ценность тесного взаимодействия внутри команды и с Владельцем Продукта также очень высока. В то же время, я понимаю, что Kanban может быть более эффективен для команд с непрерывным потоком задач (например, поддержка), а элементы Waterfall (особенно тщательное начальное планирование и документирование) могут быть полезны в строго регулируемых или очень крупных проектах с фиксированным скоупом."

Где можно применять Scrum и где нельзя?
  • Где Scrum эффективен:
    • Сложные продукты и проекты: Где требования не полностью ясны в начале или могут часто меняться.
    • Инновационные проекты: Где результат не предопределен и требуется исследование и адаптация.
    • Проекты с высокой неопределенностью: Scrum помогает управлять рисками через короткие итерации и обратную связь.
    • Кросс-функциональные, самоорганизующиеся команды: Где команда способна самостоятельно решать, как выполнять работу.
    • Проекты, где важна быстрая доставка ценности и регулярная обратная связь от заказчика/пользователей.
  • Где Scrum может быть неэффективен или труден в применении:
    • Очень простые, короткие проекты: С четко определенными требованиями и результатом (накладные расходы на Scrum-церемонии могут быть избыточны).
    • Проекты с абсолютно фиксированным скоупом, сроками и бюджетом: Где нет пространства для гибкости и адаптации (хотя и здесь Scrum может помочь управлять рисками).
    • Отсутствие вовлеченного Владельца Продукта: Без человека, который определяет приоритеты и дает обратную связь, Scrum теряет смысл.
    • Команда не готова или не может быть самоорганизующейся: Требуется директивное управление.
    • Команда не является кросс-функциональной: Не может самостоятельно поставить инкремент продукта.
    • Сильное сопротивление изменениям в организации или со стороны заказчика.
    • Поддержка продукта: Для управления потоком инцидентов и запросов на обслуживание часто лучше подходит Kanban.
Какие существуют мероприятия в Scrum?

В Scrum есть 5 формальных событий (мероприятий, церемоний):

  1. Спринт (Sprint): "Контейнер" для всех остальных событий. Итерация фиксированной длины (обычно 1-4 недели), в течение которой создается "Готовый", потенциально готовый к выпуску Инкремент продукта.
  2. Планирование Спринта (Sprint Planning): Проводится в начале Спринта. Команда (Scrum Team: PO, SM, Developers) выбирает элементы из Бэклога Продукта (Product Backlog) для реализации в текущем Спринте и определяет, как работа будет выполнена. Результат – Цель Спринта (Sprint Goal) и Бэклог Спринта (Sprint Backlog).
  3. Ежедневный Скрам (Daily Scrum): Короткое (15 минут) ежедневное собрание для команды разработки (Developers) для синхронизации и планирования работы на следующие 24 часа. Обычно отвечают на вопросы: "Что я делал вчера для достижения Цели Спринта?", "Что я буду делать сегодня?", "Какие препятствия мне мешают?".
  4. Обзор Спринта (Sprint Review): Проводится в конце Спринта. Scrum-команда и стейкхолдеры инспектируют созданный Инкремент продукта. Команда демонстрирует результаты работы, собирается обратная связь, обсуждается прогресс и возможное обновление Бэклога Продукта.
  5. Ретроспектива Спринта (Sprint Retrospective): Проводится после Обзора Спринта и перед следующим Планированием. Scrum-команда инспектирует прошедший Спринт с точки зрения процессов, инструментов, взаимодействия и создает план улучшений, которые будут внедрены в следующем Спринте.
Что такое Kanban? Какие существуют 3 основных правила в Kanban?
  • Kanban: Это метод управления рабочими процессами, направленный на постепенные улучшения (эволюционные изменения). Он помогает визуализировать работу, ограничивать незавершенную работу (WIP) и максимизировать эффективность потока. Kanban не предписывает конкретные роли или итерации, как Scrum.
  • Три основных практики/правила Kanban:
    1. Визуализация рабочего процесса (Visualize Workflow): Использование Kanban-доски для отображения всех этапов работы (колонок) и текущих задач (карточек) на каждом этапе. Это делает процесс прозрачным для всех.
    2. Ограничение незавершенной работы (Limit Work-In-Progress - WIP): Установка максимального количества задач, которые могут одновременно находиться на определенном этапе (или группе этапов, или во всей системе). Это предотвращает перегрузку, выявляет узкие места (bottlenecks) и способствует завершению начатой работы перед началом новой.
    3. Управление потоком и его измерение (Manage Flow & Measure): Постоянный мониторинг движения задач по доске, выявление и устранение блокировок и узких мест для оптимизации потока. Измерение ключевых метрик, таких как Время выполнения (Lead Time) – общее время от запроса до поставки, и Время цикла (Cycle Time) – время активной работы над задачей, для понимания и улучшения процесса.

(Иногда выделяют больше принципов/практик, но эти три – самые базовые).

В чем различия Kanban и Scrum?
Признак Scrum Kanban
Основная цель Разработка сложных продуктов итерациями. Оптимизация и улучшение существующего потока работ.
Каденция/Ритм Фиксированные итерации (Спринты). Непрерывный поток (Continuous Flow).
Роли Предписаны (PO, SM, Developers). Нет предписанных ролей (можно использовать существующие).
Изменения Нежелательны внутри Спринта (влияют на цель). Возможны в любой момент, если позволяют WIP-лимиты.
Основные метрики Velocity (Скорость команды), Sprint Goal. Lead Time, Cycle Time, Throughput (Пропускная способность), WIP.
Оценка задач Обычно требуется (Story Points). Не требуется (но может использоваться).
События/Митинги Предписаны (Planning, Daily, Review, Retro). Нет предписанных (могут быть Daily, ревью, ретро, но по необходимости).
Способ улучшений Через Ретроспективу в конце Спринта. Постоянные, постепенные улучшения (Кайдзен).
Предписанность Более предписывающий фреймворк. Менее предписывающий, более адаптивный метод.

Общее видение профессии

Кто такой хороший аналитик по твоему мнению?

"Хороший аналитик, на мой взгляд, это не просто человек, который умеет писать требования. Это специалист, обладающий комбинацией качеств:

  • Отличные коммуникативные навыки: Умение слушать и слышать стейкхолдеров, задавать правильные вопросы, ясно и четко излагать мысли (устно и письменно), фасилитировать встречи, находить общий язык с разными людьми (бизнесом, разработчиками, тестировщиками).
  • Сильное аналитическое и системное мышление: Способность видеть картину в целом, разбираться в сложных системах и процессах, выявлять связи, зависимости и противоречия, структурировать информацию.
  • Глубокое понимание предметной области (или быстрая обучаемость): Чтобы говорить с бизнесом на одном языке и понимать суть их потребностей.
  • Владение инструментами и техниками: Умение применять различные методы сбора требований, нотации моделирования (BPMN, UML), инструменты прототипирования, работать с SQL, понимать основы API и т.д.
  • Проактивность и инициативность: Не просто "переводчик" хотелок, а партнер, который помогает бизнесу найти оптимальное решение, предлагает улучшения, выявляет скрытые потребности и риски.
  • Внимание к деталям: Способность замечать мелочи, которые могут оказать существенное влияние на результат.
  • Эмпатия: Умение поставить себя на место пользователя или заказчика, чтобы лучше понять их проблемы и ожидания.
  • Навыки решения проблем: Способность анализировать проблемы, предлагать варианты решений и оценивать их последствия.
  • Гибкость и адаптивность: Готовность к изменениям требований и умение работать в условиях неопределенности.
  • Ориентация на результат и ценность: Понимание того, как его работа влияет на конечный продукт и бизнес-цели."
В чем отличие джуна от сеньора?
Признак Junior Analyst (Джун) Senior Analyst (Сеньор)
Самостоятельность Требует значительного контроля и менторства. Работает по четко поставленным задачам. Высокая самостоятельность. Может вести фичу/модуль/проект от идеи до релиза. Определяет задачи сам.
Объем ответственности Обычно отвечает за конкретные задачи или небольшие участки функциональности. Отвечает за широкие области, сложные фичи, интеграции, может влиять на архитектуру.
Глубина знаний Базовые знания инструментов и техник. Знает "что", но не всегда "почему" и "как лучше". Глубокие знания и опыт применения разных техник и инструментов. Понимает компромиссы.
Широта кругозора Ограничен текущей задачей/проектом. Видит картину в целом, понимает бизнес-контекст, стратегию продукта, архитектурные ограничения.
Работа с неопредел. Теряется в условиях неясных требований, требует четких инструкций. Умеет работать с неполными/противоречивыми требованиями, сам их проясняет, предлагает решения.
Инициативность Выполняет поставленные задачи. Проактивен, выявляет проблемы, предлагает улучшения процессов и продукта, предвидит риски.
Коммуникация Учится эффективно общаться. Мастер коммуникации, может вести сложные переговоры, убеждать, фасилитировать.
Влияние Минимальное. Может влиять на решения команды, продукта, архитектуры.
Менторство Нуждается в менторе. Часто выступает ментором для других аналитиков.
Кто такой плохой аналитик?

"Плохой аналитик" – это антипод хорошего. К его характеристикам можно отнести:

  • Плохие коммуникации: Не умеет слушать, перебивает, неясно выражает мысли, избегает общения.
  • Поверхностный анализ: Не вникает в суть проблемы, не задает уточняющих вопросов "почему?".
  • Работа "передатчиком": Просто записывает "хотелки" заказчика без анализа, критики и поиска оптимального решения.
  • Создание неоднозначных требований: Пишет расплывчатые, неполные, противоречивые или нетестируемые требования.
  • Игнорирование деталей и пограничных случаев: Упускает важные сценарии, особенно обработку ошибок.
  • Нежелание разбираться в предметной области или технологии: Остается на поверхностном уровне понимания.
  • Принятие решений на основе предположений, а не фактов.
  • Сопротивление обратной связи и изменениям.
  • Отсутствие системного мышления: Не видит связи между компонентами системы и последствий изменений.
  • Слабое владение инструментами: Неэффективно использует или не использует вовсе средства моделирования, прототипирования и т.д.
  • Пассивность: Не проявляет инициативы, не предлагает решения.
Чем должен заниматься системный аналитик?

Системный аналитик, в отличие от бизнес-аналитика (хотя роли часто пересекаются), больше фокусируется на технических аспектах системы и на том, как система будет реализована для удовлетворения бизнес-требований. Его ключевые задачи:

  • Трансляция бизнес-требований в технические спецификации: Детализация функциональных требований до уровня, понятного разработчикам.
  • Проектирование решений (на логическом уровне): Определение компонентов системы, их взаимодействия, потоков данных.
  • Анализ и описание нефункциональных требований (NFR): Производительность, безопасность, надежность, масштабируемость и т.д.
  • Проектирование и описание API / Интеграций: Определение контрактов взаимодействия между системами или компонентами.
  • Моделирование данных: Разработка логической (иногда и физической) модели данных, описание сущностей, атрибутов, связей.
  • Анализ влияния изменений: Оценка того, как изменения в одной части системы повлияют на другие.
  • Тесное взаимодействие с разработчиками и архитекторами: Обсуждение технических решений, ограничений, выполнимости требований.
  • Понимание архитектуры системы: Знание того, как система построена и как ее компоненты взаимодействуют.
  • Анализ существующих систем: Изучение legacy-систем для миграции или интеграции.
  • Подготовка технической документации: Спецификации, диаграммы (UML, ERD), описания API.

Итог: Если бизнес-аналитик больше отвечает на вопрос "ЧТО делать?", то системный аналитик – "КАК это будет работать в системе?".