应对软件开发中项目需求转换的挑战

ZDNet软件频道 时间:2006-11-09 作者:Builder.com.cn |  我要评论()
本文关键词:软件开发 项目 IT 项目管理
今年,至少三分之二的软件开发项目达不到用户所期盼的要求,这些项目有的被推迟,有的超过预算,有的不包含关键的因素,有的则被削减。

今年,至少三分之二的软件项目达不到用户所期盼的要求,这些项目有的被推迟,有的超过预算,有的不包含关键的因素,有的则被削减。出现这种情况时,大部分都是因为返工造成的,以及项目进展缓慢、重写代码使得交货日期超过了期限。

进一步说,有一半以上的重写工作是因为没有理解或误解了软件项目的需求。这个数目是非常惊人的,在软件项目开发中因为误解需求而导致的浪费以百万美元计,而因需求误解所造成的损失在美国每年达到300亿美元。为什么理解软件项目的需求如此困难?

角色转换中的误解

我们在开发软件解决商业问题时,根据所处的位置不同,比如从股东位置、商人位置或程序员位置,对问题的看法就有所不同。表A中列出了一些典型情况。

A

 

问题陈述

财政官

“我们每月只能关门4天而不是6天”

金融分析师

“我们需要采用流水线处理,需要不同软件系统上的可靠性”

软件设计师

“我们的数据库已经过时,导致一些不必要的延误。”

程序测试员

“在线银行系统需要完全重写。”

最终,所有人都努力解决相同的问题,但是每个人的看法都不同,每个人都采用自己的话语陈述各自感兴趣的问题。在这些话语之间进行沟通是我们所面临的问题:如果能正确转换这些话语,就是我们的成功;如果所有的需求都不清楚、含糊或者不完整时,我们则失败了。

参与者

至少有4种不同层次的人参与到软件开发过程之中:

  • 领域专家:他是最能理解商业问题且对软件系统进行投资的人。其就是解决这些商业问题,且软件只是其工作的一个方面。领域专家谈“生意”并且经常涉及大框架,他们的需求表达大部分是模糊的。
  • 商业分析师:这种人能够理解“生意”和“需求”,他的工作即是将这种生意问题转换成需求说明书,然后转达到IT业。有时候这些人偏重于商业,有时候又偏重于IT。商业分析师能很流利地使用英语讲出问题和更多细节。
  • 软件设计师:他是站在商业和IT边缘的人,这种人能理解“系统”和“软件”。他的工作则是在多个系统中维护构架的完整性,并且确保软件的长期稳定性和可维护性。软件设计师将需求转换成“模块”,然后应用于具体的场合。他的工作语言是英语,但是其他语言也能进行表达沟通。这种人熟悉建模语言并且精通多种编程语言。
  • 软件工程师和测试人员:他们是实际编写代码和测试代码的人。他们的工作不需要同外部采购打交道,所以英语并不是特别好。他们采用设计然后编写测试代码;在业内,他们的经验和阅历可大大不同。这些人谈论“代码”,也就是计算机的编程语言,也能够理解软件模块。如果他们不清楚需求说明,他们则不能进行编程工作。

表B列出以上这些情况。

B

 

领域专家

商业分析师

软件设计师

程序测试员

工作语言

英语

英语

英语/其他

很多其他的语言

专门技术

商业问题

系统问题

软件设计

写代码测试代码

日常语言

商务英语

系统英语

建模语言

C++, C#, Java

沟通上的困难

在一个理想状况下,每一个人都能够胜任工作并且在每一过程中都能进行沟通。但是在这个理想世界里,我们也发现要沟通其实也很困难,比如从领域专家到软件设计师。每一个参与者都有自己独特的语言,并且可能水平高低不同,二者的沟通则存在困难。但如果在团队中缺少了商业分析师或软件设计师,则整个团队的沟通链就中断了。

另外,每一个人使用的工具对沟通也起了重要的作用。20世纪90年代被称为“设计师的10年”,在这个时间段内,软件设计师得到公认并成为很重要的一部分。最终软件的体系结构被理解,成为一个系统的基本骨架,并且软件设计师获得尊重并获得应有的权力,并且得到了他们需要的好工作。这种情况出现后,工具的出现更能让他们更好的完成工作。特别是像Rational Rose这样的建模工具出现后,更让他们能设计更大的软件系统和产品。


百度大联盟认证黄金会员Copyright© 1997- CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号 京ICP备09041801号-159
京公网安备:1101082134