I was thinking that Russian translation for the
word "flexible" in this setting is confusing, because the word has narrower semantic field.
It means you can twist something without breaking, and now when this adjective is applied to software, it doesn't make sense. The whole point of "being flexible" is that there is a continuous and unlimited number of states its referent can be in, and software has a limited set of states. Even if it could, would it be good? I somehow got an impression software in a twisted state isn't so good really. Perhaps because there aren't many things around us that we can twist without reducing quality and there are not reasons to do so. "Flexible software" in its Russian variant is a bad metaphor that doesn't work.
But when I checked the dictionary for English "flexible":
flexible, elastic, resilient, springy, supple. These adjectives refer literally to what is capable of withstanding stress without injury and figuratively to what can undergo change or modification. Something that is
flexible can be bent, twisted, or turned (
flexible wire); the word can also refer to adaptability to change or the need for change (
a flexible administrator; flexible plans).
Pretty close to the Russian word. So perhaps "flexible software" isn't too good a metaphor in English either?
My next hypothesis was that English-speaking programmers understand what "flexibility of software" means, because the term is used often, they met it many times and know from context what it refers to. But this hypothesis needs to be checked. Maybe English-speaking programmers are confused as much as Russian, after all
So what do you think about when you hear about "flexible software"? For example, in this context:
"Many systems I've encountered have actually become less flexible and even slower because of ill conceived initial complexity."
Do you know exactly what it means, or you just got used to the word and need to think about its meaning when asked?