This is an old post (from more than ten years ago!) by Jeff Atwood, that I stumbled upon while going trough my “read it later” emails.
It’s painful for most software developers to acknowledge this, because they love code so much, but the best code is no code at all. Every new line of code you willingly bring into the world is code that has to be debugged, code that has to be read and understood, code that has to be supported. Every time you write new code, you should do so reluctantly, under duress, because you completely exhausted all your other options. Code is only our enemy because there are so many of us programmers writing so damn much of it.
It reminded me of something that I heard a few years ago, when I was being introduced to a new Tech Manager. One of the things that he said about the new development department policy was “try to reuse first, buy if you can’t reuse, and develop only if there are no more options left”.
I have to confess that I was too junior at the time to understand it (I was like “what!? I want to develop new things!”), but now I recognize it as really good advice.