软件需求的获取是软件开发过程的第一步,需求质量是决定软件成功与否的重要前提,如果获取的需求有了偏差或是遗漏,其结果可能导致后续的分析、设计与开发都出现问题;反之,如果获得了全面、严谨、逻辑表达清晰的需求,就会让设计师与程序员可以非常顺利地进行后续的工作。
如何做好需求获取的工作呢?需求获取的过程分为三个阶段,每个阶段有不同的目标、内容及相应的方法、交付物和标准。这三个阶段分别是:需求背景、需求调研、需求分析。
在对客户进行正式的需求调研前,要事前做好对客户的背景资料的收集和整理,这是需求调研成功的基本保障。

这是需求工程的第一阶段,介绍:需求背景的作用和方法。


“知己知彼、百战不殆”,要想做好需求调研工作,事前就要做足功课。调研前的准备工作是否充分决定了调研初期的沟通成本(时间、资源)。

1.背景资料的来源

事前了解客户的背景是十分重要的准备工作,了解客户背景就是调研工作的第一步,这些资料可以帮助事前做好准备,资料中的信息影响着与客户确定开发合同的内容、规模、金额、时间、技术复杂度等,了解客户背景可以有以下几个途径(不限于此)。

□互联网:从各类网站上可以快速地获得一些公开的企业基本信息;
□宣传资料:企业的各类宣传资料,会涉及到企业的基本信息、产品、服务等;
□人员沟通:网站、宣传册中获得是“过去时”的信息,人员沟通获得的是“现在时”的企业信息;

2. 背景资料的汇总

汇总已经获得的背景信息,梳理出一份背景分析报告,让后续的需求工程师在调研开始前就掌握客户和项目的基本背景,这样做带来的好处是:

□勾勒出客户的“形象”,了解了这个形象后可以让需求工程师做到心中有数;
□让初次见面的客户感受到需求工程师的“专业性”,增强信任感,提升沟通效率;
□背景资料是判断客户需求的重要参考,也为需求分析师增加了交流时的话题、切入点;

汇总资料内容以及作用(不限于此)

1)企业基本信息
□企业发展愿景:了解企业的长远目标。帮助进行信息化的顶层规划设计;
□主要领导发言:判断进行信息化建设的目的、期望等,影响到投入资金、资源及支持力度等;
□客户企业规章:理解企业的管理水平,能够系统管理设计的复杂度、深度等;
□企业组织形式:掌握组织结构、地域分布、部分的划分层级,这些会影响系统的部署;
□企业人员构成:了解员工人数、能力结构等,这些会影响到系统上线培训、运行的难易度等;

2)企业业务情况*
□企业业务构成:主营业务(行业、领域、产品),辅营业务(财务、人资等),帮助理解系统所需的功能;
□企业业务数据:近三年的年产值、收益情况。判断客户可以承受的开发费用、以及系统完成后可能带来的经济效果;
□有无管理问题:包括产值、成本、资金、收益、内控、质量、安全等诸方面的问题,导入信息化管理后可能改善这些问题;

3)既存IT现状
□既有系统现状:了解既有系统覆盖的业务、系统构成、数据标准等,判断是否有异构系统集成等需求;
□IT现状与问题:既有系统的使用状况、是否数据标准不统一、信息孤岛、系统是否已落后等问题等,用以判断新建系统的需求等;
□其它问题:运行环境等问题等;

3. 表达形式的统一

有经验的读者都经知道,调研初期最为头疼的事就是针对一个双方都知道的问题,需求分析师与客户往往谈了很久都说不到一起,而经过一段时间的沟通后就会变得比较流畅了,造成这个现象的原因就是双方来自于不同的行业,有着各自的习惯,因此对同一个问题就缺乏统一的定义,而相互熟悉之后,尽管用语还不明确但也知道对方指的是什么,这种现象造成了调研初期的沟通效率不高,而且进行信息系统的详细需求讨论时,用语的定义必须是精确的、不含糊的。所以,调研开始前要对所用专业表述进行统一,统一的内容包括二个方面:用语表达的统一、逻辑表达的统一。

1)用语表达的统一
从两个方面进行用语的确定,一是客户的业务专业用语、二是软件商的软件专业用语。

□业务专业用语(客户)
用文字的形式,将系统涉及到的各类客户专业用语进行统一定义。方法是从预先收集到的资料中,将频繁出现的专业用语、固定表达方式等抽提出来列成表,做好定义后交与客户进行确认。业务用语根据不同的业务领域不同,比如企业管理经常会用到的:产值、利润、成本、成本管理、收支平衡、业务财务一体化等;
□软件专业用语(软件商)
由于客户要引入信息系统,所以客户也必须要引入和掌握系统相关的基础用语。方法也是同样,预先将本系统可能用到的专业用语列表,进行定义。比如:企业管理系统常用到的:需求、功能、流程、界面、流程分歧条件、管控规则等,软件专业用语也就是设计用语。

