Как менеджер , я готов к рефакторингу / переписыванию кода для одного из трех конкретных бизнес-случаев: сокращение технической поддержки, добавление новых функций и повышение безопасности.
Как разработчик , я вижу два дополнительных «близких» случая, когда я буду реорганизовывать / погашать задолженность. Вы можете обнаружить, что ваш менеджер открыт для них, или он может просто дать вам «тот взгляд», который говорит вам, что он не совсем его покупает.
Во-первых, иногда имеет смысл провести рефакторинг просто для улучшения вашей способности для добавления новых функций. Например, если вы видите бизнес на горизонте, который потребует, чтобы ваша система была более гибкой и адаптируемой, вам, возможно, придется переосмыслить некоторые из обязательств вашей первоначальной архитектуры. Это прекрасное время для погашения долга.
Во-вторых, когда пишется новый код, связанный с уже существующим компонентом, имеет смысл погасить часть долга. Например, если вы добавляете новый класс, который логически является братским классом существующего, то имеет смысл выполнить рефакторинг общего кода в родительский класс. Когда вы сделаете это, у вас будет отличная возможность погасить долг.