I’m beginning to realize that maintainability is one of the greatest challenges in Software Development. My Master’s Thesis is about comparing the maintainability of two different testing techniques so I’m reading a lot about it (and I’m really aching to get coding by now).
Here is a memorable quote on the subject:
“We often think of code as a Computer-Human interface. That is correct. The code translates human statements in a formal language to machine code in the case of a simple compiled language. […]
However, thinking of the code as a communication device between developers, the whole matter takes on a different look. Now, the expressiveness of the language matters to another human while the machine does not even care and you wouldn’t mind as long as the semantics remain the same. That is why we march along the road of abstraction […].”