refactoring time budget
Sep. 26th, 2023 01:00 pmЯ долго ощущал какую-то недосказанность в описании выделяемого времени на рефакторинг.
А сейчас я понял.
"Вам выделяется два часа на рефакторинг" не работает, потому что прямо сейчас нужды в рефакторинге нет.
"В проект заложено время на рефакторинг" работает, потому что это время используют когда нужно.
Можно считать их деньгами на случай катастрофы. Вы не можете выделить деньги на аварийные операции в тот момент, когда их нет. Но вы должны иметь их в запасе, чтобы в тот момент, когда случится авария, чтобы иметь возможность провести эти аварийные операции.
То есть нельзя откладывать рефакторинг "на потом", потому что потом уже нет нужды в рефакторинге. Рефакторинг - это спасательная операция во внезапно образовавшемся аварийном месте, которое существует не само по себе, а с участием попавшего в это место человека.
А сейчас я понял.
"Вам выделяется два часа на рефакторинг" не работает, потому что прямо сейчас нужды в рефакторинге нет.
"В проект заложено время на рефакторинг" работает, потому что это время используют когда нужно.
Можно считать их деньгами на случай катастрофы. Вы не можете выделить деньги на аварийные операции в тот момент, когда их нет. Но вы должны иметь их в запасе, чтобы в тот момент, когда случится авария, чтобы иметь возможность провести эти аварийные операции.
То есть нельзя откладывать рефакторинг "на потом", потому что потом уже нет нужды в рефакторинге. Рефакторинг - это спасательная операция во внезапно образовавшемся аварийном месте, которое существует не само по себе, а с участием попавшего в это место человека.
no subject
Date: 2023-09-27 06:19 pm (UTC)Да. Мой инсайт состоит в том, что не существует "рефакторинга вообще", а есть рефакторинг того, что прямо сейчас мешает человеку делать его работу. Когда он работу закончит, этой проблемы может уже не быть (а в коде останется кривая дорожка, которая работает, и которую никто не будет убирать, потому что это почти невозможно).
То есть рефакторинг, это не объективное приближение кода к идеалу, а упрощение работы человека, для того, чтобы он поменьше кульбитов делал (которые суммируются с предыдущими и ухудшают жизнь следующему).
То есть мантра про "технический долг" и "время на рефакториг" не работает. Рефакторинг - это решение проблем разработчика, а не абстрактного кодобожества.