В то время как самая последняя запись
Как убедить менеджера позволить вам выплатить технический долг?
Ответ 1
В качестве менеджера я открыт для рефакторинга/перезаписи кода для одного из трех конкретных бизнес-процессов: сокращения технической поддержки, добавления новых функций и повышения безопасности.
Как разработчик, я вижу два дополнительных "близких" случая, когда я буду реорганизовывать/погашать задолженность. Вы можете обнаружить, что ваш менеджер открыт для них, или он может просто дать вам "тот взгляд", который говорит вам, что он не совсем его покупает.
Во-первых, иногда бывает целесообразно рефакторинг просто для того, чтобы улучшить вашу способность добавлять новые функции. Например, если вы видите бизнес на горизонте, который потребует, чтобы ваша система была более гибкой и адаптируемой, вам может потребоваться пересмотреть некоторые из ваших первоначальных требований к архитектуре. Это отличное время для погашения долга.
Во-вторых, когда записывается новый код, связанный с уже существующим компонентом, имеет смысл погасить некоторые долги. Например, если вы добавляли новый класс, который логически является классом брата существующего, то рефакторинг обычного кода в родительский класс имеет смысл. По мере того, как вы это делаете, у вас есть отличная возможность погасить задолженность.
Ответ 2
Ответ, как всегда, - "Покажите мне деньги", например - покажите бизнес-пример для вашего предлагаемого решения. Традиционно это делается путем подсчета служебных заданий или билетов справочной службы, связанных с некачественным кодом. Ваш конкретный случай будет затруднен, потому что кажется, что вы говорите о проекте, который не работает.
Просто основываясь на том, что вы написали, и о том, что ваш проект все еще находится в разработке, я бы предупредил вас, чтобы вы помнили поговорку "Лучше враг совершенства". (Я считаю, что это было придумано или, по крайней мере, популяризировано Майклом Лоппом.) Возможно, лучшее время в жизненном цикле Проекта для кода рефакторинга.
Ответ 3
Если менеджмент сочувствует, но они отказываются дать вам 2-3 недели для полного пересмотра, тогда компромисс будет заключаться в том, что вы исправляете ошибки в этих компонентах, пишите некоторые тесты и делаете некоторые рефинансирования, время улучшает код.
Вы могли бы просто сделать это, или вы могли бы попросить добавить 10% к оценкам ошибок/функций в тех областях, которые будут использоваться для этой цели.
Ответ 4
Основная статья из вашей ссылки уже имеет прекрасный ответ. Это описание технического долга очень хорошее:
Технический долг - замечательная метафора разработанный Уордом Каннингемом, чтобы помочь мы думаем об этой проблеме. В этом метафора, делая вещи быстро и грязный способ устанавливает нас техническими задолженность, которая аналогична финансовой долг. Как и финансовый долг, технический долг несет проценты платежи, которые приходят в форме дополнительные усилия, которые мы должны предпринять в будущего развития из-за быстрый и грязный выбор дизайна. Мы можем решите продолжить оплату интереса, или мы можем заплатить принципала путем рефакторинга быстрого и грязный дизайн в лучшую конструкцию. Хотя стоит заплатить принципала, мы получаем сниженный интерес платежи в будущем.
Метафора также объясняет, почему она может быть разумным делать быстро и грязно подход. Так же, как бизнес некоторый долг, чтобы воспользоваться возможность развития рынка может нести технический долг, чтобы важный срок. Все слишком распространенные проблема в том, что развитие организации выпускают свой долг контроля и проводят большую часть своих будущие усилия по развитию нанося ущерб процентным платежам.
Если проект будет идти куда угодно, руководитель проекта должен заботиться о нем для начала. Если он заботится о своем проекте, этого описания должно быть достаточно, чтобы открыть глаза на ту идею, о которой он, вероятно, никогда не думал. Просто помогите ему создать способ управлять замечанием всех мест в вашей кодовой базе, где нужно улучшить ситуацию. Возможно, групповой или родительский билет в вашей системе отслеживания проблем. Таким образом, вы можете иметь отчетность и список того, что необходимо улучшить.
Ответ 5
По моему скромному мнению, окупаемость вашего технического долга - это то, что вы должны делать небольшими бит каждый раз, когда вы отправляете код, а не отнимать время на две-три недели в год.
Непрерывное улучшение небольших кусков в конце концов будет творить чудеса.
Нет необходимости запрашивать разрешение.: -)
/Roger