我在一个同时具有 GUI(图形)和 API(脚本)界面的应用程序上工作。我们的产品拥有非常庞大的安装基础。许多客户投入了大量时间和精力来编写使用我们产品的脚本。
在我们所有的设计和实现中,我们(可以理解)对保持 100%向后兼容性有非常严格的要求。当我们引入新的软件版本时,之前运行的脚本必须继续以完全相同的方式运行,无需任何修改。
不幸的是,这个要求有时会束缚我们的双手,因为它确实限制了我们创新和想出新的更好的做事方式的能力。
例如,我们可能会想出一种更好(并且更有用)的方法来完成已经可能完成的任务。最好将这种更好的方式设为默认方式,但我们不能这样做,因为它可能具有向后兼容性的含义。所以我们坚持将新的(更好的)方式作为一种模式,用户必须“打开”才能使用它。除非他们阅读文档或在线帮助(许多客户不这样做),否则此新功能将永远隐藏。
我知道 Windows Vista 刚问世时惹恼了很多人,因为所有的软件和外围设备都无法在它上面运行,即使它们在 XP 上运行也是如此。因此,它收到了非常糟糕的接待。但你可以看到,微软也成功地在 Vista 中进行了一些伟大的创新,但代价是为许多用户提供了向后兼容性。他们冒险了。它得到回报了吗?他们做出了正确的决定吗?我想只有时间会证明一切。
您是否发现自己在创新和向后兼容性的冲突需求之间取得平衡?你如何处理杂耍表演?