Развитие используемой системы или доработка недописанного ПО
Усовершенствование программного обеспечения, как правило, является более сложной задачей, чем разработка с нуля. Это связано с тем, что необходимо выполнить анализ текущего состояния системы, прежде чем переходить к ее дополнению или развитию.
При этом есть существенные технологические ограничения. Нельзя заново выбрать технологии реализации и заменить архитектуру на более подходящую.При добавлении нового функционала может потребоваться существенно модернизировать отдельные части системы для соответствия новым требованиям. Таким образом, задача состоит не только в реализации конкретного функционала.
Сперва необходимо принять стратегическое решение о том, какие компоненты системы должны подвергнуться доработкам, и как это сделать с минимальными затратами и максимальной выгодой для будущего.Доработка используемой системы
В таком случае мы начинаем проект как обычно – со сбора, анализа, обсуждения и совместной проработки требований к обновленной системе.
Важным дополнительным этапом становится анализ уже существующего ПО как с технической точки зрения (архитектура, технологический стек, интеграции, протоколы взаимодействия, структура базы данных), так и с точки зрения пользовательского интерфейса и общей концепции использования.
Это необходимо для того, чтобы понять, что из перечисленного мы хотим модернизировать, а что сохранить, органично дополнив новой функциональностью.За счет правильной организации работы и создания конвейеров CI/CD процесс развертывания промежуточных версий системы, содержащих новую функциональность, происходит без прерывания ее эксплуатации.
Таким образом мы обеспечиваем бесперебойное функционирование всех компонентов системы в ходе её улучшения. Выгружаемые обновления тщательно тестируются, осуществляется контроль версий, обеспечивается целостность и актуальность данных.
Функциональная доработка может заключаться как в создании новых модулей, которые мы интегрируем в систему, так и в дописывании или рефакторинге её основных компонентов.
Помимо сбора и анализа бизнес-требований к новому функционалу, важно проработать прототипы новых пользовательских интерфейсов и спланировать необходимые изменения в формате базы данных, протоколах взаимодействия и архитектуре. В зависимости от реализуемого функционала может потребоваться миграция данных в новую базу.
Часто улучшение системы связано с добавлением интеграции с внешними сервисами или внутренними системами, отвечающими за автоматизацию других сторон бизнеса. Например, внутренний документооборот может быть изначально отделен от системы поддержки клиентов. Со временем возникает необходимость передачи данных из одной системы в другую.
Мы обладаем большим опытом реализации интеграции через стандартные протоколы и базы данных, а также опытом создания собственных API. При этом учитываются особенности работы с распределенными данными, возможность временного отсутствия связи между элементами системы и другие особые ситуации.
Устаревание системы может быть связано с недостаточной производительностью в изменившихся условиях: рост числа документов и их размер, рост числа транзакций, добавление функций, не предусмотренных изначальной архитектурой, изменение паттерна использования системы.
В таких случаях важно понять, получится ли существенно улучшить ситуацию путем анализа сценариев использования и точечной доработки обнаруженных слабых мест, или придется частично модифицировать архитектуру системы. В последнем случае процесс сложнее и дороже, но обеспечивает более надежное и долгосрочное преимущество.
Если существуют современные версии соответствующих технологий, прежде всего рассматриваем возможность перейти на них и далее дорабатывать систему уже в обновленном виде. Это позволит защититься от уязвимостей, расширить возможности интеграции, устранить моральное устаревание, упростить дальнейшую доработку и поддержку системы.
Иногда технологическая база системы устаревает таким образом, что ее необходимо менять на принципиально новый стек. Это наиболее болезненная и сложная задача в развитии программных продуктов. Тут положительную роль может сыграть наш долгий опыт работы.
Мы не просто знакомы с современными технологиями в том виде, как они представлены сейчас. Мы знаем, как они развивались, что было сильными сторонами отдельных языков программирования и средств разработки раньше, и как это эволюционировало в современный стек.
Даже если придется переписывать систему полностью, наличие текущей работающей версии существенно сократит время разработки, упростив аналитику, проработку интерфейсов, постановку задач и документирование.
Доработка недописанного ПО
Создание принципиально новой системы занимает годы. За это время могут произойти изменения в приоритетах бизнеса, возникнуть бюджетные ограничения или технические трудности в реализации того или иного функционала.
В результате проект может быть приостановлен, но потом снова стать актуальным через какое-то время. Аналогичная с технической точки зрения ситуация возникает, если по каким-то причинам необходимо или желательно сменить подрядчика. В обоих этих случаях мы получаем недописанную, частично работающую систему.
При отсутствии достаточной технической документации иногда приходится производить реверс-инжиниринг архитектуры. Наши специалисты справляются и с такими задачами.
Пока архитектор и разработчики изучают код, аналитик восстанавливает ранее составленные требования к продукту и добавляет новые.
При низкой степени готовности системы и устаревании ранее выбранных технологий, плохо спроектированной архитектуре и низкому качеству кода дешевле и правильнее полностью все переписать.
В этом случае наличие системы в текущем состоянии все равно может помочь. Учтем полученный опыт реализации, сохраним верные архитектурные решения, используем более современные технологии и воссоздадим продукт в обновленном и законченном виде.
Оценим проект
01
Выделим аналитика и архитектора с необходимой отраслевой экспертизой, подпишем NDA, покажем стенды похожих проектов.
02
Оценим риски, проблемы, препятствия. Подготовим план их решения.
03
Обсудим напрямую. Ответим на все вопросы. Дадим более глубокое понимание технических аспектов.
Наши клиенты о нас
Читать весь отзыв
Масягутов Ильдар
Директор ИТ-департамента,
ООО "РМ-ЛОГИСТИКА"
Читать весь отзыв
Мягкова Ирина
Начальник службы управления проектами,
OAO AK "Уральские Авиалинии"
Читать весь отзыв
Илья Чех
Генеральный директор,
ООО "Моторика"
Читать весь отзыв
Андрей Кусургашев
ИТ-директор,
ООО "РАТЭК"
Читать весь отзыв
Брюс Беймер
Генеральный директор,
Samaritan Technologies Ltd.
Читать весь отзыв
Джефф Грэм
Президент,
Automatic Distributors Inc.
Читать весь отзыв
Олег Могильницкий
Совладелец,
Servicing Australia Pty Ltd.
Читать весь отзыв
Джереми Дойл
Директор,
Bluefish Retail Ltd.
Читать весь отзыв
Венката Чилукури
Технический консультант,
Siemens Industry, Inc.
Читать весь отзыв
Антон Беспалов
ИТ-партнер направления Производство и Качество,
ЗАО "Биокад"
Читать весь отзыв
Шепелев Андрей Юрьевич
Заместитель руководителя департамента производственно-технологического сопровождения,
ООО МСК "БЛ ГРУПП"