3

当出现新版本的框架或语言(例如 .NET 3.5、SQL2008)时,人们在何时采用/升级时采取什么方法?

一般来说,开发人员会尽快说(他们希望在他们的简历中提供,从管理的角度来看,给他们想要的东西会激发他们的动力),但在商业上通常很少有激励(很少有客户需要最新版本)并且从成本的角度来看(重新测试,培训)通常有一个抑制因素。

我特别想到了多年来存在和发展的“正在进行的”系统和项目(例如在软件公司中),而采用“新项目使用新技术”的方法是行不通的。

人们是否受到特定需求的驱动(需要使用新功能,潜在或现有客户要求支持),他们是否正式评估它(在这种情况下,标准是什么)或者他们是否将升级作为例行公事(在这种情况下 - 前沿与前沿)?

人们是否认为不使用最新版本的东西应该被视为技术债务并进行管理?

或者“如果它没有坏就不要修复它”是一种有效的方法吗?

4

7 回答 7

5

阅读技术债务。这是一个简单的成本效益决定。

“如果它没有坏就不要修理它”是一个常见的管理政策,它说“明天的美元不如今天的那么值钱,所以不要计划未来的改进。” 最终,技术债务累积到产品无法再跛行的程度。

最常见的断点是不再支持基础架构的某些部分。到那时,增量变化是不可能的。

从头开始重塑是一项新的资本投资。修复现有代码是一项费用。账户迫使管理层做出技术上疯狂的决定。

对于开源软件,它需要仔细的技术管理,因为 Oracle/Sun 没有正式的“支持日落”公告。糟糕的技术管理当然会导致技术破产。

于 2009-05-05T11:15:24.573 回答
2

我们着眼于支持生命周期成本。旧版本支持多长时间,费用是多少?与大型机环境相比,Windows 和 Java 等平台的发展速度往往更快,在这些平台上开展业务的部分成本是执行定期升级。在一个理性的世界里,就是这样!

新版本可以具有我们需要的杀手级功能——但这在企业开发中很少见。新版本的主要正面卖点(与过期支持等负面卖点相反)往往是更高的开发人员效率,这很难衡量。与此相反,正如您所指出的,必须考虑再培训的成本,不仅是针对初始开发人员,而且至关重要的是,对于维护。在每次升级中,一些应用程序往往会因为过于关键而无法退役,而且过于昂贵/脆弱而无法升级。随着时间的推移,您必须支持的平台和版本的数量会增加总体技术债务(无论其年龄如何)。

升级到新版本的另一个标准(您注意到)是吸引和留住员工的能力。在当前的经济阶段,这是次要的,但仍然不能完全忽视。您希望至少拥有一批热情且知识渊博的开发人员。

于 2009-05-05T11:08:41.140 回答
2

我认为关键问题是如果您从不升级平台/语言版本,您的应用程序是否会长期存在。如果你觉得不行,不如趁早升级,只会越来越难。

想想在需要完全重写之前,您的应用程序应该积极开发多长时间。如果你从不打算重写它,我会不断升级。考虑一下,如果您使用的是过时的技术,那么找到最好的开发人员将变得多么困难。考虑一下新的框架/语言功能如何在长期内加速您的开发过程,但会带来一些短期的痛苦。

于 2009-05-05T11:19:10.977 回答
2

当你真的需要。.NET 1.0 很糟糕,1.1 是一个不错的升级,但是使用 VS2003 进行 Web 开发并不是那么顺利。VS2005 和 .NET 2.0 改善了情况——我看到仍然有许多开发人员和公司坚持使用 .NET 2.0。以前的版本非常新鲜,2.0 版是成熟的技术。那么,如果您对 1.1 感到满意,您为什么要升级呢?如果您现在对 2.0 感到满意,为什么要升级到 3.5 或 4.0?

于 2009-05-05T14:29:02.783 回答
1

当升级的好处(更多功能或您需要的错误修复)超过所涉及的风险/成本(新问题、破坏现有代码)时。

于 2009-05-05T11:02:15.027 回答
1

当您为基于 Microsoft 的平台(如适用于 Windows 的 Windows Forms 应用程序或适用于 Windows Server 的 ASP.NET Web 应用程序)进行开发时,迁移的最佳时机是每两个主要版本的操作系统。例如,如果您的应用程序是为 Windows 2000 开发的,你应该迁移到Vista,虽然XP可以忽略。同样,如果它是为 XP SP2 设计的,您可以放心地忽略 Vista 并以 Win 7 为目标。通常微软从不中断(或很少中断)增量操作系统更新。因此,在今天的操作系统上运行的应用程序肯定会在下一个操作系统上运行。但从来没有在它后面的那个上。(如果跑了M$怎么能赚钱???)

资料来源:Self... Windows 开发人员超过 5 年)

于 2009-05-05T13:48:23.410 回答
1

我正在尽快升级阵营(尽管我可能会在新版本发布后等待一个月,以防万一出现未解决的问题)。您需要考虑以下几点:

1. 安全发布

许多告诉我它是否没有损坏并没有修复它的人,也是那些在发布安全补丁时会闭上两只眼睛的人。想想Equifax。

对我来说,至少在一个框架的安全支持版本上是一种道德责任。我们有责任保护客户的数据。

2. 吸引和留住人才

有很多关于所使用的编程语言或框架如何无关紧要的讨论。但根据我的经验,最简洁的 Web 应用程序代码和设计通常是由对所使用的框架和编程语言充满热情的人编写的,因为他们拥有丰富的经验和专业知识。

如果您坚持使用非常旧的版本,这些人不太可能长期留在您的公司或加入您的公司。请考虑一下您的开发人员的幸福。

3. 新版本提供的更新、更简单的方法

很多时候,较新版本的框架会使过去的困难变得容易得多。如果我们不升级,我们就会错过好的新包/功能,并且我们以旧的令人沮丧的方式编写代码,因为我们知道有一种更简单的方法可以实现相同的功能。当需要升级时,我们可能最终不得不再次改变新的方式。那么为什么不升级并使用新的更好的方式并浪费更少的时间呢?

于 2018-01-20T11:46:31.527 回答