软件的寿命:你希望多久能从头开始?[英] Lifespan of Software: How often do you expect to do start from scratch?

本文是小编为大家收集整理的关于软件的寿命:你希望多久能从头开始?的处理/解决方法,可以参考本文帮助大家快速定位并解决问题,中文翻译不准确的可切换到English标签页查看源文。

问题描述

我听说有人说软件的平均寿命大约是 3 年,但在我看来,这似乎太低了.我不买.

毕竟,我的一些客户拥有已经运行了 20 年的笨重大型机,而且它们根深蒂固,以至于它们可能永远存在.

我个人倾向于在平台变得太旧以至于对我们的技能(我们是承包商)不利并且继续维护项目效率低下时开始谈论严重的重构.我在这里考虑 ASP Classic.那可以是 5 到 8 年的窗口,甚至不需要重写.

当然,我也看到一些项目因为有人过于频繁地向利益相关者屈服,或者开发人员不知道如何规划变更而招致大量技术债务.或者该项目是在一个无法很好扩展的薄弱平台上启动的.这从根本上缩短了使用寿命.

也许这些项目往往会持续 3 年.或更少.

最后一个想法:一些研究证明,维护旧代码比编写新代码更便宜,我相信这一点.重写大型系统总是比看起来更难,也更昂贵.

所有这些是否表明开发人员倾向于过早地重写,也许是天真的?我想是的,我知道这是一个容易犯的错误.

您在这里有什么经验?

推荐答案

我所在的团队已经开发同一个 Web 应用程序 6 年了,而且看不到尽头.在那个时候,它已经从 Classic ASP 到 ASP.NET 1.1 再到 ASP.NET 2.0,所以各种模块都经历了增量重写,但从来没有像从头开始重写那样.每隔一段时间就会有人说,如果我们可以重新开始该多好,但我们有 60,000 多名用户:他们不可能等待 12 到 18 个月,而他们的更新功能或特性需要等待架子.

我只有两次彻底重写的机会.在这两种情况下,我们有时间和支持这样做的原因是因为我们有一小部分客户使用已经稳定的版本.当我们带着新产品去找他们时,他们都认为它比旧系统好,但很少有人买它,因为他们已经对现有的产品感到满意.这对程序员来说很有趣,但最终对企业来说是一种损失.

所以,从个人经验来看,你每 3 年从零开始的东西可能不会被很多人使用.当您拥有广泛使用的应用程序或服务时,尤其是在企业环境中,要逐步升级就很难获得支持,更不用说重写了.

本文地址:https://www.itbaoku.cn/post/627423.html

问题描述

I've heard people say that the average lifespan of software is about 3 years, but that seems shockingly low to me. I don't buy it.

After all, some of my clients have lumbering mainframes that have been around for 20 years, and they're so entrenched that they might live forever.

I personally tend to start talking about severe refactoring when the platform gets so old that it's bad for our skills (we are contractors) and otherwise inefficient to keep maintaining the project. I'm thinking about ASP Classic here. That can be a 5 to 8 year window, and it doesn't even need to be a rewrite.

Of course, I have also seen projects that incurred a lot of technical debt because someone caved to stakeholders too often or a dev didn't know how to plan for change. Or the project was started on a weak platform that didn't scale well. That radically reduces the lifespan.

Maybe those projects are the ones that tend to live 3 years. Or less.

One last thought: Some studies have proven that it's cheaper to maintain old code than to write new, and I believe it. Rewriting large systems is always way harder and more expensive than it looks.

Does all of this conspire to indicate that developers tend to re-write too early, and perhaps naively? I'm thinking yes, and I can see how that's an easy mistake to make.

What are your experiences here?

推荐答案

The team that I'm working on has been developing the same web application for 6 years, and there's no end in sight. In that time, it's gone from Classic ASP to ASP.NET 1.1 to ASP.NET 2.0, so various modules have undergone incremental rewrites, but never anything like a from-scratch rewrite. Every so often somebody will say how nice it would be if we could start over, but we have 60,000+ users: there's no way they're going to wait the 12 to 18 months it would take while their updated functionality or features sit on a shelf.

I've only had the chance to do a ground-up rewrite twice. In both cases, the reason we had time and buy-in to do so was because we had a rather small group of customers using an already stable version. When we went to them with the new product, they all agreed that it was better than the old system, but very few of them bought it because they were already happy with what they had. It was a lot of fun for the programmers, but ultimately it was a loss for the business.

So, from personal experience, the things that you get to start from scratch every 3 years are likely not used by many people. When you've got a widely used application or service, especially in a corporate environment, it's hard enough to get buy-in to do gradual upgrades, let alone rewrites.