Модернизация существующего ПО

 

 

"Never touch a running system" является, пожалуй, любимым принципом менеджеров, которые понимают, что инвестиции в модернизацию программного обеспечения/софта в принципе редко себя оправдывают. Действительно, работающая информационная система, которая выполняет все необходимые задачи, должна особенно цениться любой организацией.

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

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

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

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