This comic makes a very good point about backwards compatibility:
You have to be always clear about how far you're willing to take it.
As far as I know, there aren't yet any standards on this. It is quite simple for libraries, at least if they have an API spec: expect the documented behaviour to stay, and the undocumented behaviour to change. However, for GUI programs it's much harder, unless the manual covers description of the complete visible behaviour. Such manuals might have been existing for software in the past, and may exist for very common and widely used software in the present (such as Emacs or PostgreSQL).
But most modern GUI software lacks this kind of documentation. Oh, and lots of libraries lack a good documentation, too. So what to do about this? You can't really change such software in a backward compatible way, because there is no measure on how much of the current behaviour you have to conserve.
This is orthogonal to the point, but something I noticed in the link - why does something like XKCD need HTTPS? Is it just a "secure by default" thing?
You have to be always clear about how far you're willing to take it.
As far as I know, there aren't yet any standards on this. It is quite simple for libraries, at least if they have an API spec: expect the documented behaviour to stay, and the undocumented behaviour to change. However, for GUI programs it's much harder, unless the manual covers description of the complete visible behaviour. Such manuals might have been existing for software in the past, and may exist for very common and widely used software in the present (such as Emacs or PostgreSQL).
But most modern GUI software lacks this kind of documentation. Oh, and lots of libraries lack a good documentation, too. So what to do about this? You can't really change such software in a backward compatible way, because there is no measure on how much of the current behaviour you have to conserve.