I think the first time you have to change code you’ve written previously, to add features or remove a bug, you realize that you could have done it better in the first place, that you could have found an architecture that would make it easier to transform and grow the code. And this is terribly seductive—you’re not just building a solution to a problem, you’re potentially building a beautiful solution, with ‘beautiful’ here being defined here by an aesthetics of present and future functionality. This can be a trap.