Оптимизация расходов на поддержку кода

Как минимизировать расходы на поддержку кода?

Начнем с примера написания обычного текста в редакторе Word. Даже если вы допустили ошибки в наборе текста, программа подчеркнет все опечатки и неправильно расставленные запятые чтобы вы исправили текст до печати. К сожалению, Word не подчеркнет слово, которое написано правильно, но имеет некорректный смысл в предложении. Грамматический анализатор не понимает смысла написанного и исправляет только грубые ошибки: грамматические и синтаксические.

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

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

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

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

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

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

Помочь с выбором решения, которое будет подходить вашему проекту?