需求获取工作的任务就是收集项目干系人的需求信息,为定义项目的范围奠定基础。
需求获取工作只能通过用户与开发人员之间进行高度的合作和交流才能成功。
在软件项目的需求获取活动中,一般要收集以下类别的用户需求: (1)界面需求:描述软件系统的外部特性,即系统如何从外部得到数据输入,如何向外部输出数据。 (2)功能需求:列出软件系统必须完成的所有功能。 (3)性能需求:响应时间、吞吐量、处理时间、存储空间等方面的限定。 (4)质量需求:对安全性、保密性、可靠性、可维护性、可移植性、易用性等方面的要求。 (5)资源使用需求:对硬件、支持软件、数据通信接口等方面的要求。 (6)软件成本消耗与开发进度需求:即对时间和经济方面的要求。 (7)异常处理要求:在运行过程中出现异常情况(如临时性或永久性的资源故障,不合法或超出范围的输入数据、非法操作等)时应采取的行动以及希望显示的信息。
获取需求的常用方法
(1)访谈。访谈是通过与干系人直接交谈来获取信息。访谈的典型做法是向被访者提出问题,并记录他们的回答。访谈经常是一个访谈者和一个被访者之间的一对一谈话,但也可包括多个访谈者或多个被访者。访谈有经验的项目参与者、发起人、以及主题专家,有助于识别和定义项目可交付成果的特征和功能。
(2)讨论会。讨论会把主要项目干系人召集在一起,通过集中讨论来定义项目需求。讨论会是快速定义跨职能需求和协调干系人差异的重要方法。由于群体互动的特点,被有效引导的讨论会有助于参与者之间建立信任、改善关系、改进沟通,从而有利于干系人达成一致意见。在每次讨论会中,都必须记录所讨论的内容,并在会后加以整理。在会前应提前发给参加人员有关讨论会的议题和内容等材料,以便有所准备。
(3)观察用户工作流程。直接观察用户在其实际环境中怎样执行工作是一种行之有效的获取需求方法。当产品使用者难以清晰说明他们的需求时,就特别需要通过观察了解他们的工作细节。通常由观察者从外部来观看业务专家如何执行工作,也可由观察者实际执行一个流程或程序,来体验该流程或程序是如何实施的,以便挖掘隐藏的需求。
(4)问卷调查。问卷调查是指设计一系列书面问题,向众多受访者收集信息。当需要调查大量人员的意见时,向被调查人分发调查问卷是一个十分有效的做法。经过仔细考虑写出的书面回答可能比被访者对问题的口头回答更准确。调查者应仔细阅读收回的调查表,然后再有针对性地访问一些用户,以便向他们询问在分析调查表时发现的新问题。
(5)快速原型法。快速原型法是指在软件开发的早期快速建立目标软件系统的原型,并据此征求用户对需求的反馈。由于原型是可以操作的,它使得用户可以体验最终产品的模型,而不是仅限于讨论抽象的需求描述,从而可以获得更为准确和清晰的需求。快速原型法需要经历从模型创建、用户体验、反馈收集到原型修改的反复循环过程。在经过足够的反馈循环之后,就可以通过原型获得足够的需求信息。
分析和整理收集到的用户需求