工程项目需求获取的几种方法及其适用环境

转载 2006年06月25日 18:29:00

工程项目需求获取的几种方法及其适用环境


2006.06.20  来自:Sawin   王树文

 

 产品项目一般是根据公司战略和市场需求研发的旨在进行批量出售或推广的项目,工程项目一般是根据与用户签定的合同研发的旨在满足特定用户需求的项目。

  笔者所开发和管理的项目主要是工程项目,在项目的建设过程中,感觉到最头疼的是项目需求的获取;我们往往要花相当大的精力在需求获取和需求确认上,然而有时效果还很不理想。

  经过几年时间的项目实践,我们逐步总结出针对不同项目情况所适合采用的需求获取方法,这些方法能大大提高需求获取的效率。现总结之,愿与大家分享。

  我们知道,一个工程项目,如果从开发方(即承建方)和用户方(即建设方)对需求的清楚程度来分,大致可以分为如下四种:开发方和用户方都清楚项目需求、开发方不清楚项目需求但用户方清楚、开发方和用户方都不清楚项目需求、开发方清楚项目需求但用户方不清楚。

  针对这四种类型的项目,我总结出四种对应的需求获取方法:问卷调查法、会议讨论法、界面原型法和可运行原型系统法。

  以下逐一解析之。

  一、问卷调查法

  所谓“问卷调查法”,是指开发方就用户需求中的一些个性化的、需要进一步明确的需求(或问题),通过采用向用户发问卷调查表的方式,达到彻底弄清项目需求的一种需求获取方法。

  这种方法适合于开发方和用户方都清楚项目需求的情况。因为开发方和建设方都清楚项目的需求,则需要双方进一步沟通的需求(或问题)就比较少,通过采用这种简单的问卷调查方法就能使问题得到较好的解决。

  这种方法的一般操作步骤是:

  步骤一、开发方先根据合同和以往类似项目的经验,整理出一份《用户需求说明书》和待澄清需求(或问题)的《问卷调查表》提交给用户;

  步骤二、用户阅读《用户需求说明书》,并回答《问卷调查表》中提出的问题,如果《用户需求说明书》中有描述不正确或未包括的需求,用户可一并修改或补充;

  步骤三、开发方拿到用户返回的《用户需求说明书》和《问卷调查表》进行分析,如仍然有问题,则重复步骤二,否则执行步骤四;

  步骤四、开发方整理出《用户需求说明书》,提交给用户方确认签字。

  由于这种方法比较简单、侧重点明确,因此能大大缩短需求获取的时间、减少需求获取的成本、提交工作效率。

  二、会议讨论法

  所谓“会议讨论法”,是指开发方和用户方召开若干次需求讨论会议,达到彻底弄清项目需求的一种需求获取方法。

  这种方法适合于开发方不清楚项目需求(一般开发方是刚开始做这种业务类型的工程项目)但用户方清楚项目需求的情况。因为用户清楚项目的需求,则用户能准确地表达出他们的需求,而开发方有专业的软件开发经验,对用户提供的需求一般都能准确地描述和把握。

  这种方法的一般操作步骤是:

  步骤一、开发方根据双方制定的《需求调研计划》召开相关需求主题沟通会;

  步骤二、会后开发方整理出《需求调研记录》提交给用户方确认;

  步骤三、如果此主题还有未明确的问题则再次沟通,否则开始下一主题;

  步骤四、所有需求都沟通清楚后,开发方根据历次《需求调研记录》整理出《用户需求说明书》,提交给用户方确认签字。

  由于开发方不清楚项目需求,因此需要花较多的时间和精力进行需求调研和需求整理工作。

  三、界面原型法

  所谓“界面原型法”,是指开发方根据自己所了解的用户需求,描画出应用系统的功能界面后与用户进行交流和沟通,通过“界面原型”这一载体,达到双方逐步明确项目需求的一种需求获取的方法。

  这种方法比较适合于开发方和用户方都不清楚项目需求的情况。因为开发方和用户方都不清楚项目需求,因此此时就更需要借助于一定的“载体”来加快对需求的挖掘和双方对需求理解。这种情况下,采用“可视化”的界面原型法比较可取。

  这种方法的一般操作步骤是:

  步骤一、开发方根据其所了解到的需求(如通过合同或与用户交流),采用界面制作工作描画出应用系统的功能界面;

  步骤二、将应用系统的功能界面提交给用户并与用户沟通,挖掘出新需求或就需求达成理解上的一致;

  步骤三、开发方就不断获取的需求进行增量式整理,根据新的需求丰富和细化界面原型;

  步骤四、双方经过多次界面原型的交互,开发方最终整理出《用户需求说明书》,提交给用户方确认签字。

  由于开发方和用户方都不清楚项目需求,因此此时需求获取工作将会比较困难,可能导致的风险也比较大。采用这种“界面原型”的方式,能加速项目需求的“浮现”和双方对需求的一致理解,从而减小由于需求问题可能给项目带来的风险。

  针对这种类型的项目,我们也可以采用下面将要介绍的“可运行原型系统法”,但由于开发方对需求不了解(证明以前缺乏类似项目的开发经验和产品积累),如果开发一个可运行的原型系统,则几乎需要从零开始编写代码,前期投入会很大。

  四、可运行原型系统法

  所谓“可运行原型系统法”,是指开发方根据合同中规定的基本需求,在以往类似项目应用系统的基础上进行少量修改得出一可运行系统,通过“可运行原型系统”这一载体,达到彻底挖掘项目需求的一种需求获取的方法。

  这种方法比较适合于开发方清楚项目需求但用户方不清楚项目需求的情况。这种类型的项目,开发方一般都有类似项目的建设经验,因此可以在以往项目的基础上,快速“构建”出一可运行系统,然后借助于这一“载体”来加快对需求的挖掘和双方(特别是用户方)对需求的理解。这种情况下,采用“所见即所得”的可运行原型系统法比较可取。

  这种方法的一般操作步骤是:

  步骤一、开发方根据其所了解到的需求(如通过合同或与用户交流),在以往类似项目的基础上,快速“构建”出一可运行系统;

  步骤二、通过向用户演示“可运行原型系统”,逐步挖掘并让用户确认项目需求;

  步骤三、开发方就不断获取的需求进行增量式整理,根据新的需求丰富可运行原型系统;

  步骤四、双方经过多次可运行原型系统的交互,开发方最终整理出《用户需求说明书》,提交给用户方确认签字。

  由于开发方清楚用户的需求(证明以前有类似项目的开发经验和产品积累),但用户方自己不清楚,因此此时开发一个“可运行原型系统”,开发方的投入不会很大,但对于用户理解和确认项目需求非常有利,因此针对这种类型的项目这是一种比较理想的需求获取方式。

  这种方法的另一个好处是:正式系统一般可以在该“可运行原型系统”的基础上演化而成,为后续开发工作节省不少的工作量和成本。

  值得注意的是,以上总结出的这四种需求获取方法不是互斥的,我们可以根据项目的实际特点独立应用或组合应用。

  “忙碌,不代表有效率;方法,远胜于苦干”。但愿我们从事软件项目开发的朋友们,都能掌握好恰当的方法,以图能获得“事半功倍”的效果。

