I have expensive applications that don't run correctly under Win 7, let alone 10. It seems the Microsoft blokes forgot that common dialog box functionality is supposed to be involute. I had to fall back to XP in an Internet deprived environment just to avoid $50,000 expenditures.The vast majority of applications written for Windows XP run just fine under Windows 10. Microsoft spends several orders of magnitude more money then Apple on backwards compatibility. I routinely find software that is incompatible with a version change in Linux. Most of the time, the software gets updated and works. But if you have apps that got written 15 years ago (when XP was released) and never updated, there's a chance you'll have compatibility issues, no matter what platform you're on. Your anger should be directed at whoever developed that app, not Microsoft.
If Microsoft gave a damn about their customers, they wouldn't do that to them.
Microsoft makes it's OS releases available during development so that compatibility issues can be identified and fixed, either by Microsoft or the app developer. Where practical, particularly if caused by a bug in the OS, compatibility issues are fixed in the OS. Windows even has special flags that can be set on individual applications to tell it to emulate the behavior of older OS to try and guarantee older applications not being actively maintained will still run (name any other OS company that spends money on that).
You would be amazed at some of the amazingly bad choices software developers make sometimes. Occasionally choices they make are not compatible with changes to the OS that are needed to patch security issues. Sometimes they create dependencies on undocumented or unspecified behavior in the OS. It's just not practical, even physically possible, for Microsoft guarantee compatibility with every application with every version of the OS, especially very custom applications with very small user bases and not being maintained by anyone.
That said, if you have an extra machine (or can host a VM) around, give the Program Compatibility Troubleshooter a try. Here's a video I found on the topic that shows how to use it.
Fortunately for me, I am retired now. I do have clients that still rely on me, and so I still rely on the old tools. I design for hardware other than Intel or the ARMs. I have circuit analysis tools, a fleet of programmer/debuggers, circuit board layout tools, and so on. I just can't afford to keep it up to date, nor was that necessary ... until Microbloat stuck me in the ass.
It seems the entire world has forgotten that programming to the bare metal and designing electronics and circuit boards is still required, even if the thundering herd can merely write for web pages or kit computers.