浅谈软件项目上的长期慢性需求问题

外刊IT评论网 发表于:13年01月23日 13:50 [转载] DOIT.com.cn

  • 分享:
[导读]本文的作者Capers Jones是Namcook Analytics公司的副总裁和首席技术总监。他一直在收集软件质量和开发效率上的数据。他写了几十本关于软件质量、最佳实践方法、评估、测量方面的著作。
本文的作者Capers Jones是Namcook Analytics公司的副总裁和首席技术总监。他一直在收集软件质量和开发效率上的数据。他写了几十本关于软件质量、最佳实践方法、评估、测量方面的著作。

在处理软件需求时,有三个问题一直折磨着我们,并使软件项目消耗无数资金。其中很大一部分都产生在项目交付并运行后的新需求的收集工作中。

下面是在软件需求处理中三个广泛存在的问题,需要我们去寻找比当前普遍的常规做法更有效的解决方案:

  • 很多需求是非常危险或是有毒的,需要坚决抵制。
  • 很多客户坚持要在软件中强加入一些额外的、多余的功能。
  • 需求永远提不完,并以每月1%的速率增加。

软件开发者道德上有义务、职业上有责任在这些问题上提醒客户,并尽可能的帮助他们解决这些问题。换句话说,软件开发者需要充当的角色类似于一个医生。我们有责任帮助客户诊断目前已知的需求,并开出有效的处方。

当然,一旦用户需求收集完成,分析整理完成,承诺的软件规格就应该如实的交付给客户。然而,为了保证软件能安全有效的交付,危险的或有毒的需求必须 被除去,多余的和不必要的需求需要让用户知道,潜在的能导致需求滋生的不清晰的地方需要被明确、量化。用户应该从软件开发技术团队那里获得专业的帮助,而 不应该在需求收集和分析上被动的扮演旁观者角色。

不幸的是,需求上的缺陷并不能通过普通的测试来消除。如果需求上的错误未能预防而出现,或没有能够通过常规的检查或其它方法消除,那么,从需求上构 造出来的测试用例只能再次证实需求的正确,而不是发现其中的错误。(这就是为什么多少年的软件测试都不曾发现并消除”2000年”问题)

另一类需求上的问题,对于一些全新的创造性的软件应用,很可能最初用户只有原创者,没有第二人。参考一些成功的软件的历史,如APL编程语言,第一个电子制表软件,早期的Web搜索引擎(之后成为谷歌)。

这些具有革命性的应用软件全是发明人自己用来解决他们自己的问题的。他们并不是按照常规概念上的“用户需求”开发出来的。除非演示程序被开发完成, 其他人基本无法认识到这些软件发明的价值所在。因此,“用户需求”对于一些全新的革命性的软件来说不是能完全适用的,除非它们已经公开发布。

软件需求会不断的发展、繁殖、变化,在其随后的设计和编码阶段统计出的数据,每月增加的量大概是1%到4%,基于这种现状,很显然,要想达到对需求的完全理解是十分困难的。

需求是软件开发的重要一环节,但由于掺杂着有毒的需求,缺失的需求和多余的需求,使得简单的诸如“品质的标准就是照需求完成”这样的定义成为了软件工业的毒药。

软件交付之后

“增长的需求”这个问题经常不受重视。一旦软件应用交付给客户或用户,需求并不是终止或不变了。对于大多数的应用,需求的增长的延续会一直伴随着应用的使用期间。它们增长的速率最高能达到每年15%。

因为需求在增长,软件应用的体量也会变大——不论从功能点,逻辑代码量或其它尺度测量。

为了说明这种持续性增长,下面的表格显示了一个我研究的大型Java应用的变化。

测量周期 功能点 逻辑代码量
1 需求阶段结束时 10,000 530,000
2 需求补充 2,000 106,000
3 计划交付量 12,000 636,000
4 延期的功能量 - 4,800 - 254,400
5 首次提交给客户的量 7,200 381,600
6 一年使用后 12,000 636,000
7 2年使用后 13,000 689,000
8 3年使用后 14,000 742,000
9 4年使用后 (中期提升) 17,000 901,000
10 5年使用后 18,000 954,000
11 6年使用后 19,000 1,007,000
12 7年使用后 20,000 1,060,000
13 8年使用后 (中期提升) 23,000 1,219,000
14 9年使用后 24,000 1,272,000
15 10年使用后 25,000 1,325,000

这些数字在第4年和第8年有一个超出平均值的增加。对于商业软件,为了跟最新的其它软件竞争,有必要增加一些重大的新功能。这叫做“中期提升”。

正如你看到的,需求增加在软件应用使用期间永不会停止,除非开发者开发出相同类型的新产品而放弃对老产品的支持。当然,一些软件会很好的运行10几年。例如,美国空中交通管制系统已经使用了超过30年了。

怎么办…

软件需求是软件工程技术中最薄弱的一个环节。因为需求总是不完备的,总是含有错误的,这就要求软件开发者一定要使用最先进的软件需求方法。用户并没 有培训过这些需求收集/分析技术,在没有经过受训的需求专家的帮助下无法提供完整无误的需求,更重要的,软件开发者应该理解——甚至拥抱——这样的事实: 在软件交付运行之后,跟用户关于需求的对话将不会停止。

[责任编辑:韩蕊]
Ruby
SAP分享了多年来对企业运营变革的洞察,以及SAP Business Suite powered by HANA如何推动企业在对业务影响最小的情况下向实时企业转型,从而帮助企业实现更睿智的业务创新、更快速的业务流程和更简化的业务交互。发布会现场,SAP公司宣布,中国最大的瓶装水生产商——农夫山泉成为基于 SAP HANA 的SAP Business Suite在中国的首家客户。
官方微信
weixin
精彩专题更多
存储风云榜”是由DOIT传媒主办的年度大型活动。回顾2014年,存储作为IT系统架构中最基础的元素,已经成为了推动信息产业发展的核心动力,存储产业的发展迈向成熟,数据经济的概念顺势而为的提出。
华为OceanStor V3系列存储系统是面向企业级应用的新一代统一存储产品。在功能、性能、效率、可靠性和易用性上都达到业界领先水平,很好的满足了大型数据库OLTP/OLAP、文件共享、云计算等各种应用下的数据存储需求。
联想携ThinkServer+System+七大行业解决方案惊艳第十六届高交会
 

公司简介 | 媒体优势 | 广告服务 | 客户寄语 | DOIT历程 | 诚聘英才 | 联系我们 | 会员注册 | 订阅中心

Copyright © 2013 DOIT Media, All rights Reserved. 北京楚科信息技术有限公司 版权所有.