У нас есть поля "приоритет" и "серьезность" в нашей системе отслеживания ошибок. Мы определяем серьезность как «как это влияет на пользователя» и приоритет как «как это влияет на продукт».
Мой вопрос о том, как классифицировать задачу «улучшение кода» по степени серьезности и приоритетности. Предположим, что улучшение не меняет поведение, но делает его «лучшим кодом». Мы ожидаем долгосрочного улучшения обслуживания в целом, но это трудно определить количественно.
Когда мы используем наши определения для приоритета и серьезности, улучшение кода получает самые низкие значения для обоих, если вы не вводите некоторые трудно прогнозируемые долгосрочные выгоды в картину. Следовательно, это означает, что улучшение кода - легкомысленная задача, и никогда не следует пытаться ее выполнить.
Однако я считаю, что крайне важно постоянно улучшать и реорганизовывать код, потому что:
- Разработка программного обеспечения сама по себе является непрерывным процессом обучения, и без улучшения кода вы не сможете добиться в нем большего успеха.
- Команда должна гордиться своим кодом.
- Дальнейшее обслуживание займет меньше времени, а в долгосрочной перспективе экономия будет значительной.
Или вы думаете, что такие задачи никогда не должны создаваться и такие улучшения выполняются только «по требованию», «когда связано с ошибкой»? Даже если это связано с ошибкой, не будет ли это предметом обсуждения при проверке кода, например, «почему вы сделали это радикальное изменение в структуре?».