什么是维护与添加新功能?

时间:2009-05-29 19:17:09

标签: client-server maintenance

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

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

  

(7.a)保持工作秩序,维修等的行为;通过提供设备等手段来保持建筑物,机构,部队等;如此保持的状态或事实;保养的意思或规定。

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

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

我不希望表演:

  • 新开发(添加新功能)

维基百科Software Maintenance页面引用了纠正性,适应性,完善性和预防性维护,这似乎符合我的预期,但客户端 - 服务器性质使问题复杂化。

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

如果双方就维护合同达成一致意见,则必须相互理解什么是合格和维护以及哪些合格作为新功能,因此问题就在于此。

7 个答案:

答案 0 :(得分:6)

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

例如,添加允许用户打印的功能将是新的开发。修改功能以允许用户打印特定范围的页面将是维护(它很小,可能应该从一开始就这样工作)。

答案 1 :(得分:4)

我认为维护是您为确保产品按原设计工作所做的一切。

那里的粘滞点通常是“设计”的。如果您没有从某种形式的详细设计文档开始,指明软件将要做什么和不做什么,那么就需要进行解释。当事情需要解释时,通常客户的解释是软件应该他们想要的一切它要做的事情,而不是他们付出的一切它到做。

答案 2 :(得分:2)

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

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

我在大多数工作中都被问过这些问题。这篇文章帮助我回答了我公司特有的问题。

答案 3 :(得分:1)

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

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

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

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

我说这实际上取决于您的商店希望采用的模型,即使如此,您仍会遇到重叠的情况。

答案 4 :(得分:1)

错误修复肯定是维护。

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

添加一个假设包含在最后一个版本中但没有或哪个不起作用的功能是维护(在我看来)。

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

答案 5 :(得分:1)

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

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

答案 6 :(得分:0)

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

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

如果功能应该在原始规范中,但没有,并且客户在规范上签字,它在我看来就像增强(从而额外的付费工作)。

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