Whatever you write today will become legacy. Legacy code is often written by people who thought they got it nailed, and later realize that the application is legacy. Not because of the application itself, but because of changes in themselves.
“What the hell was I thinking?”
Code is always the same, it’s your perception of it that changes. Code goes from “Best Code Ever” to “Legacy”. You are in the “Best Code Ever” phase now, but it won’t last. If you don’t realize that, you will get disappointed. The best programmers write the most legacy software. If you leave a project too soon, you are not going to get the most out of it. There’s no other way to become very good than to write a lot of legacy software. Writing legacy software can feel like a waste of time, but it’s necessary to grow and learn.
One of your goals has to be to leave the code you touch in a better condition than you found it. It doesn’t have to be all or nothing. You can make a small impact, a small change. Make incremental changes, that’s the secret of living with legacy software. You have to do it step by step.
David Heinemeier Hansson’s Keynote
Notes taken by Luc Castera