In Software development, one usually asks "what's the most outdated version of x that we still need to support". Typically, technology/frameworks try to support as many deprecated version of a programming language (or other libraries for that matter) as possible.
Usually, you'll have some feature x (in e.g. a programming language) that was introduced in version y - and since you need to use x in your code, that required minimum level of your final product will be version y. Typically now, to a certain degree, this is easy, as newer versions than y will still support feature x, so you can also run your code with versions y+1, y+2, and so on.
Versions of Solidity on the other hand seem rather complex and hard to keep track of. I've found myself now in multiple scenarios where I asked myself "which version of Solidity should I write for"? There seem to be many breaking changes and hence, this question seems to be hard to answer.
Now, is there a common practice according to which one can "decide" which version is the best one to go with? I guess "use the latest version" is not the most promising approach here?