解析企业软件开发项目的需求管理

发布者: 发布时间:2011/7/12 阅读:1657
聚划算
来源:项目管理者联盟 时间:2011-07-12 点击:

        摘 要:需求管理是整个软件工程的管理的基础,也是项目成功的关键所在。本文论述了企业软件开发项目中需求管理的重要性,详细描述了软件需求的复杂性,分析了需求变化的原因,并针对这些问题提出相应的管理策略。

  关键词:需求管理 软件需求 需求变化

  0 引言

  随着信息时代的发展,计算机软件的需求愈来愈复杂,规模愈来愈大,而且随着企业的发展和工作过程重组,需求变更已愈来愈成为必然。在企业软件项目的开发过程中,需求变更贯穿了软件项目的整个生命周期,在软件的项目立项、研发及维护各阶段,用户经验的增加、对软件使用感受的变化以及整个行业的新动态,都为软件带来不断完善功能、优化性能、提高用户友好性的要求。在软件项目管理过程中,项目经理经常面对用户的需求变更。如果不能有效处理这些需求变更,项目计划会一再调整,软件交付日期一再拖延,项目研发人员的士气将越来越低落,将直接导致项目成本增加、质量下降及项目交付日期推后。这决定了项目组必须拥有需求管理策略。

  需求管理是软件开发生命周期的初始阶段,它对最终提交的软件产品的质量起着至关重要的作用。有资料统计,软件项目40%—60%的问题都源于需求分析。所以,重视需求、谨慎对待、严密分析,是每一个开发者应该持有的正确态度。建立软件需求管理过程的目的在于用户和软件项目组之间形成共同的理解,这种共同理解应体现在用户需求的文档化确认和对用户需求的控制中,并保证项目的计划、工作产品和活动都与需求一致。

  1 需求管理复杂性分析

  软件需求是整个软件开发项目的最关键的一个输入,和传统的生产企业相比较,软件的需求具有模糊性、不确定性、变化性和主观性的特点,不同于生产汽车、电脑等硬件的需求,是有形的、客观的、可描述的、可检测的,软件需求是企业软件项目最难把握的问题,其复杂性体现在以下方面:

  1.1 需求的描述问题。缺少正式的、完整的需求文档浪费了大量的人力物力,但是有了需求文档又出现了新的问题。在用户方进行的需求评审会完全是走形式,因为用户根本不去听那上百页的需求文档。不同层次的客户(用户)关心的问题是不一样的,想要每个客户都成为需求专家是不现实的。

  1.2 需求的完备程度问题。需求如何做到没有遗漏?如何准确划定系统的范围?这确实是一个两难问题,稍微大一点的系统要想穷举需求几乎是不可能的,每次开需求评审会时,总会冒出新的需求,以至于系统没有一个准确的范围界定。即使是这样,系统还是要开发,系统的范围还要硬性的划定一个,从而建立一个基线。

  1.3 需求开发的工期问题。在需求上花费了大量的时间,客户、企业是否能够忍受?为了确保需求的正确性,完备性,项目经理往往坚持要在需求阶段花费大量的时间,但是客户与企业的高层领导却会为项目迟迟看不到实际可运行的软件担心不已,他们往往会催促项目组尽快往前推进,而项目组的成员往往也会被系统复杂、善变的需求折腾的筋疲力尽,希望尽快结束需求分析的相关工作。

  1.4 需求的细致程度问题。需求到底描述到多细,才算可以结束了?仁者见仁,智者见智,并没有定论,如果时间允许,要想细总可以细下去的。但是,需求的周期越长,可能的变化越多,对设计的限制越严格,对需求的共性提取要求越高,所以只要客户(用户)、需求分析人员、设计人员、测试人员认为描述清楚了,就可以进入设计阶段了。

  1.5 需求的变化问题。在软件开发过程中如果只有一条真理的话,那一定是:需求的变化是永恒的,需求不可能是完备的。软件开发的过程实际上是同变化做斗争的过程,需求的变更不一定是坏事,也有可能是好事,是商业机会,对市场敏感的人可以从需求的变化中发现市场机会。

  2 需求变化的原因

  需求变化的原因很多,比如:①一开始没有识别全,需要增加需求;②业务发生了变化,需求必须变化;③需求错误;④需求不清楚。

  需求的变化问题是每个开发人员、每个项目经理都遇到的问题,也是最头痛的问题,一旦发生了需求变化,项目组不得不修改设计、重写代码、修改测试用例、调整项目计划等等。需求的变化好像为项目的正常的进展带来不尽的麻烦,怎么办?只有通过需求管理使需求在受控的状态下发生变化,而不是随意变化,需求管理就是要按照标准的流程来控制需求的变化。难题随之而来,需求中的变化一般不是突发的革命性的变化,最常见的是项目需求的渐变(Project Scope Creep)问题,这种渐变很可能是客户与开发方都没有意识到的,当达到一定程度时,双方才蓦然回首,发现已经物是人非,换了一番天地。


关于易利-项目管理-产品中心-联系我们-帮助中心-申请链接