7

维护和新功能之间的界线应该在哪里?

牛津英语词典将维护定义为:

(7.a) 使某物处于工作状态、维修等状态;通过提供设备等手段来维持建筑物、机构、部队等;如此保持的状态或事实;维持的手段或规定。

我正在使用客户端-服务器应用程序并维护客户端。根据定义,我希望执行:

  • 错误修复
  • API 适配(客户端继续使用服务器所需的微小更改)
  • 针对已识别的性能问题进行优化

我不希望执行:

  • 新开发(添加新功能)

维基百科软件维护页面引用了纠正性、自适应性、完善性和预防性维护,这似乎符合我的预期,但客户端-服务器的性质使事情变得复杂。

编辑:对于没有依赖关系的独立应用程序,如果软件工作,它应该继续工作。对于客户端-服务器应用程序,客户端可能会在服务器更改时中断。尽管这不会改变维护的定义,但它意味着有更多的机会和场合需要对客户端应用程序进行更改。

如果两方要就维护合同达成一致,则必须满足对什么是合格和维护以及什么是新功能的相互理解,因此是这个问题。

4

7 回答 7

6

错误修复和功能之间的界限可能会变得模糊。我会考虑可用性增强和次要功能作为维护。我的经验法则:如果不值得向您的客户吹嘘(或收费),那么它就是维护。

例如,添加允许用户打印的功能将是新的发展。修改该功能以允许用户打印特定范围的页面将是维护(这是次要的,并且可能从一开始就应该以这种方式工作)。

于 2009-05-29T19:23:18.037 回答
4

我想说维护是您为确保产品按最初设计工作而做的任何事情。

那里的症结通常是“设计的”。如果您没有从某种形式的详细设计文档开始指定软件会做什么和不会做什么,那么事情就需要解释了。当事情留待解释时,通常客户的解释是软件应该做他们想让它做的一切,而不是他们为它付出的一切

于 2009-05-29T19:26:44.723 回答
3

基于 SO/IEC 14764 软件维护规范和我在网站和移动应用程序上工作的经验,我写了一篇专门针对数字产品的维护与新功能开发的文章:http ://www.rajiv.com/blog /2012/12/19/维护与新开发/

本文的目的是帮助回答以下问题:维护工作是什么意思?什么应该被视为维护与新功能开发?有行业标准定义吗?我们的选择标准是什么?你能给我一些例子吗?维护与新功能开发工作的比例是我们行业的最佳实践?我们组织的组合与此相比如何?

在我从事的大多数工作中,我都被问到过这些问题。这篇文章帮助我回答了针对我公司的具体问题。

于 2012-12-20T18:54:41.380 回答
1

对于错误修复,大部分情况下很容易将它们归类为维护。

但是,根据您的软件产品,您可能会遇到需要在持续的应用程序维护中加入的“新功能”。

对我们而言,这通常是由于客户或第三方法规的业务要求而发生的。客户可能希望修复一些错误,但与此同时,我们需要支持处理新的政府法规,该法规在法律上要求我们“立即解决!”。

该特定更改是一项“新功能”,但将作为常规应用程序维护版本的一部分进行安装。

我想说这真的取决于您的商店希望采用的模型,即使如此,您总是会遇到它们重叠的情况。

于 2009-05-29T19:24:04.773 回答
1

错误修复绝对是维护。

提高性能(速度)就是维护。

添加一个应该包含在最后一个版本中但没有或没有工作的功能是维护(在我看来)。

添加一个全新的功能,我不认为是维护。

于 2009-05-29T19:31:02.530 回答
1

我在一个地方(供应商)工作,每次修改都会与客户抗争,它们都是新功能!他们会告诉客户他们购买了这些虫子。那是一个有趣的工作场所!他们会屈服,但每个月当他们发送账单时,他们都会与客户“谈判”。请记住,我们销售的是大型定制系统,客户很难跳槽,管理层知道这一点。作为开发人员,这很麻烦。

我认为维护是保持系统运行,修复错误,使其与操作系统和其他可能发生变化的所需软件兼容。新功能是他们以前没有的功能。

于 2009-05-29T19:36:47.510 回答
0

对我来说,错误是维护,而增强不是。

但根据我的经验,非编码人员通常很难区分错误和增强。对他们来说,错误是任何不能按照他们想要的方式工作的东西。对我来说,bug 是不能像指定或设计的那样工作的东西。

如果功能应该在原始规范中但不是,并且客户签署了规范,那么在我看来它就像增强(因此是额外的付费工作)。

当然,也有一些“软”的考虑——为了保持良好的关系,通常谨慎的做法是在维护中免费提供一些请求的增强功能,特别是如果它们相对较小并且您能够公平地管理这种期望好。

于 2009-05-29T19:33:30.620 回答