Author: Tibor Bakota
Every now and then I come across people (mainly managers of multinational companies that operate software systems) who are uncomprehendingly looking at me while listening to the argumentation about the importance of source code maintainability. Last time I had an interesting conversation with someone who was not so “quality-minded”. It is worth reading it over as it is really informative.
“OK, but why does source code matter?”
“Well, I think source code is the only up-to-date documentation of your business strategy and processes, I’d be really surprised if you could provide a more accurate documentation of them.”
“You are wrong, because I cannot provide you with any source code as we don’t even get it from our suppliers. We don’t own the code, just the running software.”
“I see! You are telling me that someone else owns the most accurate description of your business logic? The documentation that should be part of your strategic assets? That does not sound too soothing to me! Do you know anything about its quality at all?”
“Yes, of course, we do UAT testing regularly, after each delivery. It works fine! I could give you numbers if you’d like.”
“No, thanks, I am sure your testers are doing a great job! Actually, I wanted to know if you knew anything about the quality of the source code, not the quality of the running software.”
“What is the difference?”
“Well, you can have a software that is running just fine, but the source code could still be low quality.”
“Why do I care whether the source code is bad or not when it is running just fine?”
“Being bad means it is hard to maintain.”
“Why do I care whether it is hard to maintain it if it works correctly? The only thing that I care of is if it works or not.”
“Hard maintenance means that every change to the software costs more. I guess your software changes, all living software change continuously. You are telling me that you don’t care how much you pay for the changes?”
Actually he cared! Although the software was doing well on the tests it turned out that the maintenance expenses have been steeply increasing in the last few years. We agreed on a pilot project to see how the source code’s maintainability changes in this period. I have no doubts about the end results.
Whole article here.