Как системный анализ помогает экономить ресурсы: кейс из реальной разработки

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Уже два года я работаю системным аналитиком в крупной телеком-компании, которая развивает IT-направление. 

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

made by chatgpt
made by chatgpt

Контекст

У нас 2 мобильных приложения, около 10 веб-приложений и 50+ микросервисов. Всем этим пользуются около 7 миллионов человек. Это сложная экосистема, где важно качественно планировать и управлять ресурсами.

Мы сталкиваемся с несколькими основными вызовами:

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

  • Миллионы пользователей. Система должна выдерживать высокие нагрузки.

  • Множество приложений и сервисов. Интеграция и синхронизация между платформами требует внимания к деталям.

Любой проект начинается с определения целей бизнеса и довольно амбициозных запросов. Кто-то хочет запустить новые услуги для клиентов или улучшить существующие продукты. И тут всегда встаёт главный вопрос: а можно ли это реализовать?

Первый кейс: как потерять ресурсы

Бизнес захотел создать мобильное приложение для учёта ресурсов. Компания нанимает инхаус-команду из 9 человек, куда входят разработчики, тестировщики, скрам-мастер. Средний фонд оплаты труда такой команды составил примерно $15 000 в месяц. Планировалось реализовать проект за 8–10 месяцев.

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

Почему всё пошло не так:

  1. Нечёткие требования. Разработчики получили задачу без подробного описания функционала.

  2. Проблемы в общении. Чтобы уточнить требования, разработчик задавал вопросы тестировщику, тот — заказчику, а ясности всё равно не было.

  3. Постоянные исправления и доработки. Из-за недостатка информации и отсутствия конкретики ошибки множатся, на их исправление уходит время, а конца не видно. 

  4. Переработки и выгорание. Команда тратила много времени и энергии на уточнение деталей и доработки. Неопределённость и постоянные изменения демотивировали людей.

Результат: вместо запланированных $140 000 компания потратила на проект больше $180 000. Сроки увеличились на 4 месяца. Готового продукта так и не появилось.

Второй кейс: как это исправить

Для того же проекта решили привлечь системного аналитика в команду. Сроки, и планы были аналогичными, к базовым затратам прибавился +1 человек ФОТа (~$18 000 в месяц). Проект завершили за полгода с нормальным рабочим MVP, который можно развивать дальше. 

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

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

Бизнес говорит абстрактно: «Хочу приложение» → Разработчики начинают работу, но у них возникает куча вопросов → Они идут с вопросами к тестировщикам, те обращаются к бизнесу, но не получают полных ответов → Команда не укладывается в сроки, из-за постоянных доработок и задержек теряется мотивация, проект стопорится. 

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

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

Чем занимается системный аналитик и как помогает команде

  • Формулирует чёткие требования. Аналитик переводит запросы и пожелания бизнеса в конкретные задачи для команды разработки.

  • Систематизирует работу. Требования фиксируются в удобных инструментах, таких как Miro, Notion и Confluence, чтобы упростить разработку.

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

Инструменты для системного анализа

Немного расскажу об инструментах, которыми мы пользуемся в работе.

  1. Miro. Это платформа для визуализации процессов и совместной работы. В Miro можно наглядно показать, как будет работать система, строя диаграммы последовательностей и взаимодействий.

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

  1. Notion. Платформа для хранения документации по проекту. В Notion фиксируются бизнес-требования, критерии приёмки, гипотезы и другие ключевые элементы.

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

  2. Confluence. Инструмент для создания и ведения документации. В Confluence мы создаем sequence-диаграммы, которые помогают разработчикам лучше понимать, как будут взаимодействовать компоненты системы.

    Для одного из микросервисных проектов мы как раз создавали sequence-диаграммы в Confluence. Это сильно упростило работу разработчиков и тестировщиков, так как все взаимодействия были чётко прописаны.

  3. Mermaid. Инструмент для создания диаграмм с помощью кода. В Mermaid легко вносить изменения, а диаграммы можно интегрировать с Confluence.


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

Подход Doc First: документация вперёд

У нас в компании практикуется подход Doc First: сначала создаётся документация, потом пишется код. Это не только упрощает работу, но и экономит нервы.

Преимущества такого подхода:

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

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

  • Легко вносить изменения. Если что-то поменялось, это сразу фиксируется в документации. Команде проще разобраться и адаптироваться.

Пример: мы разрабатывали новый API для мобильного приложения. Сначала сделали спецификацию в формате Swagger, которая описывает все возможные взаимодействия с системой. Подняли моки в Postman, что позволило разработчикам начать работу с готовыми примерами. Описали алгоритмы работы для тестировщиков, чтобы сразу приступить к работе с полным пониманием задачи. 

Управление задачами и тестирование

Задачи мы ведём в Jira. Она интегрируется с Confluence и другими инструментами, так легче отслеживать процессы.

В целом управление задачами у нас выглядит так:

  1. Формулируем требования. Системный аналитик фиксирует задачи в Jira и связывает их с документацией в Confluence.

  2. Назначаем разработчиков. Задачи распределяются между участниками команды, каждый знает, за что отвечает.

  3. Автоматизируем и интегрируем. Jira интегрируется с GitLab и Notion, так что весь процесс становится проще и прозрачнее.

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

Давайте подытожим

Системный анализ — это must-have для бизнеса, потому что он:

  • Ускоряет разработку. Системный аналитик формулирует задачи и последовательно фиксирует требования, чтобы уменьшить количество итераций и ускорить процесс. Например, в проектах, где был вовлечен системный аналитик, среднее время разработки сократилось почти в два раза — с 8–10 месяцев до 4–6.

  • Помогает снизить затраты. Благодаря требованиям и документации становится меньше ошибок и, как следствие, переработок. Это снижает общие затраты на проект.

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

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

Источник: https://habr.com/ru/articles/854600/


Интересные статьи

Интересные статьи

Вы наверняка часто ловили себя на мысли, что многие вещи в нашем мире устроены максимально нелогично, и, по-хорошему, должны были бы быть устроены совершенно по-другому. В философии эта проблема часто...
Телекомы во многих странах продвигают идею «налога на трафик» для поставщиков контента. Инициатива продиктована ростом цен на оптоволокно и возрастающей нагрузкой на сеть. Крупные поставщики контента ...
Решения для больших компаний обычно должны выдерживать высокие нагрузки. Когда в штате много десятков тысяч человек, и значительная доля из них ежедневно пользуются ...
Предыстория Когда-то у меня возникла необходимость проверять наличие неотправленных сообщений в «1С-Битрикс: Управление сайтом» (далее Битрикс) и получать уведомления об этом. Пробле...
Несмотря на то, что “в коробке” с Битриксом уже идут модули как для SOAP (модуль “Веб сервисы” в редакции “Бизнес” и старше), так и для REST (модуль “Rest API” во всех редакциях, начиная с...