I'm sitting at the gymnastic studio reading "The Pragmatic Programmer" (for the 5th-ish time) and it talks about an approach to code. Can you guess what?

Our industry refers to it as construction, "building" software. "Engineer".

I care about the code in a way that the inanimate object view doesn't support. It's not just a building; it's not a "result". What we produce is likely something we'll be involved with for years; if not decades.

We grow the code. We tend the code. We eliminate bugs (which fits gardening really well). We remove dead code. We protect against rot. When we find rot, we look for the cause and aim to eliminate.

I look at my profession as a caretaker. It's my job to care for the code in such a fashion that it's is a beautiful thing months and years down the road. I'll take the pain now to have it easier later.

I've oft referred to caring about code as if it's a baby; but as a garden fits far better. This is how I've been viewing my responsibility for the code.

When we find an issue in the code; we can't let it stay; it'll spread; it will infect the rest of the code. We need to fix the problem. If it's some pruning, organizing; or elimination of extreme rot - we; as software craftspeople; must do what is necessary to protect the code as a whole.

I say that, "all code is crap, good code just takes longer to figure out how it's crap".
This fits gardening as well. Aside from an untended garden - the most beautiful arrangement of rose bushes is crap if we need to have orchids.

We grow what we know we need; hopefully in a way we can replace pieces when they go bad, die, or are no longer the correct solution.

This is just a quick little bit; posting from my phone!

Show Comments