[需求管理-2]:什么是需求以及需求的收集与识别

news/2024/4/29 8:50:11/文章来源:https://blog.csdn.net/HiWangWenBing/article/details/126844266

目录

第1章 什么是需求识别

第2章 需求的来源

2.1 外部需求(收集)

2.2 内部需求(开发)

第3章 需求的层次

第4章 需求的形式

4.1 提问题(针对业务层次需求、原始性需求):第一性原理

4.2 提目的(针对任务层次需求)

4.3 提方案(针对系统层次需求)

4.4 功能性需求

4.5 非功能性需求

第5章 收集需求的方法

5.1 定性 VS 定量

5.2 收集需求常用方法

第6章 用户访谈

6.1 用户访谈的形式

6.1 明确用户访谈的形式

6.2 明确访谈目标

6.3 访谈的问题设计

 6.4 用户访谈的注意事项

第7章 其他方式

7.1 问卷调查

 7.2 竞品分析

第8章 原始需求列表池(backlog)

8.1 需求表格类型

8.2 表格内容

8.3 需求控制的原则


第1章 什么是需求识别

需求定义:未满足的某种期望,预期与现状之间的差异部分就是需求。

需求识别:就是理解和表达潜在的需求。

客户需求存在的地方,就是为组织进行价值创造的地方。

(1)已知的已知:客户自己知道已有的需求。-- 客户主动提出来的需求

(2)未知的已知:客户不知道自己有某种需求 -- 需要需求工程师帮助客户发现。

(3)已知的未知:客户知道有可能有需要,但不明确 -- 需要需求工程师帮助客户发现。

(4)未知的未知:客户不知道是否有什么需求,认知盲区 -- 需要需求工程师帮助客户挖掘。

因此,需求工程师,不仅仅收集、理解、文档化客户的需求。还需要依靠自己的专业性帮助客户发现潜在的需求。

第2章 需求的来源

2.1 外部需求(收集)

  • 客户需求
  • 行业分析
  • 竞争对手
  • 展览
  • 出版物

2.2 内部需求(开发)

  • 客户服务部门
  • 产品经理部门
  • 公司预研部门
  • 业务部门
  • 老板需求(这需要特别重要的需求)

第3章 需求的层次

BR:Business Requirment,站在业务的角度。

UR:User Requirment,站在用户,系统的使用者角度。

SR:System Requirment,站在目标系统的实现的角度,这里的系统,通常是目标软件或硬件系统。SR的需求,是最接近软硬件系统的具体实现的。

备注:

越是高层的需求,越是远离软件产品的软硬件系统的具体实现。

需求工程师(包括产品经理、系统工程师)一个重要的职责:就把高层的业务需求,逐步转换成底层的组织内软硬件系统的具体实现的需求

第4章 需求的形式

不同层次的需要,呈现不同的形式。

4.1 提问题(针对业务层次需求、原始性需求):第一性原理

这种类型的需求,通常是由客户提出来的。客户并不知道用什么方案来解决,也不知道提出什么样的目标和任务。通常,他们通常会提出自己遇到的困境和问题、甚至是难题。

解决客户的问题,是终结目标。提目的和体方案,都已经是手段了,也是一个公司存在的根基。

针对相同的客户问题,不同组织、不同的需求分析人员可能会给出不同的解决方案和解决手段。

原始需求是后续需求的原始档案。

4.2 提目的(针对任务层次需求)

这种类型的需求,有明确的目标或明确的任务。但并没有解决方案和实现方法。

4.3 提方案(针对系统层次需求)

这种层面的需要,不仅仅明确了要解决的问题和实现的目标,同时也给出了系统层面的解决方案,即对系统层面的解决方案进行了限制。这种需求,通常有客户的专家或组织内的产品经理、系统工工程师根据客户的实际问题,进行抽象和总结给出来的 ,是针对现有的目标软件系统给出来的需求。

4.4 功能性需求

功能性需求和非功能性需求,已经是针对系统需求提出来的。

(1)功能需求 (functional requirement)

规定开发人员必须在产品中实现的软件功能,用户利用这些功能来完成任务,满足业务需求。

功能需求有时也被称作行为需求 (behavīoral requirement),因为习惯上总是用“应该”对其进行描述:“系统应该发送电子邮件来通知用户已接受其预定”。

功能需求描述是开发人员需要实现什 么

注意:用户需求不总是能被转变成功能需求。

(2)产品特性 (feature)

所谓特性(feature),是指一组逻辑上相关功能需求,它们为用户提供某项功能,使业务目标 得以满足。

对商业软件而言,特性则是一组能被客户识别,并帮助他决定是否购买的需求,也就是产品说明书中用着重号标明的部分。

