前面我们讨论了,需求分析工作是一个迭代的过程:需求捕获->需求整理->需求验证->再需求捕获······需求捕获是这个迭代过程的开始,也是整个需求分析工作中最重要的部分。没有捕获哪来后面的整理与验证工作?但是,非常遗憾,按照我以往的经验,需求捕获是我们最薄弱的环节。前面我提到的许许多多项目开发的问题都可以归结为需求分析的问题,而许许多多需求分析的问题又都可以归结为需求捕获不完整的问题。需求捕获是整个需求分析工作中最难把握的一个部分,它不仅仅是一个技术的问题,还涉及到人际交往、沟通、知识理解,以及心理学等一系列问题。但更让我感到遗憾的是,在我读过的许许多多关于需求分析的书籍中,讨论需求分析与建模的书很多,但讨论需求捕获的书籍却寥寥无几。确实,要讨论这部分内容,真的已经远远超出了软件开发这个知识领域。
那么,在软件需求捕获过程中,最根本、最容易犯错的问题是什么呢?我认为是一个态度的问题,是采用主动态度去捕获需求,还是采用被动的态度去捕获需求。如果需求分析人员总是诺诺诺,客户说什么,我们就记什么。客户处于非常强势的地位,给我们提出了非常多变态、技术难于实现的需求,而我们的需求分析人员却成为记录员,埋头记录客户说的每一句话,不加分析地就直接扔给了开发人员。这就是采用被动的态度去捕获业务需求的方式。毫无疑问,这样的需求分析必然将给项目开发的后期带来巨大的风险。
为什么会出现这样的情况呢?经过深入分析我们会发现,从客户嘴中说出来的需求,只是整个软件需求中的冰山一角,还有两类需求需要我们自己去挖掘:客户嘴中没有说出来的需求,和客户压根儿就没有想到的需求。
什么是客户嘴中没有说出来的需求,并不是客户故意卖弄官子不愿说出来,而是在客户所在业务领域已经约定俗称,在他们看来已经是天经地义,根本就不用说出来的业务规则。然而,作为刚刚涉足该领域的需求人员,他们是不了解这些规则的。如果采用被动的方式去仅仅记录客户说出来的需求,毫无疑问会遗失这部分需求,这就是为什么直到项目后期,软件被研发出来即将交付使用,客户才提出说这不是我想要的软件,并提出大量变更需求的原因。这时,我们常常问客户,你们为什么不早说呢?而客户却十分委屈,这么简单的道理还需要我说出来吗?
举例说明吧:在我从事的税务行业中,对纳税人征收的税种包括增值税、企业所得税。增值税通常是按月征收的,而企业所得税是按季或者按年征收的。就拿增值税来说吧,税款所属期是开票日期的上个月,为什么呢?纳税人往往是在上个月产生销售收入,然后在下个月完成申报和缴纳税款。这些知识对于税务人员来说是太基本的常识了,所以在他们看来就是天经地义而不需要说出来的业务规则。但作为软件开发人员的我们却常常因为不知道而将业务弄错。
如何破解这样的问题呢?那就是要求我们在需求分析的整个过程,不断进行业务领域知识的学习。在我做需求访谈的初期,我往往不是跟客户谈需求,而是先跟客户谈业务。你们是怎样操作的?都经过些什么流程?谁来完成这些操作的?为什么这样操作?注意,在所有这些问题中,最后一个问题是最重要的。客户业务领域中的所有操作、所有流程都是有它存在的意义的,它体现了其内部的原因与作用。多问为什么,可以让我们深入地理解这些领域知识,站在客户的视角去思考问题,进而深入地理解客户为什么要提出他们的那些业务需求。当一个需求分析员能达到这样的水平,客户嘴中没有说出来的需求就会被源源不断地被发掘出来,最终做出来的需求分析才是完整的、准确的。
我们应当怎样做需求分析
我们应当怎样做需求调研:初识
我们应当怎样做需求调研:拜访
我们应当怎样做需求调研:研讨会
我们应当怎样做需求调研:需求研讨
我们应当怎样做需求调研:迭代
我们应当怎样做需求调研:需求捕获(上)
我们应当怎样做需求调研:需求捕获(下)
我们应当怎样做需求分析:功能角色分析与用例图
我们应当怎样做需求分析:业务流程分析(上)
我们应当怎样做需求分析:业务流程分析(下)
我们应当怎样做需求分析:用例说明
我们应当怎样做需求分析:查询报表分析
我们应当怎样做需求分析:子用例与扩展用例
我们应当怎样做需求分析:行动图和状态图
我们应当怎样做需求分析:业务领域分析
我们应当怎样做需求分析:原文分析法
我们应当怎样做需求分析:领域驱动设计
我们应当怎样做需求分析:非功能需求
我们应当怎样做需求确认:需求列表
我们应当怎样做需求确认:一个需求列表的实例
我们应当怎样做需求确认:快速原型法
我们应当怎样做需求确认:需求规格说明书
我们应当怎样做需求确认:评审与签字确认会
(续)
分享到:
相关推荐
我们应当怎样做需求调研:需求捕获 12 我们应当怎样做需求分析:功能角色分析与用例图 15 我们应当怎样做需求分析:业务流程分析 18 我们应当怎样做需求分析:用例说明 21 我们应当怎样做需求分析:查询报表分析 24 ...
因此,我们需要采取有效的方法来帮助调研人员更准确地捕捉到这些潜在的真实需求。 **客户需求模型**提供了从客户那里捕获需求的基本框架。该模型包含以下关键元素: - **客户目标**:明确项目的最终目标是非常重要...
### 需求捕获中的心理战 #### 引言 在软件开发及信息系统构建过程中,需求捕获是一项至关重要的任务。它不仅涉及到技术层面的考量,更是与人的心理活动密切相关。用户的需求往往受到多种心理因素的影响,这些因素...
### 需求调研指南详解 #### 一、需求捕获技术 在软件开发和项目管理过程中,准确地捕获用户需求是确保项目成功的关键步骤之一。本文将详细介绍三种常用的需求捕获技术:用户访谈、问卷调查和小组会议,并着重探讨...
Wireshark 教程:从数据包捕获到分析
本资源为需求分析师笔试题,包括单项选择题、多项选择题和解决方案题等,涵盖了需求分析的各个方面,涉及到项目立项阶段、需求定义、需求捕获、需求验证、业务建模和需求建模等知识点。 知识点1:项目立项阶段的...
需求工程的活动不仅限于需求获取,还包括需求分析、需求建模、需求确认和需求的持续管理。这些活动旨在创建一个清晰、一致的需求规格,作为软件开发、测试和维护的基础。通过有效的需求工程实践,可以显著提高软件...
[信息安全]大海捞针:使用沙箱捕获多个零日漏洞 安全人才 WEB应用防火墙 安全资讯 安全测试 基础架构安全
软件需求分析文档是软件开发过程中的关键环节,...在进行需求分析时,应充分理解业务需求,准确捕获用户需求,分析和提炼出软件需求,同时考虑需求的商业价值和实现难度,确保软件开发能够满足各方期望,实现业务目标。
### 计网实验网络层数据分组的捕获与解析 #### 实验目的与意义 本次实验旨在深入了解网络层的数据分组捕获与解析过程,包括DHCP分组、ARP分组、IP数据分组以及ICMP分组的捕获与分析。通过对这些分组的格式进行细致...
实验:IP报文的捕获与分析,对了解网络的基本原理有一定的帮助。
1. **选择捕获工具**:根据需求选择合适的捕获工具,例如Wireshark、Tcpdump或Jpcap等。 2. **设置捕获参数**:定义捕获的条件,比如捕获特定类型的包或者指定时间内的包。 3. **捕获数据包**:启动捕获进程,收集...
在本文中,我们将深入探讨基于STM32微控制器的基本定时器功能,特别是PWM输出、输入捕获以及如何在LCD上显示这些数据。STM32是一款广泛使用的32位微控制器,具有丰富的定时器资源和强大的处理能力,适用于各种嵌入式...
本资源包"matlab-GPS快速捕获算法-包括串行捕获技术 -并行码相位捕获-并行频率捕获"专注于使用MATLAB实现这一过程的高效算法。MATLAB作为一种强大的数学和计算环境,非常适合进行这样的仿真和分析。 串行捕获技术是...
3. **需求确认**:与相关方共同审查需求,确保所有重要需求都被准确地捕获。 4. **需求文档化**:编写需求规格说明书,详细记录每项需求及其预期结果。 5. **需求验证**:通过原型测试、评审会议等方式验证需求的...
综上所述,需求管理方法论涵盖了从需求的获取到实现的全过程,通过规范化的流程和有效的工具支持,确保项目能够按照正确的需求方向前进,提高产品质量和客户满意度。对于IT行业的专业人士而言,掌握并灵活运用需求...