What Matters is Not the Code you Write
Code has become fashionable again. The Agile movement goes so far as claiming that it is the sole deliverable of any value.
I could agree to an extent, but to an extent only, and that’s the whole point: such simplistic claims must be nuanced. It is a complex world out there. We definitely need to get to the bottom of this, but we’ll clear the air with Agile bigots on a separate series of posts.
This renewed interest in writing code is fueled by concerns regarding our ability to innovate in today’s Knowledge Economy, whatever that is.
Sounds good, looks good when capitalized this way, who cares if it is a vague term describing an even more vague reality, so vague that it can be made to mean anything.
But there is an essential misconception. Innovating is important, but what really matters isn’t the code we write. It’s the code we already wrote. The code we have to keep strong and healthy unless we are willing to be crushed under the weight of an ever expanding mass of software. In comparison, developing new system is a walk in the park.
Code of any significance requires care and feeding. Because it is used, and used over the long run. Because it must evolve to adapt to a changing environment. Because people depend on it, so any defect is costly. If there is no maintenance on your code, you can entertain the delusion that it is a tribute to how perfect it is, but chances are it simply does not matter. It does not solve a serious problem, nor does it bring noticeable value to anyone.
And maintenance is not the end of it. Retiring code is even less popular and even more important an activity. Identifying the parts that are no longer used and recognizing what can proficiently replace them, are such expensive and frustrating activities that most organizations just give up. They keep on piling layers over layers of new stuff that turn to legacy by the minute they are put in production.
And even if all you do is develop new stuff, if it is any good, it will have to be maintained. And we are back to square one. When it will have aged and grown, some parts will become obsolete, and you’ll consider pruning them. And we’re back to square two. Thinking that software development is about writing new software system is a fallacy, plain and simple.
Barack Obama became the first president to write a line of code as part of the “Hour of Code”. It would have been more fitting to be the first president to ever maintain a line of code. Or better, to retire a line of code.