Simplicity and maintainability
We generally consider simple, efficient, and maintainable to be related: that something improved in one of the three ways will likely benefit in others. However, there's an ambiguity in "simple", related to one in "maintainable". Consider the following case: You have a delimited set of instances of some human-readable structure. For this to be a useful example, the number of cases should be somewhere between five and maybe a hundred, and it should be open - that is, there should be a probability that more instances will be added as time goes on. An example might be specifications of message structures in an ASCII format for an evolving protocol. These structures also aren't simple discrete units. They come in pairs or even triplets, with there being a base type and one or more derived types. The derivation is fairly simple for a human to do and could be put into a set of rules for an algorithm. You need all of these cases to be defined for a program to r...