2) 逻辑表达的统一
仅仅用语言还不足以保证双方的沟通顺畅,因为企业有很多复杂的业务逻辑是用语言无法描述清楚的,所以必须采用图形的形式进行表达和沟通,需要教会客户方相关人能够看懂与他们业务直接相关的、并且需要他们确认的业务架构图、原型界面图。预先准备好用于不同业务的标准用图,比如:

□分解图(静态):将组织结构、产品结构、客商分类等关系表达出来;
□流程图(动态):将客户的业务运行顺序、管控点布置等关系表达出来;

相对于用语表达的统一,逻辑表达的统一是一个更高层次的统一,因为即使是用语统一了,但在具体业务内容的描述上可能还是不一致的,只有在逻辑表达层面也统一了,才可以说是真正地对某个事物的理解是一致了(注:理解一致≠做法一致)。
用图形表达业务逻辑的方式,是提升需求调研的效率、质量、价值等的最高效方法之一,当遇到的问题越复杂时,图形表达的沟通方式就越有效。

4. 调研问卷的准备

通常在大型、或是复杂的软件项目进入现场调研前,会对客户的相关部门进行问卷调研,将需求分析师想要知道的、容易回答的问题提前发给客户,在进入调研前回收,研究。问卷的作用很多
□给与对方思考的时间,让客户可以根据问卷内容提前梳理思路;
□可以让客户事前了解“需求调研”的工作内容等,做好心理准备;
□问卷法节省时间、经费和人力,这是为什么经常采用问卷法的原因;
(以下省略)

5. 原型法调研的准备

原型法是指在获取一组基本的需求定义后,利用高级软件工具可视化的开发环境,快速地建立一个目标系统的最初版本,并把它交给用户验证、补充和修改,再进行新的版本开发。反复进行这个过程,直到得出系统的“精确解”,即用户满意为止。(以下省略)

6. 项目启动会的准备

通常软件项目的合同确定之后,在需求调研之前都会召开一次有相关各方参加的项目启动会,可能有的读者会认为就是双方相关人员相互介绍认识一下,走个形式,其实不然。对于软件商方面而言,项目启动会的作用是非常重要的,用“机不可失”来强调它的重要性也一点不为过,它是需求调研开始前的最后一个重要工作,可以说是进入调研前的最重要工作,这个会的重要性就在于,双方的领导,特别是客户的高层领导会参加,下一步调研相关的组织、管理、计划等主要事项一定要在这个会议上的“当面落实、决定”,也就是说,软件商一侧要在会议前,将所有需要双方领导当面确定的事项全部准备好(可以是提纲,也可以包含尚未敲定的事项)。(以下省略)

7. 调研路线图的规划

将前述的内容整理成调研的路线图,路线图包括
□流程:作为路线图的载体,给出开始、中间步骤、结束;
□节点:路线图上的每个节点包含的内容、对应的活动和模板(问卷、图形)
(以下省略)

8. 调研物品

作为最后一项,调研中要准备好以下的一些物品,这些物品的作用很重要
□投影仪:准备好的资料要用投影仪仅展示;
□白板/多色白板笔:临时发生的问题在白板上画张图会带来意想不到的效果;

无论什么样的软件项目,调研前的准备越充分调研的效果就会越好,调研前准备的目的就在于:全部的调研过程一定要按照预先制定的内容规划、节点计划推进,也就是说整个的调研过程要在需求分析师的“掌控”之下推进,而准备不足时在调研现场就容易出现“失控”的局面,有经验的读者应该对此有体会。

其他

□需求调研对象的区别
□需求调研的顺序
□需求真实性的识别
□需求资料的收集方法
□需求的记录格式&模板等

■本系列的下一篇博文:需求获取的三阶段,介绍:需求调研

详细的说明和模板,请参看《大话软件工程—需求分析与软件设计》一书。