客户希望得到的产品特性和用户的任务相关的需求不完全是一回事。一项特性可以包括多个用户用例,即被多个用例复用。而每个用例又要求实现多项功能需求,以便用户能够执行某项任务。

4.5 非功能性需求

非功能性需求,是指软件产品为满足用户业务需求而必须具有且除功能需求以外的特性,包括安全性、可靠性、互操作性、健壮性等。

在需求分析时,功能性需求是人们普遍关注的,但也不能忽视非功能性需求的分析,因为它所涉及的方面比较广泛。正因为如此也就往往被人们所忽视。

非功能性需求也可称之为软件开发的“约束”,这主要是因为从最简单的到最复杂的软件系统,都有反映软件系统质量和特性的额外要求,它从各个角度对所考虑的可能采取的解决方案起约束和限制作用。软件的非功能性需求主要是软件系统的性能、可靠性、运行限制等多个方面。

对于不同的软件系统,其非功能性需求不可能完全相同。具体的内容要根据需要和可能由软件和工作环境等具体情况来确定。在进行非功能性需求分析时,重要的是将精力放在那些至关重要的因素上。

非功能性需求是随着软件系统的规模成长和复杂性增加这两个因素才逐渐成为软件工程师们的新着眼点和关注点的,早期的时候,甲方处于自身对软件技术的了解和自身对系统文件维护的方便性考虑等,对系统有了诸如:开发平台、技术流派、关键实现等等方面的要求,这被称之为“设计约束”。从甲乙双方合同的角度,设计约束也是一种需求——一种“非功能”性的需求,后来,软件的质量问题越来越突出,描述软件质量目标的要求也成为非功能性需求的一部分。于是,目前业界关于软件的非功能需求,一般就包括:质量属性要求和约束性要求。

第5章 收集需求的方法

5.1 定性 VS 定量

5.2 收集需求常用方法

(1)客户访谈:直接与客户交谈获取需要,可以发散、与可以聚焦。

(2)问卷调查:给用户填写结构化的问卷。

(3)竞品分析:分析对手的产品或服务

(4)客户反馈:来自客户的反馈意见(客户已经在使用组织的产品)

(5)头脑风暴:不同角色的人,发散性讨论。

(6)观察法:观察客户的现场,利用自己的专业技能,发现客户潜在的需求。

(7)文献分析:分析文献、论文、行业分析等等。

(8)数据分析:分析数据、进行大数据分析。

(9)行业积累:在行业内深耕,根据商业的敏感性预测未来的需求,这是高阶的获取需求的方式。

第6章 用户访谈

6.1 用户访谈的形式

6.1 明确用户访谈的形式

相关研究机构将用户访谈分为3类,分别是:结构式访谈、半结构式访谈、开放式访谈。

1)结构式访谈

通常结构式访谈的问题和答案都会局限在一定范围内,结构式访谈聚焦于特定的问题,可以包含多选题和一定范围限制的问题。这种访谈方式成本低可以快速执行,但是无法获取用户更深层次的见解。

2)开放式访谈

开放式的访谈通常是对于某个问题的深入看法,如:针对这个问题您是怎么看的呢?针对这类问题用户可以随意发散,往往能更好获取用户内心真实想法,帮助设计师更好理解隐藏诉求和背后潜在动机。开放式访谈需要发起者把控好主题,在用户偏离主线时,将其及时拉回。

3)半结构式访谈

半结构式访谈可以理解为开放式和结构式访谈的一种折中访谈方式,是对特定问题快速询问并且确定范围的访问形式。通常访谈提纲制定的问题会从简单到复杂,从行为的描述到行为背后原因的探讨。简单的问题不需要思考只是常态的描述,复杂的问题通常需要用户阐述行为背后的深层原因。

6.2 明确访谈目标

① 了解具体用户使用场景

了解用户在什么场景下会使用该功能,帮助更好理解用户诉求。

② 使用中存在痛点

观察用户具体使用行为,观察沟通询问获取用户在不同使用场景中遇到的问题点,帮助更好弥合产品与用户之间鸿沟。

③ 获取用户预期

沟通中获取用户期望,帮助更好提升用户使用体验。

6.3 访谈的问题设计

(1)现状:用户现在是如何做的?

(2)痛点:未被满足的强烈的需求点,即现在遇到了哪些显著的困难。

(3)用户解决方案:用户针对他们的痛点,自己想出来的替代方案。

 6.4 用户访谈的注意事项

(1)明知故问

(2)故意引导用户

(3)问题太发散、太开放

(4)太细节,难记忆

第7章 其他方式

7.1 问卷调查

