软件项目区别于其它项目的最显著的特征是其不可见性,它不像硬件购销、建筑工程,都是实实在在可见的东西。而软件项目在系统交付之前很长一段时间,客户是无法感知自己想要的系统究竟是什么样子。因此,需求管理就显得十分重要,据相关统计数据分析,软件项目90%以上失败的原因都在于没有重视需求或者需求管理方面做的不到位导致的。
  需求管理作为软件项目管理的一个重要内容,贯穿项目实施的全生命周期。俗话说:万事开头难。需求作为软件开发的第一个环节,其重要性不言而喻。市面上关于需求管理的相关理论和书籍很多,但多数停留在理论层面,实操性不强。本文主要是根据我们以往项目的经验,进行一些需求管理方面的探讨。我们可以简单的将软件项目的需求管理分为需求获取、需求分析与验证、需求变更控制三个核心内容。
  (一)需求获取
  需求获取是软件项目需求管理的第一个过程,在这个过程中我们需要运用科学的方法以及相关的项目经验库辅助我们进行需求获取。需求获取的核心内容是通过调研掌握软件项目的实际需求,以便于指导整个项目的实施。需求获取的主要方法包括:用户访谈、问卷调查、现场观摩、头脑风暴等方法。在实际的项目操作过程中,相对比较明确的需求,我们可采用比较固定的需求获取方式,比如:问卷调查等。而对于相对比较模糊的需求或者说用户无法清晰表述自己需要的是什么的时候,我们可采用比较灵活的方式,例如:用户访谈、现场观摩等。
  需求的类型主要包括:业务需求、用户需求和功能需求。在需求获取的过程中,无论采用哪种方法,我们都需要自顶向下或自下向上去了解用户真实的想法。业务需求的获取对象主要是客户的高层领导,我们都知道,项目的发起、实施、最终的成败很大程度上都取决于高层领导,我们需要对他们进行访谈,了解高层领导的公司战略、发展方向,更为重要的是获取他们对将要开发的软件系统的期望,以及希望该系统在解决现有业务问题,对公司整体战略的支撑方面的期望。帮助我们去更好地理解系统的宏观构想。在掌握了业务需求后,我们需要对中层管理人员进行调研,核心问题是搞清楚在宏观战略目标落地的这层,或者说指标细化并负责实施的中层他们对软件系统的期望以及实际要求,他们或希望此系统能够带来工作便利,或希望此系统能够做到精细化管理,如此等等。但他们都是具体的业务部门负责人,对自身的业务以及系统对业务的促进方面,有比较深刻的体会。最后,我们需要在掌握了业务需求、用户需求的基础之上,通过对IT管理部门、主要操作人员的需求调研或根据我们对需求的理解,细化出系统的功能需求,这个需求是最低层次的需求,也是一个层层落地的过程。
  (二)需求分析与验证
  在获取到软件项目需求后,接下来的工作就是对需求进行分析与验证,在项目的实际操作过程中,主要包括:需求分析建模、需求规格说明书编写和需求评审三个大的阶段。
  需求分析建模主要是对已搜集到的信息进行提炼、分析和仔细审查,为最终用户所看到的系统建立一个概念模型,确保所有干系人都明白其含义,并能找出其中的错误、遗漏或不足。需求分析是软件项目需求管理的最重要一环。
  在需求分析与建模过程中,对于用户需求不确定或用户无法清晰表述需求的,为了加快项目进度,我们往往采用原型法进行需求分析与建模,即根据我们的经验以及对用户基本需求的理解,用Axure等原型设计工具搭建一套原型系统。另外,我们还需要采用UML工具进行用例分析、用例描述等,并最终编写形成《软件需求规格说明书》。
  需求验证或需求评审是衡量需求阶段产出成果的重要手段,在完成需求分析与建模后,项目相关干系人应组织召开需求评审会,邀请相关专家、外部相关单位等进行需求评审,就需求分析的结果《需求规格说明书》、原型系统等进行评审,并对评审结果进行签字确认,确保需求没有偏离用户要求,又略高于用户要求。
......
本文转自:51Testing软件测试网