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:

  1. You’ll never actually get back to doing it. It will take up permanent residence in the back of your head.

  2. 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.

  3. 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.