问卷调查是指通过制定详细周密的问卷,要求被调查者据此进行回答以收集资料的方法。所谓问卷是一组与研究目标有关的问题,或者说是一份为进行调查而编制的问题表格,又称调查表。它是人们在社会调查研究活动中用来收集资料的一种常用工具。调研人员借助这一工具对社会活动过程进行准确、具体的测定,并应用社会学统计方法进行量的描述和分析,获取所需要的调查资料。

 7.2 竞品分析

(1)概述

竞品分析的内容可以由两方面构成:客观和主观。

客观即从竞争对手或市场相关产品中,圈定一些需要考察的角度,得出真实的情况;此时,不需要加入任何个人的判断,应该用事实说话。

主观是一种接近于用户流程模拟的结论,比如可以根据事实(或者个人情感),列出竞品或者自己产品的优势与不足。其实你在分析别人的产品的同时,实际上是走了一遍用户流程。

(2)竞品的标准

  • 目标用户(相似):什么样的人群使用。
  • 功能相似(相似):提供什么样的服务。
  • 市场定位(相似):解决什么市场问题。

(3)竞品的类型

 (4)目的/好处

  • 参考设计:学习行业最好的产品,作为自己的基线。
  • 防止闭门造车
  • 寻找差异化
  • 熟悉市场
  • 熟悉行业

(5)互联网产品分析五要素

(1)战略层(解决什么用户需要):解决是否需要立项

(2)功能说明(内容需求):解决软件实现到什么程度

(3)交互设计:软件架构

(4)界面设计:前端设计

(5)视觉设计

第8章 原始需求列表池(backlog)

8.1 需求表格类型

  • 原始需求列表:(需求收集的输出)
  • 经过过滤、评估后的产品需求(需求分析的数据)

8.2 表格内容

是谁提了什么样的需求!!!以及初步的判断(状态)

 (2)需要包含的信息

备注:

最重要的信息是:需求优先级,它决定了该需求在众多需求中,以什么样的优先级优先得到实现。

经过过滤、评估后的产品需求,优先级是产品的优先级。

8.3 需求控制的原则

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_9305.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

视觉SLAM十四讲_4李群与李代数

本文为b站视频的一个笔记 在SLAM中,我们经常要解下面一个问题 FminJ(T)Σi1N∣∣zi−Tpi∣∣2F minJ(T) \Sigma_{i1}^N||z_i - Tp_i||^2FminJ(T)Σi1N​∣∣zi​−Tpi​∣∣2 这个问题中, T是位姿变量。对于求最小值问题,我们第一步就要求函数对于变量…

Java小白踩坑录上

文章目录1、Java小白踩坑录 - String和char2、Java小白踩坑录 - Random 揭秘3、Java小白踩坑录 - B计划之Java资源如何释放?4、Java小白踩坑录 - 反射到底有多慢?5、Java小白踩坑录 - 数组 & List6、Java小白踩坑录 - Java类型的七十二变揭秘7、Java…

IDEA生成带参数和返回值注解

文章目录步骤说明打开IDEA进入 - 设置 - 编辑器 - 活动模板现象一:IDEA提示悬空的注解现象二:IDEA提示标签说明已丢失使用范围设置注解使用步骤说明 打开IDEA进入点击左上角 - 文件 - 设置 - 编辑器 - 活动模板 新建活动模板 填写模板文本 编辑变量 …

2.canal服务器配置及java客户端

【README】 1.本文总结自 B站《尚硅谷-canal》; 2.canal 介绍,可以参考 GitHub - alibaba/canal: 阿里巴巴 MySQL binlog 增量订阅&消费组件 3. canal服务器配置包括 mysql配置,canal配置等; 4.mysql服务器,ca…

完美且简要,如此输出风控中的重要数据指标曲线(如KS等)

先前,我们用excel给大家演示过一个KS的计算方式。 ks值是在模型中用于区分预测正负样本分隔程度的评价指标。每个样本的预测结果化对应的一个个分数,从最低分到最高分,输出为正负样本的累积分布。Ks值为这个两个正负样本中,最大差…

听吧音乐项目测试

听吧音乐项目 听吧音乐测试1.项目背景2.需求分析2.1 用户需求2.2 软件需求3. 测试点分析及测试用例4. 自动化测试代码4.1 注册登录注销模块自动化测试代码4.2 专辑播放自动化测试代码5. 测试报告1.项目背景 听吧音乐是一个在线听歌网站,游客通过首页可以在线收听其…

WinUI 3 踩坑记:第一个窗口

本文是 WinUI 3 踩坑记 的一部分,该系列发布于 GitHub@Scighost/WinUI3Keng,文中的代码也在此仓库中,若内容出现冲突以 GitHub 上的为准。WinUI 3 应用的入口和 UWP 类似,也是继承自 Application 的一个类,略有不同的是没有 UWP 那么多的启动方式可供重写,只有一个 OnLau…

