代码之家  ›  专栏  ›  技术社区  ›  cortijon

何时重写与升级?

  •  0
  • cortijon  · 技术社区  · 16 年前

    所有定制的遗留软件都需要更改,或者我们的用户这么说。有时,他们希望添加一两个特性,以及更改一点代码、添加控件或其他一些次要升级任务所需的全部内容。有时,他们想抛弃他们的易出错的VB5桌面解决方案,将整个过程重写为一个富Web 2.0 ASP.NET MVC应用程序。然而,更常见的情况是,对遗留功能的更改范围介于这两个极端之间。

    什么经验法则 你 用于决定是升级现有应用程序还是从头开始?

    4 回复  |  直到 16 年前
        1
  •  3
  •   DVK    16 年前

    这听起来很陈词滥调,但还是要进行标准的成本/收益分析:

    1. 以资源成本为重写(现实成本-意味着乘以你的估计3-5倍)。这包括可能需要就新选择的体系结构/工具培训其他开发人员,以及重新培训用户的成本。

    2. 以未来N个月内难以实现的更改的资源成本为例(根据您的经验)-仅计算边际成本(也就是说,如果VB5应用程序中的更改成本为1周,而在rich Web 2.0 ASP.NET MVC应用程序中实现相同功能的成本为3天,则将其计为2天的节省)。外接程序预计将从Web2.0应用程序提供的新功能中获益,这是VB5应用程序无法提供的。

    如果前者比后者少,就重新写一次。

        2
  •  2
  •   OregonGhost    16 年前

    Things You Should Never Do, Part I ,乔尔·斯波尔斯基写的 一个最严重的战略错误 一家公司可以制造。

    也就是说,我们完全重写了一个客户的应用程序,这是正确的做法,因为它现在更可靠,更快,有更多的功能,更漂亮,比以往任何时候都是。从长远来看,扩展旧的应用程序(这些年来获得了很多功能,这些功能都是被黑客入侵的)成本会更高,因为它是一个活生生的应用程序,每年获得一到两次附加功能。

        3
  •  1
  •   mdm Mr. Sajid Shaikh    16 年前

    一般来说,如果添加特性所需的资源(时间、金钱、开发人员等)超过了重写所需的资源,那么就重写。

        4
  •  1
  •   SqlRyan    16 年前

    我会不惜一切代价避免重新编写—有时是必要的,但它们总是比最初预期的要麻烦得多,而且它们往往会重新引入在遗留版本中早已被压扁的bug。

    如果业务需要您添加当前平台不支持的功能,那么除了重新编写之外,您似乎没有其他选择,但是请考虑您的其他选择—您可以以其他方式添加功能吗?你的内联网上的报告或小网页?自动发送电子邮件?某种违背数据库的web服务?有许多方法可以添加功能,而不必完全放弃现有功能,也不必承担所有相关风险。

    推荐文章