为了更好的获取需求,我们需要一些方法:
1、文件分析(document analysis)
在项目需求获取阶段,文件分析是第一步。在售前阶段会保留很多工作文档,市场销售人员也会从客户处获取一些文件,这样会在客户、用户访谈前,提前对项目的需求做出一些分析,例如政策、法规、当前工作流程指南,现有系统接口文档、用例等。文件分析不仅是可以提前获取一些需求,而且还是下一步需求的背景知识准备。通过文件分析,可以准备好调研问卷、访谈问题等。
2、问卷调查(surveys - questionnaires)
如果能在需求访谈前,向项目干系人进行一轮问卷调查是最好的,问卷不宜过长和过于复杂。问卷调查可以获得项目干系人所关注和担心的问题。不要指望问卷调查能获取准确的需求。
3、访谈(Interviews)
访谈时获取需求最直接,最有效的方法,因为面对的是项目干系人,所以访谈的时候是非常有技巧的,包括问的问题,身体语言及眼神的沟通。通过有效的问题设计和对回答的记录,从而得到相对精准的需求。
4、观察法(Observation)
观察法是查看项目用户在日常工作中如何完成任务,特别是工作细节部分。观察法多多少少都对被观察的人产生额外的压力。很多书籍书观察法不要问问题和进行记录,这种在工厂可行,但大多的实际的情况是用户一边操作,一边愿意告诉你系统是如何运行的,而且还经常抱怨或称赞系统的功能,这些都是很好的需求来源。
5、头脑风暴、焦点小组或研讨会等群体技术(Group Techniques: Brainstorming, Focus groups, workshop)
群体技术一般来说都是群体召集很多人共同针对需求进行讨论,优势是头脑风暴,对需求形成一致意见。例如在访谈后的分析中发现某些需求理解不一致,可以采用群体技术方法针对有争议的需求进行讨论,最后形成一致意见,这个意见一般也是最佳的。只要是多人开会解决问题,一般来说都涉及头脑风暴。无论哪一种,都需要会议的主持人具有很好的现场控制能力。
6、接口分析(interface analysis)
接口分析主要分为三种内容,第一是项目团队和项目干系人之间的关系,第二是文档中不同需求之间的关系,是否有描述的冲突和不一致的地方,第三是本项目和其他项目,或者所建设的系统和其他系统之间的关系。个人认为,这点非常重要,单独的需求变更只需要内部解决,影响相对小,而接口的需求变更则影响更大,比如,不同的需求描述存在冲突,则需要将两个需求重新验证,而系统间的需求问题,则需要协调的资源更多。
7、流程建模(process modelling)
通过文件分析、问卷、访谈及接口分析形成的需求,流程等,都可以用流程建模的方式表现出来,采用文字和数据可视化的方法描述工作、系统之间的交互等需求,利用流程建模进行需求验证,是非常有效的方法。可以采用PowerPoint, Visio, UML等工具绘制流程图和建模。
8、原型法(prototyping)
如何舍得花时间,或者根据客户要求,可以搭建系统的原型,这是更有效的方式。原型直接直接展示流程、数据结果的样式,以及一些功能性界面。好的原型确实需要很多时间来完成,在实际的项目中,原型法最好是和敏捷方法一同使用,做到事半功倍的效果。
针对任何一种方法,都有很多书籍来进行指导,但无论哪一种方法,都可以在项目中有机的组合在一起,活学活用,始终记住,我们的目标是获取有效和精确的需求。
例如需求中访谈调研的方式非常常见,在访谈前,需要做好访谈提纲,并将访谈提纲提前发给用户和客户,让对方有准备。访谈中要使用业务语言,注意倾听和复述,确保和对方始终说的是同一个事情,如果比较复杂,还要用具体的例子和数据、表单进行说明,无论对方说什么,保持你的目标,完成你的任务。访谈以后,要感谢项目干系人的时间。在访谈过程中,要至始至终尊重对方,记下他的问题,访谈后会给他明确的回复或建议。
网友评论