Let’s say that you are writing code (it should not be a big assumption) and that you have many possibilities to do the same thing. Which one should you choose? The one that is more maintainable, of course. But what does “maintainable” even mean?
I define software maintainability as the amount of time that it takes to understand it. This is the cost that has to be paid before fixing a bug or adding a feature. The lower the cost, the more maintainable the software is. On the other hand, extendable is the one that is easy to understand and change. These are not exactly the same, but they are related. We will only consider maintainability in this article.
The closer to the standards, the better