需求分析是一个我们与客户不断沟通的过程,这个过程就如同我们与老板的一次对话。老板把你叫去,给你交待了一大堆任务。我们首先是仔细聆听任务的内容,然后整理个一二三四。然后我们复述一遍老板的意思:“老板,我复述一遍,您看看我理解得对不对。首先,您要求我×××,然后×××,最后×××。”老板:“恩,就是这意思,你照着办吧。”之后,我们开始了我们的工作。这个复述的步骤相当重要,因为人与人的沟通最大的问题就是失真。由于人在知识水平、观点看法、性格特质的不同,听者常常会误解对方的意思。有了复述的步骤,误解就会立即被纠正,沟通得以顺畅。在需求分析中,这个复述的步骤就是需求确认。
但与一次简单的沟通不同,需求分析是一系列复杂的沟通过程,它涉及到许多人,谈论的是许多的事物。因此,一次简单的口头复述不足以满足需求分析的需要。因此,需求确认是一系列的确认过程,每次确认都可能需要与不同的人,在不同层次的确认。最终应当形成到纸面,形成文档性的东西,双方签字确认。这个过程中可以采用的一个好的方法就是原型法,最终产物应当是需求列表与需求规格说明书,最后结束于一场需求评审会,或者签字确认会。
当我对无数失败项目的分析总结之后,得出的一个重要的结论就是我们的项目需要对需求的跟踪。大家想想,当一个项目持续数月,经过数轮的需求分析与设计,再经过数轮的需求确认与变更。用户、需求分析员、系统架构师、设计人员、开发人员,甚至测试,一个一个的角色像走马灯一样加入进来。需求开始变得模糊不清,软件设计的初衷开始偏离。开发人员不知道依据哪个标准开发,测试人员不知道依据哪个标准测试,甚至一些需求被人所遗忘。最终,等到软件交付的时候,客户说这不是他们所需要的,项目走向了失败。问题出在哪里呢?问题就出在,不论我们如何分析与设计,我们都要如实记录原始的需求,并以此来验证我们最终的软件。这个如实记录原始需求的文档,就是需求列表。
需求列表,又称之为需求跟踪表,是最原始的、用户对业务需求的描述。它不掺杂任何需求分析人员对业务需求的分析与设计,而是以简短扼要的语句,以业务人员的口吻表述的,今后要开发的这个系统应当提供给他们的各项功能。
首先,需求列表不掺杂我们对业务需求的任何分析与设计,这是需求列表的核心,也是它存在的意义。从用例模型到领域模型我们不难发现,它是一个分析与设计的过程。需求分析员对业务需求进行捕获、认识、理解以后,需要结合软件专业知识进行分析设计,还要听取系统架构师和设计师对需求可行性的分析,最后才整理和编写出用例模型。在这样一个过程中,随着业务需求复杂度的提高,以及各种技术分析的掺杂,最终的结果很有可能偏离原有的业务需求。这种偏离常常表现为对业务需求正确性与完整性的偏离,即需求已经变味儿了,或者某些需求项目缺失。需求列表就是那个最开初的、最完整的、正确的业务需求。用这样一个列表来开始我们的分析,最后用它来验证我们的设计,使之成为我们的分析设计之旅树立的一个正确的航标。有了这样一个航标,就可以使我们最终能够到达一个正确的彼岸。
其次,需求列表应当是站在业务人员的视角,对业务需求的简明扼要的描述。一个纷繁复杂的、业务庞大的管理系统,经过整理以后,被分解成一个一个的需求项目。每个需求项目是一句简明扼要的话。简明扼要意味着清晰易懂;分解成需求项目意味着分解复杂问题为简单问题。每一次与业务人员讨论完业务需求以后,我们就整理成这样一个需求列表,使我们与客户的讨论都有一个清晰明了的讨论结果。当下一次与业务人员讨论时,我们拿出我们上一次讨论的需求列表,又使下一次的讨论有一个基点,使业务讨论能以演进的方式推进下去,提高我们的工作效率。
然而,需求列表中应当剔除那些客户对系统设计的内容。前面我们提到,客户,特别是那些对信息化建设有一定经验的客户,容易提一些对系统设计的期望,比如什么功能应当做成什么样子,功能界面是怎样的。客户提的这些意见,也许不是最佳的,我们经过深入的分析设计以后,可能会提出一些更加合理的方案。因此,这样内容不能成为我们验证系统功能的基石,因而不应当写入需求列表中。需求列表描述的更应当是客户对软件功能的意图,即客户使用这个功能所达到的目的,而不是功能的具体实现。这一点我们在后面通过具体实例详细说明。
最后,需求列表也不是一步到位的,而是经过由粗到细逐渐整理形成的。一个大的需求项目可以分解为多个细的需求项目,进而形成一个树状的需求列表。需求列表应当细分到什么程度呢?将系统需求描述清楚为宜。简单需求不需过多的细分,而复杂需求则需要尽量写细一些。同时,需求列表也是一个不断变化的过程,日后的每一次升级维护都需要不断增添和修改需求列表,使其与实际系统保持一致。
我们应当怎样做需求分析
我们应当怎样做需求调研:初识
我们应当怎样做需求调研:拜访
我们应当怎样做需求调研:研讨会
我们应当怎样做需求调研:需求研讨
我们应当怎样做需求调研:迭代
我们应当怎样做需求调研:需求捕获(上)
我们应当怎样做需求调研:需求捕获(下)
我们应当怎样做需求分析:功能角色分析与用例图
我们应当怎样做需求分析:业务流程分析(上)
我们应当怎样做需求分析:业务流程分析(下)
我们应当怎样做需求分析:用例说明
我们应当怎样做需求分析:查询报表分析
我们应当怎样做需求分析:子用例与扩展用例
我们应当怎样做需求分析:行动图和状态图
我们应当怎样做需求分析:业务领域分析
我们应当怎样做需求分析:原文分析法
我们应当怎样做需求分析:领域驱动设计
我们应当怎样做需求分析:非功能需求
我们应当怎样做需求确认:需求列表
我们应当怎样做需求确认:一个需求列表的实例
我们应当怎样做需求确认:快速原型法
我们应当怎样做需求确认:需求规格说明书
我们应当怎样做需求确认:评审与签字确认会
(续)
分享到:
相关推荐
我们应当怎样做需求分析 ...我们应当怎样做需求确认:一个需求列表的实例 48 我们应当怎样做需求确认:快速原型法 49 我们应当怎样做需求确认:需求规格说明书 50 我们应当怎样做需求确认:评审与签字确认会 53
需求确认是软件开发过程中的关键步骤,而需求规格说明书则是这一阶段的核心文档。这份文档定义了项目的业务需求和系统功能,确保所有参与者对项目的目标和预期有清晰的理解。以下是关于如何编写需求规格说明书的一些...
### 软件需求确认书知识点解析 #### 一、软件需求确认书概述 软件需求确认书是软件开发过程中的一项重要文档,它记录了客户对软件功能、性能、界面等需求的具体确认情况,确保双方对项目的理解一致。该文档对于避免...
- **需求确认人**:负责审核并确认需求变更的人员,通常为项目主管或者具有决策权的关键人物。 - **响应时间**:需求响应人接收到变更请求后给出初步反馈的时间。 - **变更工作量**:预计实施此次需求变更所需的工作...
需求确认过程强调内外部的确认流程: - 内部确认指的是项目组内的确认,而外部确认则是与用户的确认。 - 确认过程可能需要多次迭代,直至需求明确且得到用户的认可。 - 确认形式可能包括会议、书面文件等。 8. ...
怎样做需求分析(一).doc 和怎样做需求分析(二).doc 这两个文档很可能详细介绍了需求分析的步骤和技巧。通常,需求分析包括以下阶段: 1. 需求识别:通过访谈、问卷调查、观察等方式,从用户那里收集初步需求。 ...
除了编写需求规格说明书之外,需求开发还包括了一系列活动,如需求获取、分析、定义和确认等。而需求管理则关注于需求的变化控制,确保所有相关方都能及时了解到需求的最新状态,并对需求变更进行适当的评估和决策。...
1 引言 1 1.1 目的 1 1.2 范围 1 1.3 读者对象 1 1.4 参考文档 1 1.5 术语与缩写解释 1 2 产品介绍 1 3 产品面向的用户群体 1 4 产品应当遵循的标准和规范 1 5 产品的功能性需求 1 ...7 需求确认 69
10. **验收标准**:定义软件完成的标准,用于测试和确认需求已得到满足。 11. **变更管理**:规定需求变更的流程,以确保所有变更都被正确跟踪和管理。 需求规格说明书的编写应当严谨、清晰,并保持与所有利益相关...
1. **功能与实现分离**:规格说明应该描述“做什么”,而非“怎么做”。 2. **认知模型**:规格说明应作为一个认知模型,而非设计或实现模型。 3. **面向处理的语言**:使用面向处理的规格说明语言。 4. **系统上...
电子商务网站需求分析文档 本文档对电子商务网站的需求进行了详细的分析,包括产品介绍、面向的用户群体、应当遵循的...8. 需求确认 本文档对电子商务网站的需求进行了详细的分析和确认,为开发和测试提供了依据。
宽泛地讲,需求来源于用户的一些“需要”,这些“需要”被分析、确认后形成完整的文档,该文档详细地说明了产品“必须或应当”做什么。 所以如果只有一些零碎的对话、资料或邮件,你就以为自己已经掌握了需求,那是...
为了确保需求分析的成功,需求规格说明应当具备以下特点: - **明确性**:每项需求都应该清晰、具体,避免含糊不清的表述。 - **完整性**:所有必要的需求都应该被记录下来,没有任何遗漏。 - **一致性**:需求之间...
8. **需求验证**:在开发过程中,通过原型、评审会议和测试用例等方式对需求进行验证,确认是否符合原始设定。这有助于在早期发现问题,避免后期返工。 9. **需求管理工具**:使用需求管理工具(如JIRA、Confluence...
- 每个需求都应当能够通过测试用例或其他验证方法来确认是否被正确实现。 - 不可验证的需求可能导致实现结果的主观判断。 #### 五、需求规格说明的特点详解 1. **完整性** - 需求规格说明书不应遗漏任何必要的...
6. **需求验证**:在分析过程中,应定期与利益相关者进行确认,确保理解的需求符合他们的期望。这可以通过评审会议、反馈机制等实现。 7. **变更管理**:需求可能会随着项目的进展而变化,因此需要一套变更控制流程...
需求确认是指开发方和客户共同对需求文档进行评审,双方对需求达成共识后作出书面承诺,使需求文档具有商业合同效果。需求跟踪是指通过比较需求文档与后续工作成果之间的对应关系,建立与维护“需求跟踪矩阵”,确保...
- **作用**:方便后续沟通和确认需求的真实性及必要性。 - **填写建议**:尽可能详细地记录提出者的姓名、职位以及联系方式。 ##### 4. 场景(Where、When) - **定义**:描述需求发生的具体环境和时间。 - **作用...