您如何平衡向后兼容性和创新之间相互冲突的需求?

发布于 2024-07-07 16:07:10 字数 717 浏览 7 评论 0原文

我开发的应用程序具有 GUI(图形)和 API(脚本)界面。 我们的产品拥有非常庞大的安装基础。 许多客户投入了大量的时间和精力来编写使用我们产品的脚本。

在我们所有的设计和实现中,我们(可以理解)有非常严格的要求来保持 100% 向后兼容性。 当我们引入新的软件版本时,之前运行的脚本必须继续以完全相同的方式运行,无需任何修改。

不幸的是,这个要求有时会把我们的手绑在背后,因为它确实限制了我们创新和想出新的更好的做事方式的能力。

例如,我们可能会想出一种更好(且更可用)的方法来完成已经可行的任务。 我们希望将这种更好的方式设为默认方式,但我们不能这样做,因为它可能会产生向后兼容性的影响。 因此,我们坚持将新的(更好的)方式作为一种模式,用户必须“打开”才能使用它。 除非他们阅读文档或在线帮助(许多客户不会这样做),否则这个新功能将永远隐藏。

我知道 Windows Vista 刚推出时让很多人感到恼火,因为所有软件和外围设备都无法在 Windows Vista 上运行,即使他们在 XP 上也能运行。 因此,它的反响很差。 但你可以看到,微软在 Vista 中也成功地做出了一些伟大的创新,但牺牲了很多用户的向后兼容性。 他们冒了风险。 它得到回报了吗? 他们做出了正确的决定吗? 我想只有时间才能证明一切。

您是否发现自己正在平衡创新和向后兼容性的相互冲突的需求? 你如何处理杂耍行为?

I work on an application that has a both a GUI (graphical) and API (scripting) interface. Our product has a very large installed base. Many customers have invested a lot of time and effort into writing scripts that use our product.

In all of our designs and implementation, we (understandably) have a very strict requirement to maintain 100% backwards compatibility. A script which ran before must continue to run in exactly the same way, without any modification, when we introduce a new software version.

Unfortunately, this requirement sometimes ties our hands behind our back, as it really restricts our ability to innovate and come up with new and better ways of doing things.

For example, we might come up with a better (and more usable) way of achieving a task which is already possible. It would be desirable to make this better way the default way, but we can't do this as it may have backwards compatibility implications. So we are stuck with leaving the new (better) way as a mode, that the user must "turn on" before it becomes available to them. Unless they read the documentation or online help (which many customers don't do), this new functionality will remain hidden forever.

I know that Windows Vista annoyed a lot of people when it first came out, because of all the software and peripherals which didn't work on it, even when they worked on XP. It received a pretty bad reception because of this. But you can see that Microsoft have also succeeded in making some great innovations in Vista, at the expense of backwards compatibility for a lot of users. They took a risk. Did it pay off? Did they make the right decision? I guess only time will tell.

Do you find yourself balancing the conflicting needs of innovation and backwards compatibility? How do you handle the juggling act?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

昵称有卵用 2024-07-14 16:07:10

就我的编程经验而言,如果我要从根本上改变一些会阻止过去传入数据正确使用的东西,我需要为旧数据创建一个抽象层,可以将其转换为在新数据中使用格式。

基本上我将“改进”方式设置为默认值,并确保通过转换器它可以读取旧格式的数据,但将数据保存或存储为新格式。

我认为这里最重要的是测试、测试、测试。 向后兼容性不应阻碍向前发展。

As far is my programming experience is concerned, if I'm going to fundamentally change something that will prevent past incoming data to be used correctly, I need to create an abstraction layer for the old data where it can be converted for use in the new format.

Basically I set the "improved" way as default and make sure through a converter it can read data of the old format, but save or store data as the new format.

I think the big thing here is test, test, test. Backwards compatibility shouldn't hinder forward progress.

海夕 2024-07-14 16:07:10

将开发分为两个分支,一个保持向后兼容性,另一个用于新的主要版本,您可以在其中明确指出向后兼容性正在被破坏。

Split development into two branches, one that maintains backwards compatibility and one for a new major release, where you make it clear that backwards compatibility is being broken.

叹梦 2024-07-14 16:07:10

您需要问的关键问题是客户是否想要/需要这种“改进”,即使您认为客户可能不需要。 一旦建立了某种做事方式,改变工作流程就是一项非常“昂贵”的操作。 根据用户的计算机熟练程度,可能需要很长时间才能适应用户界面的更改。

如果你正在与客户打交道,为了创新而创新并不总是一件好事,因为对你来说,开发这些改进可能会很有趣。

The critical question that you need to ask is wether the customers want/need this "improvement" even if you perceive it as one your customers might not. Once a certain way of doing things has been established changing the workflow is a very "expensive" operation. Depending on the computer savyness of your users it might take some a long time to adjust to the change in the UI.

If you are dealing with clients innovation for innovation's sake is not always a good thing as fun as it might be for you to develop these improvements.

断桥再见 2024-07-14 16:07:10

您可以寻找创新的方法来保持向后兼容性。

You could alawys look for innovative ways to maintain backwards compatibilty.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文