开发人员在创建可能导致失败的软件时通常会做什么？
软件故障的一个常见原因（真实的或可感知的）是它与其他应用软件、操作系统（或操作系统版本，旧的或新的）或与原始环境有很大不同的目标环境（例如，现在要求在桌面上运行的终端或GUI应用程序成为web）缺乏兼容性应用程序，必须在web浏览器中呈现）。例如，在缺乏向后兼容性的情况下，这可能是因为程序员只在目标环境的最新版本上开发和测试软件，而不是所有用户都在运行该环境。这会导致意外的结果，即最新的工作可能无法在目标环境的早期版本上运行，或者在目标环境的早期版本能够使用的较旧硬件上运行。有时，可以通过主动将操作系统功能抽象到单独的程序模块或库中来解决此类问题。
缺乏向后兼容性