Рассмотрим теоретическую сторону: представьте себе, что программное обеспечение «А» имеет хорошее время отклика, но испорченный код, а программное обеспечение «Б» прямо противоположное, с чистым кодом, но испорченным временем отклика. Обе крайности нежелательны, конечно, но не одинаково. Программное обеспечение «А» делает практически невозможным выход из тупика без полной перестройки, что настолько дорого, что вряд ли когда-либо произойдет. В отличие от этого, плохая производительность программного обеспечения B, вероятно, может быть, улучшена путем рефакторинга или замены критических частей-шагов, которые имеют гораздо более приемлемые оценки усилий благодаря его чистому дизайну и высокому автоматическому охвату тестированием.