Опытным путем сложнее поддерживать программное обеспечение с более высокими показателями сложности, такими как цикломатическая сложность. Существуют исследования, подтверждающие это, начиная с 1970-х годов («Сложность программ и продуктивность программистов», ET Chen) . Также есть работа, которая предполагает, что плотность сложности, которая является цикломатической сложностью по сравнению с размером системы, также связана со временем обслуживания («Плотность цикломатической сложности и производительность обслуживания программного обеспечения», GK Gill, CF Kemerer) , которое также доступно здесь бесплатно . К сожалению, подписка IEEE необходима для статьи Чена, но вы можете попробовать поискать ее в других источниках, если вам интересно.
С точки зрения качества, часто стоит потратить некоторое время на рефакторинг, предполагая, что у вас есть тестовая среда для предотвращения появления новых дефектов. Это позволит вам легче внедрять новые функции в вашу систему, добавлять дополнительные тесты и обучать новых разработчиков работе.
В конечном счете, однако, существует необходимость в предоставлении новых функциональных возможностей и добавленной стоимости. Вам необходимо сбалансировать рефакторинг с внедрением новых функций и исправлением дефектов.