软件需求与可视化模型(微软技术丛书)
上QQ阅读APP看书,第一时间看更新

第Ⅰ部分 需求模型介绍

第1章 需求建模语言入门

离节假日旺季还有九个月,一家著名的网上零售商确定要在其网站上添加一组重要的新功能,这将大大增强消费体验,直接增加销售额,同时减少好几个国家的客户电话服务量。据估计,这些新功能会为公司每年增加1400万美元的收入,而实现这些功能的费用却不到200万美元。产品经理确定这些功能的要求和业务规则,开发团队和项目管理团队预估可以在节假日旺季节到来时轻松地完成项目。为了能按期交付产品,开发团队努力赶工,晚上和周末经常加班加点。

八个月之后,该团队进入最后的测试阶段,感觉良好。他们完成了一长串功能增强以求获得高额的回报。然而,一位测试人员发现税收的计算是不正确的。不幸的是,这些计算错误只是冰山一角,因为团队忽略了和税收团队交流。实际上,他们当时没有意识到必须这样做。如果与税收团队交流,他们会发现在有些国家营业时要遵守的税务规则极为复杂,必须与管理税收规则的第三方软件进行集成。项目被推迟,那个旺季1400万美元的回报也成泡影。项目经理被解雇,产品经理被调往其他小项目。

项目经常因为需求的缺失、不完整或者不明确而受到困扰(The Standish Group 2009)。错误的需求实践普遍存在,所以大部分项目注定会失败(Ellis,Keith。2008)。需求没做好是许多项目失败的根源,令人失望的是在过去20年中软件需求水平并没有显著提高。尽管学术界一直在稳步改善需求技术和工程方法,但是业务实践行为在很大程度上并没有什么变化。软件编程技术已经相当成熟,创造出各种新的技术,开发出丰富的工具,但是在写需求时,人们还是常常使用一长串的“应该”语句,把语句存在电子表格中。使用敏捷方法的项目也没有多少改进,还是经常把产品工作清单和用户故事作为一长串列表存在电子表格或其他工具中。