There is a "popular" theme among environmentalists to encourage everyone to reduce waste, reuse items rather than throwing them away, and recycle items to new purpose wherever possible. These three verbs can rather easily be applied to the world of software engineering, and the concepts have been the topic of a number of blog posts over time.


It's often a very hard thing for professional software engineers to say, but every line of code you produce is a cost not an asset. The easiest to maintain code is something which was never written since it can never go wrong. As such, simply reducing the quantity of code being written can be an effective way to improve the quality of software over all.

As programmers we have the concept of code-reuse drummed into us almost from the get-go. We're encouraged to use libraries which already exist, rather than reinventing the same thing again, and we're encouraged to abstract our code as much as is sensible to encourage its reuse within a project or even across projects. By reusing code already written, we don't end up duplicating code which might have unseen subtleties, corner cases, or bugs.

When a programmer writes a nice piece of code for solving a particular problem, it can sometimes be repurposed to solve another similar problem with very little effort. This doesn't necessarily mean that the code in question would react well to being abstracted out into a library, but by recycling known-good code we can get a little closer to the ideal of having the least possible number of lines of code without losing the advantage of code already having been written.


The programming is terrible blog has a wonderful article on this, which I recommend that you all read and internalise. It's called Write code that is easy to delete, not extend and while it isn't short, it's well worth it.