主要参考文献

?[1] 《IT项目管理》凯西斯瓦尔贝 著 王金玉等 译

作者简介

  本人1999年毕业于中南大学,获硕士学位,现就职于广州华南资讯科技有限公司(上市公司),从事过多个大型项目的开发和管理工作,目前任该公司软件质量保障总监。

 

需求获取的几种方式

日常需要做新的产品或者新的项目的时候,总是愁苦该去哪里获取到足够多的原始需求,闭门造车显然不是最好的方式,那样会使产品带上浓重的个人主义色彩。其实一般有新的项目需要上马,至少总会有个愿景,根据这个再去...
  • ysydao
  • ysydao
  • 2014年10月17日 10:20
  • 7494

需求获取过程

为了获取在整个生命周期干系人的需求、要求和接口要求,需求开发过程域建议首先应该获取。诱发是超越收集需求。诱发意味着主动识别客户没有明确提供的额外需求。软件需求获取个人认为有以下几个方法: 1.   对...
  • u011250455
  • u011250455
  • 2014年08月29日 15:20
  • 1296

信息系统开发中常用的需求获取方法和技术

一、通过研究现有的文档、资料获取需求信息 这些文档资料包括: 1、各种文件(战略规划、规章制度、汇报材料、工作总结、上下行文件、会议记录等等); 2、各种报表(财务、行政及其他); 3、业务过...
  • xianshengsun
  • xianshengsun
  • 2015年04月01日 10:35
  • 1939

软件工程需求分析文档模板

原文:http://blog.csdn.net/jiangcl207504/article/details/5467285 需求分析类文档模板 编者说明:     许多有经验的开发团队在开始...
  • L_chxu
  • L_chxu
  • 2014年02月25日 09:45
  • 14613

假设检验之几种检验方法的比较

之前学习概率论与数理统计的时候就不扎实,导致后来面试官在问我什么时候该用什么检验的时候稀里糊涂,最近工作中又遇到了假设检验的问题,所以就想把假设检验这块好好总结一下。一.什么是假设检验? ...
  • weixin_39875181
  • weixin_39875181
  • 2017年11月23日 11:11
  • 327

Context上下文理解及获得上下文的几种方式

Context理解Context提供了一个应用的运行环境,在Context的大环境里,应用才以访问资源,才能完成和其他组件、服务的交互,Context定义了一套基本的功能接口,我们可以理解为一套规范,...
  • cnsfz
  • cnsfz
  • 2016年11月20日 15:48
  • 442

软件工程的需求分类

软件需求包括 3 个不同的层次――业务需求、用户需求和功能需求。除此之外,每个系统还有各种非功能需求。需求的分类是软件需求阶段必不可少的工作,它可以指导开发人员理解不同的行业的业务、了解用户的真实需求...
  • boonya
  • boonya
  • 2013年11月07日 11:06
  • 9057

Linux下OpenCV的环境搭建

OpenCV is the most popular and advanced code library for Computer Vision related applications today,...
  • zouyu1746430162
  • zouyu1746430162
  • 2016年11月29日 19:48
  • 370

Java中参数传递方式(超详细)

无论是什么语言,要讨论参数传递方式,就得从内存模型说起,主要是我个人觉得从内存模型来说参数传递更为直观一些。闲言少叙,下面我们就通过内存模型的方式来讨论一下Java中的参数传递。 这里的内存模型涉及...
  • tb6013245
  • tb6013245
  • 2014年11月21日 16:50
  • 296

需求分析:需求调研的七种方法

需求获取一般包括这几种方式:观察法、体验法、单据分析法、报表分析法、问卷调查法、访谈法、需求调研会法。这是需求调研的“七种武器”,它们各有优缺点,无论你想要了解的是什么需求,都需要将这些方式组合应用,...
  • yang_changchun
  • yang_changchun
  • 2016年12月21日 10:39
  • 4572
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:工程项目需求获取的几种方法及其适用环境
举报原因:
原因补充:

(最多只允许输入30个字)