需求获取的三阶段:需求背景、需求调研、需求分析(1)相关推荐

  1. 需求获取的三阶段:需求背景、需求调研、需求分析 (2)

    完成了客户背景的调研准备后,就进入到了与客户面对面进行需求调研的阶段,事前要搞清楚:调研什么.怎么调研.向谁调研.调研成果如何收集.如何记录,还有调研中采用什么样的流程.方法,还要搞清楚:调研到什么程 ...

  2. 需求获取的三阶段:需求背景、需求调研、需求分析 (3)

    收集到了客户的需求后,下一步就到了对需求进行分析的阶段,在这个阶段就要理解需求.分析需求.最后确定系统需要实现的功能需求.这一阶段非常重要,因为前期收集到的需求表达形式各种各样,不一定都是用" ...

  3. 需求处理的三个步骤:需求梳理、需求分析、需求放大

    明确细准的需求是做好产品的前提. 需求要根据实际情况,进行侧重点的划分.我平时遇到是将重点放在当需求出现时,如何更好的梳理需求,并正确的分析需求.首先我们应该将需求从"确认出现", ...

  4. 论软件需求获取技术及应用

      声明:本文为本人在软考系统架构设计师备考期间的练手写作,不保证内容的原创性与正确性,仅供参考,请勿照抄和用于学术论文等正规场合,因不当使用产生后果一律自负. 摘要   2019年3月,我单位联合某 ...

  5. [架构之路-202]- 常见的需求获取技术=》输出=》用户需求、客户需求(As...., I want.....)、用例图

    目录 前言: 11.2.1 直接的用户访谈 1 . 准备访谈 2 . 访谈过程 3 . 访谈的后续工作 4 . 用户访谈的优缺点 11.2.2 问卷调查 1 . 调查表的制作 2 . 问卷调查的优缺点 ...

  6. 软件需求管理(二) 需求获取

    一. 需求获取概述 1.1相关概述 软件需求获取是软件工程的主体. 主要表现为: 发现问题->分析问题->解决问题 的过程. 需求获取阶段主要产生的文档:1.前景和范围文档 2.用例说明文 ...

  7. java头像交互式差分演变_一种基于交互式差分进化计算的用户知识需求获取方法与流程...

    本发明属于知识服务领域,具体涉及一种基于交互式差分进化计算的用户知识需求获取方法. 背景技术: 在多数企业拥有庞大的知识数量和优质的知识资源的情况下,如何利用推送系统将知识主动推送给设计人员以提高企业 ...

  8. 【产品经理学习笔记 | 巨详细】2.规划阶段——2.1需求收集:用户访谈和问卷调查方式

    (从规划阶段的需求收集开始,一般不会接触到市场调研) 2 规划阶段 2.1 需求收集 什么是需求? 需求和需要的区别: 需求:某方面未被满足而引发的感受指向具体的事物 需要:指向具体的事物 例: 我需 ...

  9. Lab 5:面对面需求获取与原型设计

    1. 实验要求 练习面对面交流的方式进行需求获取,澄清用户需求 根据用户需求建立用户故事清单,使用敏捷开发方法为用户故事建模卡片,规划优先级,估计工作量,构思迭代计划 练习使用VersionOne或其 ...

最新文章

  1. php error_reporting 详解
  2. PonyAI的首份美国无人出租成绩单:总数1271趟,15%拼车
  3. JS跨域访问(ajax跨域)
  4. computed vs methods
  5. python test suit_python unittest学习3---添加测试套件,testsuit
  6. 一定要树立真的猛的期刊,只需要发一篇的思路
  7. linux命令--VI命令详解(一)
  8. Troubleshooting OpenStack Bug- 每天5分钟玩转 OpenStack(162)
  9. 使用OpenTelemetry搭配Zipkin构建NetCore分布式链路跟踪 | WebAPI + gRPC
  10. ZJOI2007 棋盘制作
  11. 超强领先!Transformer图像复原效果显著!
  12. 演示Thread.sleep(100)和Thread.currentThread().isInterrupted()+@Deprecated:将方法标注为废弃的方法...
  13. 将Tomcat集成到IDEA
  14. win10系统如何安装SQL服务器,在Win10系统上正确安装SQL Server
  15. 怎么解决Xshell4终端中文乱码问题
  16. c# winform h.265解码
  17. [模板] dp套dp bzoj5336: [TJOI2018]party
  18. 【SSM框架项目 客户关系管理系统CRM 学习开发 Day3】市场活动模块的数据导入与导出
  19. Python之有趣的小程序
  20. idea 彩虹屁合并语音包,语音包无法使用 解决教程

热门文章

  1. 永远的记忆--汶川地震
  2. ACL 2021 | 百度NLP开源语言与视觉一体的统一模态预训练方法,登顶各类榜单
  3. 联合分布,求条件概率密度
  4. Android如何在onCreate()方法中获取控件的高度和宽度
  5. datax3数据同步
  6. AI智能安防视频平台EasyCVR视频突然播放不了的原因排查
  7. 数据结构和算法 数论 中国余数定理
  8. 《西游记之大圣归来》
  9. android EasyLink给wifi模块配网
  10. c语言 int大端转小端,C++将整型数据转换成大端或小端存储顺序