Развитие используемой системы или доработка недописанного ПО

Постановка задачи
Анализ возможностей развития

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

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

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

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

Доработка используемой системы

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

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

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

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

За счет правильной организации работы и создания конвейеров CI/CD процесс развертывания промежуточных версий системы, содержащих новую функциональность, происходит без прерывания ее эксплуатации.

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

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

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

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

Интеграции с другим ПО

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

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

Увеличение быстродействия

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

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

Смена технологического стека

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

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

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

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

Доработка недописанного ПО

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

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

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

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

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

Полная переписка системы

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

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

Оценим проект

01

Выделим аналитика и архитектора с необходимой отраслевой экспертизой, подпишем NDA, покажем стенды похожих проектов.

02

Оценим риски, проблемы, препятствия. Подготовим план их решения.

03

Обсудим напрямую. Ответим на все вопросы. Дадим более глубокое понимание технических аспектов.

dummy

dummy

dummy

dummy

Я даю согласие на обработку персональных данных в соответствии с требованиями статьи 9 Федерального закона от 27.07.2006 № 152-ФЗ «О персональных данных».

Наши клиенты о нас

Развитие сферы онлайн торговли и непрерывное улучшение бизнес-процессов требует высоких компетенций и знаний в ИТ области, этими компетенциями обладают специалисты компании Аксмор. Обратившись к Аксмор со сложными задачами специалисты компании превзошли наши ожидания по срокам и качеству работ, вним...

Читать весь отзыв

Масягутов Ильдар

Директор ИТ-департамента,

ООО "РМ-ЛОГИСТИКА"

За время партнерства специалисты Аксмор показали себя компетентными, отзывчивыми и мобильными, а также реализовали интересные и полезные проекты для наших пассажиров. Мы рады сотрудничать на долгосрочной основе, а также надеемся, что дальнейшая работа принесет нам взаимовыгодную пользу!...

Читать весь отзыв

Мягкова Ирина

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

OAO AK "Уральские Авиалинии"

Мы доверили разработку решения Аксмор, потому что нас впечатлил опыт компании в сферах BI и IoT. Во время общения с технической командой ещё раз убедились в том, что сделали правильный выбор. Специалисты очень быстро вникли в наши потребности и предложили идеи для реализации. Взаимодействие с разраб...

Читать весь отзыв

Илья Чех

Генеральный директор,

ООО "Моторика"

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

Читать весь отзыв

Андрей Кусургашев

ИТ-директор,

ООО "РАТЭК"

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

Читать весь отзыв

Брюс Беймер

Генеральный директор,

Samaritan Technologies Ltd.

Мы очень довольны качеством работы программистов компании Аксмор и сроками выполнения поставленных задач. Не все компании могут похвастаться таким добросовестным отношением к работе. Я всем советую привлекать компанию Аксмор для выполнения проектов....

Читать весь отзыв

Джефф Грэм

Президент,

Automatic Distributors Inc.

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

Читать весь отзыв

Олег Могильницкий

Совладелец,

Servicing Australia Pty Ltd.

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

Читать весь отзыв

Джереми Дойл

Директор,

Bluefish Retail Ltd.

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

Читать весь отзыв

Венката Чилукури

Технический консультант,

Siemens Industry, Inc.

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

Читать весь отзыв

Антон Беспалов

ИТ-партнер направления Производство и Качество,

ЗАО "Биокад"

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

Читать весь отзыв

Шепелев Андрей Юрьевич

Заместитель руководителя департамента производственно-технологического сопровождения,

ООО МСК "БЛ ГРУПП"