Итак, что же такое Reverse Engineering? RE – это процесс, в ходе которого мы извлекаем информацию из уже имеющегося решения и представляем ее в нужном формате. В данном контексте бизнес-аналитику необходима информация, которая станет основой для формулировки требований.

Эта методика не представлена в своде знаний IIBA – BABOK, она находится в технике Document Analysis.

Задача Reverse Engineering возникает всегда в контексте какой-то другой задачи. Бизнес не заинтересован в самом процессе RE, так как это может быть дорогостоящей операцией, требующей участия различных заинтересованных сторон и высокой квалификации самого бизнес-аналитика. При этом часто акцент делается именно на его hard skills. Поэтому прежде чем приступать к выполнению RE, важно четко определить границы этой задачи и ее цель.

Кейсы для Reverse Engineering

  • Нужно уточнить требования для обеспечения поддержки текущего функционала.

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

  • Запланирован проект по полному update-ту устаревшей системы.

  • У клиента имеется старая система, и вы пришли с вашим готовым продуктом для ее полной замены.

  • Необходимо разработать требования для миграции данных между двумя действующими системами.

  • Требуется составить требования для интеграции уже имеющихся решений.

  • Нужно провести детальный анализ конкурентного продукта, чтобы выяснить его полезные функции и принцип их работы.

Все перечисленные задачи бизнес-аналитика объединяет одно ключевое свойство: для их успешного выполнения необходимо иметь актуальные системные требования (в идеале). Именно на основе достоверного и глубокого понимания существующей системы (As-Is) бизнес-аналитик сможет сформулировать новый набор требований.\

