Maintainability: One Story and Three Concerns
Post from January 31, 2012 (↻ October 16, 2014), reflecting Jens the Web Developer.
To make this a little story, for a long time in my career I wasn’t very concerned about maintainability.
I was maintaining projects but didn’t really have an idea about whether what I maintained was actually effective to maintain. I got a sense that things weren’t quite right and that I was spending too much time on maintenance but that didn’t quite lead me anywhere.
At some point I noticed that there were a few things that made projects easier to maintain, and that there were other things you simply never want to deal with.
Then I got the suspicion that hardly any web developer or designer had ever done a CSS-only redesign. I still have this suspicion today. There are reasons why a redesign cannot just be done by updating style sheets, primarily due to content and hence structural changes. But more often than enough it would be possible, if maintainability was a priority and something that developers would be taught, to just update style sheets. (The small number of CSS-only redesigns may well be seen as an embarrassment for our industry.)
When looking at other sites more closely I noticed that more things were happening that shouldn’t be happening at all, contributing to never even getting close to something like a CSS redesign.
As there wasn’t much useful information out there on how to make websites more maintainable—clearly not helping the situation at hand—, I then compiled a guide on maintainability, promoted what appeared to be useful in order to write more maintainable code, and created tools to identify maintainability issues.
Now, since there is a general understanding of why good maintainability is important I’ve been wondering about other causes for the problems we can observe:
The prevalent mindset appears to be close to “fire and forget” as people oftentimes don’t appear to care whether, how, and who is going to work on everything in a few days, months, or years.
Especially developers seem to overestimate the power of technology when all too eagerly referring to that “this is not a problem because we’d only change a template.” (Maintenance is never “just changing a template,” and unnecessary changes are unnecessary changes.)
Developers may have gotten into the habit of preferring “construction kits,” overlooking or dismissing the power of tailored solutions, and they appear to forget about the craft of web development.
Consequentially, our industry, in well some shortsightedness, appears to be wasting hours and dollars by not paying attention to maintainability. Based on my observations and estimates, the lack of attention makes any rather complex web project about 50% more expensive over the first one or two design and code iterations alone.
Involuntarily I have just alluded to another reason for the whole drama, beside lack of documentation and education: There is no data documenting the cost of our industry’s current practices. You’d need to test against the “ideal world” which we know doesn’t exist but in our heads.
The point is this: Focus on maintainability. It may easily be the biggest untapped cost saver there is for our industry.
Great article ! I totally agree with you when you said “developers may have gotten into the habit of preferring construction kits”. We see more and more today.
Another problem is all the “hacks” out there building websites. I talk with many small business owners who have been sold Yahoo and GoDaddy websites by “web designers.” Knowing how to use a computer does not mean you know how to design and build a website. And clicking through a wizard-based website builder does not make you a web designer. I can change the oil in my car, but I’m not a mechanic.
All the hacks out there do a huge disservice to the web design and development industry. And I really like how you bring up the “craft” of web development. It is a craft, yet most people gloss over the skill necessary because they own one of the tools (computer), and therefore they should be able create something just as good as those skilled and trained in the craft.
Okay, time for me to stop rambling. Good article, by the way.
Have a look at the most popular posts, eventually including: