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