Информационные технологии и интернет
Порталы и сервисы
Декабрь 2023
Около 3х лет назад, теперь уже наш клиент заказал разработку портала, чем-то напоминающего “BlaBlaCar”, только для бизнеса. Система позволяет заказчикам размещать запросы на перевозку, а исполнителям откликаться на них и участвовать в аукционе. Одна из особенностей проекта - внутренний документооборот. Система автоматически формирует все необходимые документы: договор и талон заявки, путевой лист, товарно-транспортная накладную, акт сверки. Клиент обратился в NooSoft, чтобы мы “реанимировали” проект. Предыдущая команда выпустила в продакшн версию, которая, мягко говоря, была сырой и недоработанной. Пользователи постоянно сталкивались с многочисленными неудобствами и багами. Перед нами стала задача быстро исправить ряд технических и функциональных проблем.
Аудит
Для понимания, что предстоит исправлять, был проведен аудит и выявлено множество проблем. Напрашивалось одно решение - начать разработку с нуля, но система уже активно используется около полутора лет.
После проведенного аудита команда была в шоке.
И тут мы поняли, что починить проект - это второстепенная задача. Приоритетом стало разобраться, как в принципе он работает. Но в чем загвоздка, спросите вы? Открываете документацию и разбираетесь.
Нас поджидал главный сюрприз - документации нет!
Создание документации
Вы пробовали разбирать чужой проект без документации? А ребята из NooSoft теперь в этом профи.
Из-за отсутствия документации наша команда предоставляла клиенту детальные отчеты о проделанной работе. Каждое изменение было описано: что изменялось, как и почему. Эти отчеты стали отправной точкой для формирования документации.
Создание документации и тестирование стали ключевыми этапами для обеспечения качества проекта, включая подробное описание его структуры, функционала и процессов работы.
Аудит безопасности
Провели аудит безопасности и внедрили меры защиты данных. Для предотвращения несанкционированного доступа были укреплены интеграции с приложениями.
Оптимизация производительности
Оптимизировали производительность системы, учитывая огромное количество данных и интеграцию с DaData. Это позволило системе работать более эффективно и масштабироваться.
Поддержка и развитие
Внедрили новые процессы разработки, включая использование современных инструментов управления проектом и систем контроля версий.
После года активной поддержки, мы поняли, что развитие в текущей форме невозможно. Долгосрочное поддерживание обернулось финансовыми затратами для клиента и выгоранием команды.
С учетом сложности и ограничений существующей системы, клиент согласился с нашим предложением переписать большую часть проекта. Это позволит избежать накопления ошибок, устранить проблемы и сэкономить бюджеты на поддержку.
Мы решили запросить техническое задание, на основе которого создавался проект, но выяснилось, что его тоже не было. Отсутствие прописанного ТЗ создавало еще большую неопределенность и затрудняло понимание требований.
Из-за отсутствия документации наша команда предоставляла клиенту детальные отчеты о проделанной работе. Каждое изменение было описано: что изменялось, как и почему. Эти отчеты стали отправной точкой для формирования документации.
В проекте множество багов и шероховатостей возникало из-за хаотичной логики и неоправданного использования технологий. Например, данные хранились в "local storage", что ограничивало память до 5 МБ, приводя к переполнению и возвращению значения "null". Система вела себя непредсказуемо - открывала данные из других разделов или не выводила на странице ничего, создавая сюрпризы при каждом открытии.
Еще одним вызовом стало то, что вся бизнес-логика была реализована непосредственно в базе данных. Да, это увеличивало скорость работы, но создавало сложности в поддержке и контроле версий.

Проект содержал уязвимости в безопасности, интеграции с сервисами никак не были защищены. Злоумышленники могли получить несанкционированный доступ и повредить данные. Учитывая, что в системе формируются документы, это было особенно критично.
И хотя работу системы можно было поддерживать, доработка и развитие вызывали определенные риски из-за сложной архитектуры и не всегда соответствующих стандартам решений.
Возникшие трудности делали работу над проектом непростой, но нам предстояло разработать стратегию для пошагового устранения проблем и реанимирования системы.
После года активной поддержки, мы поняли, что развитие в текущей форме невозможно. Долгосрочное поддерживание обернулось финансовыми затратами для клиента и выгоранием команды. Мы предприняли следующие шаги, чтобы стабилизировать обстановку:
Провели тщательный анализ текущего состояния проекта и предложили несколько вариантов решения проблем:
- сделать множество экземпляров приложения для распределения данных между ними;
- переписать фронтенд и доработать под него бэкенд;
- переписать всё с нуля.
С учетом сложности и ограничений существующей системы, клиент согласился с нашим предложением переписать большую часть проекта. Это позволит избежать накопления ошибок, устранить проблемы и сэкономить бюджеты на поддержку. Ведь выгоднее отдавать на плановое ТО новый автомобиль, чем не вылезать из автосервиса на старой машине.
Мы разработали детальную дорожную карту, определив этапы и сроки выполнения проекта. Клиент получил четкий план действий и смог понимать, как будут решаться текущие проблемы.
Создание документации и тестирование стали ключевыми этапами для обеспечения качества проекта, включая подробное описание его структуры, функционала и процессов работы.
Провели аудит безопасности и внедрили меры защиты данных. Для предотвращения несанкционированного доступа были укреплены интеграции с приложениями.
Оптимизировали производительность системы, учитывая огромное количество данных и интеграцию с DaData. Это позволило системе работать более эффективно и масштабироваться.
Внедрили новые процессы разработки, включая использование современных инструментов управления проектом и систем контроля версий.
Совместно с клиентом мы разработали стратегию для решения проблем и начали воплощать ее в жизнь. Несмотря на сложности и объем работ, наша цель оставалась неизменной - построить надежную и современную систему, которая будет служить интересам клиента на протяжении долгого времени.
В процессе работы над проектом, который был абсолютно нерабочим, мы столкнулись с множеством трудностей и вызовов.
Их можно было бы решить быстрее и эффективнее, если бы у проекта была документация!
Если вы работаете над разработкой больших платформ, не забывайте про её создание. Лендинги и небольшие сайты могут обойтись без описаний работы, но не сложные системы.
Около года мы, как слепые котята, пытались найти что и как чинить и исправлять, а проект разваливался на глазах. В результате произошло выгорание у всех причастных к нему, как с нашей стороны, так и со стороны клиента.
Самый главный совет, который даёт команда NooSoft: “Подходите к созданию проекта системно, сосредоточившись на архитектуре, безопасности и документации.”
Проведя такую большую работу, мы не просто “реанимировали” проект, но и проверили собственные процессы разработки и внедрили более эффективные правила, которые исключают возникновение подобных ситуаций в NooSoft.
Мы надеемся, что наш опыт будет полезен, и вы не допустите таких грубых ошибок у себя.
![]()
Сергей Кондратенко
В процессе работы над проектом, который был абсолютно нерабочим, мы столкнулись с множеством трудностей и вызовов.
Их можно было бы решить быстрее и эффективнее, если бы у проекта была документация!
Самый главный совет, который даёт команда NooSoft: “Подходите к созданию проекта системно, сосредоточившись на архитектуре, безопасности и документации.”
Проведя такую большую работу, мы не просто “реанимировали” проект, но и проверили собственные процессы разработки и внедрили более эффективные правила, которые исключают возникновение подобных ситуаций в NooSoft.