Источники информации для RE:

  • Интервью с тех-специалистами. Это могут быть разработчики, тестировщики, а также сотрудники служба customer support.

  • Если есть возможность самостоятельно поэкспериментировать нажимая на различные кнопки, это станет отличным источником как для описания, так и для проверки гипотез.

  • Анализ данных системы (data driven decision) может существенно помочь в принятии решений.

  • Детальное Изучение структуры данных.

  • Анализ исходного кода (если он доступен).

  • Интервью с заинтересованными сторонами из бизнеса, конечными пользователями и наблюдение за их взаимодействием с продуктом (парой это единственный доступный метод).

  • Понимание специфики домена.

  • Существующая документация (к сожалению ее часто нету, либо сильно устарела).

  • Анализ Тикетов в Jira, Asana, Trello или других системах

    Reverse Engineering бизнес требований советы для Senior Business Analyst ?

    Нужно помнить следующие

    • Всеобъемлющие документы никому не нужны, особенно если они существуют сами по себе. Наша цель — решить задачу в контексте новых требований к решению. Здесь перфекционизм зачастую неуместен.

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

    • Внимательно выбирайте уровень детализации. Причины те же, что и в предыдущем пункте.

    • Не путайте, как система функционирует, и как она должна функционировать. Вы можете вести параллельный список изменений, который будет добавлен в backlog, но восстановленные требования должны быть зафиксированы в формате As Is.

    • Тщательно определяйте объем исследования и следите за ним в процессе работы. Легко увлечься и застрять на незначительных деталях или уйти в сторону. Что считать «мелочью», зависит от критичности исходной задачи, которая и вызвала реконструкцию требований.

    • Если планируется дальнейшая работа с восстановленными требованиями, а не только разовая реконструкция, стоит сразу позаботиться о создании процесса обновления системной документации.

    Давайте напоследок рассмотрим группы пользователей из BABOK и особенности общения с ними

    Reverse Engineering бизнес требований советы для Senior Business Analyst ?
    Reverse Engineering бизнес требований советы для Senior Business Analyst ?

    End User. Они напрямую работают с решением и могут показать его полезность, но:

    • Им может быть неинтересно обсуждать текущее состояние системы, так как это их рутина.

    • Часто перескакивают на свои идеальные сценарии работы.

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

    • Знают только свою часть процесса и могут путать факты с предположениями.

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

    Operational Support. Эта группа может предоставить полезную информацию, так как собирает данные из тикетов, но:

    • Часто не замечает свои ошибки, ассоциируя себя с системой.

    • Знания о процессе могут быть поверхностными.

    • Малоинициативны и неохотно идут на диалог.

    • Как технические специалисты могут сильно углубляться в детали.

    Sponsor. Человек, отвечающий за бюджет, может прояснить странные шаги в в бизнес-процессе, но:

    • Редко погружается в детали и быстро забывает о проблемах после их решения.

    • Получает обобщенную информацию, что может приводить к устаревшим представлениям.

    • Занят, поэтому к нему сложно добраться.

    Customers. клиенты бизнеса, который пользуется решением

    • Редко вовлечены и доступны для интервью.

    • Могут неверно трактовать работу системы и показывать низкую заинтересованность.

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

    Regulator. На начальном этапе не очень полезны, но могут указать на ограничения, о которых другие не знают.

    Supplier/Vendor. Используют уже готовые компоненты, предоставляемые третьими лицами. В этом случае они могут быть дополнительным источником информации по деталям реализации, но

    • Редко идут на контакт и могут саботировать работу при отключении их решения.

    • Могут отсутствовать из-за выхода их компании с рынка и других причин

    К сожалению, нет волшебной кнопки, которая позволит решить все выше описанные проблемы. В целом можно рекомендовать две вещи:

    - Кросс-проверка информации.

    - Сверка с другими источниками.

    - Использование техник "Наблюдение" и "Анализ документов"

    Особенности сбора информации от Тех. Специалистов

    Implementation Subject Matter Expert / Тестировщики. Эта группа стейкхолдеров может стать ценным источником сведений о процессе реализации, однако имеет свои нюансы. Технические специалисты, как правило, не погружаются в детали бизнеса. Они прекрасно понимают, как работает система, но зачастую не могут объяснить, зачем это необходимо. Это затрудняет их способность оценивать актуальность функционала. В их окружении часто утверждают, что определённая функция нужна: имеется документация, поддерживающая это мнение, существуют зависимые функции и поступают баг-репорты от пользователей как по самой функции, так и по смежным аспектам. Опираясь только на мнения этой группы, легко воспроизвести старое поведение системы с его недостатками, включая несоответствие реальным потребностям бизнеса.

    Менеджеры проектов / Бизнес-аналитики. В целом, это достаточно стабильная группа специалистов, располагающаяся на пересечении технических и бизнес-стейкхолдеров и помогающая соединить потребности с их реализацией. От них не стоит ожидать глубоких технических описаний, но они могут рассказать историю проекта, что дополнит общее понимание контекста. Обычно у них есть актуальный список проблем и хорошее понимание политической ситуации в компании.

    Надеюсь информация по Reverse Engineering бизнес требований оказались для вас полезными. Напишите в комментариях, как вы делали обратный инжиниринг бизнес требований на своих проектах  Не забудьте поставить лайк этому посту и подписаться — это вдохновляет меня на создание новых материалов! Спасибо за вашу поддержку!

Комментарии (7)


  1. Rhbnbr
    01.02.2025 20:40

    • Анализ исходного кода (если он доступен).

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


    1. Pro_Project_Management Автор
      01.02.2025 20:40

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


  1. ArtyomOchkin
    01.02.2025 20:40

    Да простит меня автор статьи, но половина и так очевидна, а в целом статья не имеет под собой ничего конкретного. Или может это я не понял чего-то. Не поймите не так, но есть некоторое ощущение ai текста, хотя я могу быть не прав.

    Имхо, было бы интересно увидеть (почитать) об интересных случаях и подходах reverse-инжиниринга, например, что содержится в коде умных часов или какой зверь кроется в глубинах основ кода Windows. Или что содержится в дистрибутиве другой формально проприетарной ОС, разбор содержимого с пояснениями и кодом. Как мне кажется, это было бы интереснее.


  1. AlexunKo
    01.02.2025 20:40

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


    1. N71591
      01.02.2025 20:40

      Согласна. Написать ИИ можно, но как он совместит несовместимое и противоречивое. Еще из головы нескольких разработчиков это все достанет и совместит.


  1. saag
    01.02.2025 20:40

    Спираль истории, я еще помню сайт вроде назывался cracklab, который потом как-то исчез, потому как за это стали ата-та делать, а тут уже требования бизнеса к кряку...


  1. N71591
    01.02.2025 20:40

    Вот это систематизация! Отличная статья. И надеюсь, что описанной работой сама больше не буду заниматься)) хотя в моменте очень интересно.