python计算离散积分

前言 本文是傅立叶及其python应用系列的第一篇文章对应的仓库地址为https://github.com/yuanzhoulvpi2017/tiny_python/tree/main/Fourier_Series 介绍 本篇文章将要介绍一个非常小众的scipy函数:simpson. 这个函数的一大功能就是可以对离散数据积分。之所以要介…

P39 事件处理

P39 事件处理1.事件模型的流程2.事件监听器2.1 动作监听器(ActionListener)2.2 焦点监听器(FocusListener)2.3 鼠标监听器(MouseListener)2.4 鼠标移动/拖动监听器(MouseMotionListener&#xf…

SpringAOP的概述与实现

目录 SpringAOP的概述 什么是AOP AOP能干什么 AOP的特点 AOP底层实现 AOP基本概念 连接点 切入点 通知 切面 目标对象 织入 引入 谈谈你对AOP的理解? SpringAOP的实现 依赖引用 spring.xml配置 注解实现 1.定义切面 设置通知 2.开启aop 3.测试 …

金仓数据库KingbaseES客户端编程开发框架-MyBatis(2. 概述 3. MyBatis配置说明)

2. 概述 MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息, 将接口和 Java 的 POJOs(Plain Old Ja…

Sourcemap 配置详解

前言 之前在脚手架工具内整合将sourcemap上传sentry能力的时候,考虑bundle分割对.map文件关联的限制:比如TerserWebpackPlugin(JS压缩)只对 devtool 选项的 source-map,inline-source-map,hidden-source-m…

后端研发工程师面经——JAVA语言

文章目录2. JAVA语言2.1 面向对象的三大特性2.2 JAVA异常2.2.1 异常产生的原因2.2.2 异常的分类2.2.3 异常的处理方式2.3 序列化和反序列化2.3.1 概念2.3.2 JAVA中的序列化和反序列化2.3.3 序列化和反序列化的接口2.3.4 Serialization接口详解2.3.5 Externalizable接口详解2.3.…

3D建模师做多了女人会不会找不到老婆?次世代美少女战士建模流程讲解

什么是次世代? 次世代是个舶来语,“次世代游戏”指代和同类游戏相比下更加先进的游戏,即“下一代游戏”。 次世代是利用高模烘焙的法线贴图回帖到低模上,让低模在游戏引擎里可以及时显示高模的视觉效果。模型面数比较高&#xf…

算法 - 计数排序(Counting_Sort)

目录 引言: 学习: 什么是计数排序(Counting_sort)? 定义: 算法思想: 排序过程: Step 1 : Step 2 : Step 3 : Step 4 : Step 5 &…

单片机项目式实训总篇

采取新方法,让自己尽快变强,为了更好的再次见面。停止大脑内斗。 总学习目标:(完成后此文字支持跳转) 基础知识 端口操作 显示 高级输入 时间控制 综合 Flag: 一周破解C51程序 学习内容: 了解单片…

DeepExploit——当Metasploit遇上机器学习

Metasploit Meets Machine Learning 文章目录Metasploit Meets Machine Learning1. Metasploit准备1.1 与外部项目的合作1.1.1 启用RPC API1.1.2 使用RPC API操作Metasploit2. 创建机器学习模型2.1 DQN2.2 A3C2.2.1 CartPole2.2.2 分布式学习机制3. 深度利用3.1 代理任务3.2 当…

JVM——GC垃圾回收机制

文章目录JVM——GC垃圾回收机制一、如何判断哪些对象应该被回收——对象判活算法引用计数算法可达性分析算法引用最终判定二、对象应该怎么被回收——垃圾回收算法分代收集理论标记-清除算法标记-复制算法标记-整理算法三、内存对象什么时候被回收——触发条件年轻代GC(Minor G…

如期而至的SVN服务器迁移引来一个大瓜XAMPP

文章目录前言方案评估前奏XAMMP搭建svn服务准备软件包安装必要环境和工具安装xampp运行xampp编辑xampp访问xampp安装subversion安装svnmanager创建svn仓库目录修改配置文件为svnmanager创建MySQL用户重启xammp服务访问svnmanager登录svnmanager可能遇到的错误查看服务器目录信息…

10 nginx 中的 slab

前言 这里主要是描述 nginx 中的 slab 内存分配相关 slab 在很多的地方都有使用, 比如 linux, nginx, netty 等等 主要的作用是 内存管理, 复用 简略 nginx 中的 slab 的流程 # slab relatedvoid* poolPtr malloc(2048);ngx_slab_pool_t *pool (ngx_slab_pool_t *)poo…