Somewhere it’s the Third Rule of Software Product Development: never implement a feature poorly because you expect it to be thrown away. Sure, rewriting is expensive, and seeing a permutation of “spend time with no product gain” is thoroughly demotivating. But here’s 3 better reasons:
-
You’ll never actually get back to doing it. It will take up permanent residence in the back of your head.
-
By necessity, other features immediately start hanging off of it. When you do find a free day to blow on rewriting something (among the 5 things you meant to circle back to), it’s too late to redo the (a) right way: that 4-hour task is now a 3-day refactor.
-
Humans can’t switch from “write disposable crap” to “write well-thought-out, maintainable, valuable code.” The work process is different. Having replaced planning time with dive-in-and-code-code-code, Dumpster-ready features become the norm.
Oh, and it doesn’t take that much more time.