当前位置: 首页 > article >正文

全流程剖析需求开发:打造极致贴合用户的产品

全流程剖析需求开发:打造极致贴合用户的产品

  • 一、需求获取
    • (一)与用户沟通
    • (二)观察用户工作
    • (三)收集现有文档
  • 二、需求分析
    • (一)提炼关键需求
    • (二)建立模型
    • (三)确定非功能需求
  • 三、需求规格说明
    • (一)编写需求规格说明书
    • (二)需求评审
  • 四、需求管理
    • (一)需求变更管理
    • (二)需求跟踪

CSDN

需求开发贯穿产品从概念到落地的整个生命周期,其成效直接关系到产品能否精准服务用户、创造商业价值。下面从需求获取、分析、规格说明、管理这四个核心环节,展开系统深入的阐述。

一、需求获取

(一)与用户沟通

1.面谈

  • 面谈筹备:面谈前,需充分了解用户背景、业务领域,拟定详细的面谈大纲。大纲问题涵盖业务流程、日常工作难题、期望的系统功能等多个维度。例如,在开发一款房地产中介管理系统时,针对房产经纪人,准备 “描述带客户看房的完整流程”“在房源信息录入时,遇到过哪些阻碍” 等问题;对中介门店经理,设置 “如何制定销售目标和考核经纪人绩效” 等问题。同时,合理安排面谈时间和地点,营造轻松自在的氛围。
  • 面谈推进:面谈过程中,保持积极倾听,鼓励用户畅所欲言,挖掘潜在需求。运用追问技巧,获取细节信息,如用户提到房源信息录入繁琐时,追问 “具体哪些字段录入困难,是信息获取不便,还是系统操作不友好”。做好记录,可采用录音(需征得用户同意)和笔记相结合的方式,确保信息准确完整。

2.问卷调查

  • 问卷设计:问卷内容要涵盖基本信息、使用习惯、功能期望、满意度等多个层面。问题形式多样化,包括单选题、多选题、简答题等。以一款短视频 APP 为例,单选题如 “您主要在什么设备上使用短视频 APP?A. 手机 B. 平板 C. 电脑”;多选题如 “您喜欢哪些类型的短视频内容?A. 搞笑 B. 美食 C. 科技”;简答题如 “您希望短视频 APP 增加哪些新功能”。此外,合理设置问题顺序,先易后难,提高问卷完成率。
  • 问卷发放与回收:通过多种渠道发放问卷,线上利用社交媒体、APP 推送、邮件等方式,线下在目标用户集中场所,如学校、商场等地发放。为提高回收率,可设置一定奖励,如抽奖、优惠券等。对回收的问卷进行筛选,剔除无效问卷,运用数据分析工具进行统计分析。

3.会议讨论

  • 会议组织:提前确定会议主题、议程和参与人员,向参会者发送详细的会议通知,包括会议目的、时间、地点、需提前准备的资料等。例如,在开发一款物流配送管理系统时,邀请物流企业的调度员、司机、仓库管理员、客户代表等参与会议。
  • 会议引导:会议开始时,主持人介绍会议目的和规则,引导参会者围绕主题发言。鼓励不同观点交流碰撞,对分歧较大的问题,组织深入讨论。例如,在讨论配送路线规划功能时,司机和调度员可能存在不同意见,通过充分讨论,找到最佳解决方案。做好会议记录,明确会议决议和后续行动项。

(二)观察用户工作

1.现场观察:深入用户工作现场,观察用户实际操作流程,记录操作步骤、使用工具、遇到的问题等。例如,观察银行柜员办理贷款业务时,对现有业务系统的操作过程,包括数据录入、查询、审批等环节,以及在操作过程中出现的错误提示和处理方式。
2.任务分析:将用户的工作任务分解为多个子任务,分析每个子任务的目标、操作流程、所需时间、依赖关系等。例如,在分析电商客服处理售后投诉的任务时,将其分解为投诉受理、问题核实、解决方案制定、反馈客户等子任务,深入了解每个环节的工作内容和要求。

(三)收集现有文档

1.文档收集:收集与项目相关的各类文档,包括业务流程手册、操作指南、行业标准、法律法规等。例如,在开发一款医疗信息管理系统时,收集医院的病历书写规范、诊疗流程文件、医保政策文件等。
2.文档分析:对收集到的文档进行梳理和分析,提取有用信息,转化为需求。例如,从病历书写规范中,确定系统中病历录入的格式、内容要求;从医保政策文件中,明确医保报销的计算规则和业务流程。

二、需求分析

(一)提炼关键需求

1.需求筛选:对获取的大量需求信息进行筛选,去除模糊、矛盾、不合理的需求。例如,在一款在线教育 APP 的需求中,部分用户希望课程视频可以无限制下载,而从版权和服务器存储角度考虑,这一需求并不合理,需要与用户沟通,寻求替代方案。
2.优先级排序:根据需求的重要性、紧急性、实现难度等因素,对需求进行优先级排序。例如,在电商大促前,购物车结算功能的稳定性和准确性是高优先级需求,而一些个性化推荐功能的优化可作为低优先级需求。

(二)建立模型

1.数据流图

  • 分层绘制:从顶层数据流图开始,逐步细化,展示系统的整体数据流程和各个层次的处理过程。以在线支付系统为例,顶层数据流图展示用户、支付平台、银行之间的主要数据交互;底层数据流图详细描述支付信息验证、资金转移等具体处理过程。
  • 标注说明:对数据流图中的每个数据流、处理过程、数据存储进行清晰标注,说明其含义、来源、去向等信息,便于开发人员理解。

2.实体关系图

  • 确定实体和关系:识别系统中的实体,如用户、订单、商品等,并确定实体之间的关系,如一对一、一对多、多对多。例如,在电商系统中,一个用户可以下多个订单,一个订单可以包含多个商品,存在用户与订单的一对多关系,订单与商品的多对多关系。
  • 属性定义:为每个实体定义属性,如用户实体的属性包括用户名、密码、手机号等,订单实体的属性包括订单号、下单时间、金额等。

3.用例图

  • 确定参与者和用例:识别系统的参与者,如用户、管理员等,并确定每个参与者的主要用例。例如,在社交软件中,用户的用例包括注册、登录、发布动态、点赞评论等,管理员的用例包括用户管理、内容审核等。
  • 描述用例场景:对每个用例进行详细描述,包括前置条件、基本事件流、扩展事件流等,清晰展示参与者与系统的交互过程。

(三)确定非功能需求

1.性能要求

  • 响应时间:规定系统对用户请求的响应时间,如电商网站的页面加载时间应不超过 3 秒,以提高用户体验。
  • 吞吐量:确定系统在单位时间内能够处理的最大请求数,如在线售票系统在高峰期每分钟应能处理 1000 个购票请求。

2.安全性要求

  • 数据加密:对用户敏感数据,如银行卡号、身份证号等进行加密存储和传输,防止数据泄露。
  • 用户认证和授权:建立用户认证机制,确保只有合法用户能够访问系统;根据用户角色和权限,对系统功能和数据进行访问控制。

3.可靠性要求

  • 故障恢复:系统应具备故障自动检测和恢复能力,如服务器故障时,能够自动切换到备用服务器,保证业务连续性。
  • 数据备份和恢复:定期对系统数据进行备份,在数据丢失或损坏时,能够快速恢复数据。

4.兼容性要求

  • 设备兼容性:确保系统在不同设备上,如手机、平板、电脑等,都能正常运行,界面显示和操作体验良好。
  • 软件兼容性:兼容不同的操作系统、浏览器版本,如移动 APP 要兼容主流的安卓和苹果系统版本,网页应用要兼容 Chrome、Firefox、IE 等浏览器。

三、需求规格说明

(一)编写需求规格说明书

1.结构规范:需求规格说明书应包括引言、项目概述、功能需求、非功能需求、数据需求、接口需求等部分。引言部分介绍项目背景、目的、范围;项目概述部分描述项目的整体架构和业务流程;功能需求部分按业务模块详细描述每个功能的输入、输出、处理逻辑;非功能需求部分阐述性能、安全、可靠性等方面的要求;数据需求部分说明系统涉及的数据结构、数据存储、数据处理等;接口需求部分定义系统与外部系统的接口规范。
2.语言准确:使用清晰、准确、无歧义的语言描述需求,避免使用模糊词汇和行话。例如,“系统应快速响应用户请求” 应明确为 “系统在用户点击提交按钮后,3 秒内返回处理结果”。

(二)需求评审

1.评审准备:提前将需求规格说明书发送给评审人员,让他们有足够时间熟悉文档。评审人员包括用户、开发人员、测试人员、项目经理等。
2.评审过程:组织评审会议,由需求编写人员对文档进行讲解,评审人员提出疑问和建议。对每个问题进行详细记录,讨论解决方案。例如,开发人员可能提出某个功能在技术实现上存在困难,需要与用户沟通调整需求;测试人员可能指出某些需求缺乏可测试性,需要进一步细化。
3.评审总结:会议结束后,对评审意见进行整理和总结,形成评审报告。根据评审意见,对需求规格说明书进行修改和完善。

四、需求管理

(一)需求变更管理

1.变更申请:当用户提出需求变更时,填写需求变更申请表,详细说明变更的原因、内容、影响范围等。例如,在软件开发过程中,用户发现原有的功能设计不符合业务实际需求,需要新增一个功能模块,应在申请表中说明新增功能的目的、业务流程和预期效果。
2.变更评估:组织相关人员对变更申请进行评估,分析变更对项目进度、成本、质量等方面的影响。例如,通过评估新增功能模块的开发工作量、所需资源,以及对现有系统架构的影响,确定变更的可行性和优先级。
3.变更审批:建立变更审批机制,根据变更的影响程度,由不同层级的负责人进行审批。对于重大变更,可能需要项目各方共同决策。例如,涉及项目范围大幅调整、成本显著增加的变更,需经项目领导小组审批。
4.变更实施:变更申请批准后,安排开发人员进行变更开发。在开发过程中,跟踪变更的进度,确保按计划完成。对变更后的系统进行全面测试,验证变更的正确性和对其他功能的影响。

(二)需求跟踪

1.建立跟踪矩阵:将需求与设计文档、代码、测试用例等项目工作产品建立关联,形成需求跟踪矩阵。例如,在需求跟踪矩阵中,记录每个需求对应的设计模块、代码文件、测试用例编号等信息。
2.跟踪需求状态:定期检查需求的实现情况,更新跟踪矩阵中的状态信息。例如,标记需求是否已设计、已开发、已测试通过等。通过需求跟踪,及时发现需求遗漏、不一致等问题,保证项目的一致性和完整性。当某个需求发生变更时,通过跟踪矩阵快速确定需要修改的相关工作产品,避免遗漏。

相关文章:

全流程剖析需求开发:打造极致贴合用户的产品

全流程剖析需求开发:打造极致贴合用户的产品 一、需求获取(一)与用户沟通(二)观察用户工作(三)收集现有文档 二、需求分析(一)提炼关键需求(二)建…...

《Python Web网站部署应知应会》No4:基于Flask的调用AI大模型的高性能博客网站的设计思路和实战(上)

基于Flask的调用AI大模型的高性能博客网站的设计思路和实战(上) 摘要 本文详细探讨了一个基于Flask框架的高性能博客系统的设计与实现,该系统集成了本地AI大模型生成内容的功能。我们重点关注如何在高并发、高负载状态下保持系统的高性能和…...

使用 Docker Compose 在单节点部署多容器

Docker Compose 是什么 Docker Compose 是一个用于运行多容器应用的工具, 通过一个docker-compose.yml文件, 配置应用的服务、网络和卷,然后使用简单的命令启动或停止所有服务 为什么需要 Docker Compose 当你有一个包含多个相互依赖的容器应用时,手动…...

STM32_HAL开发环境搭建【Keil(MDK-ARM)、STM32F1xx_DFP、 ST-Link、STM32CubeMX】

安装Keil(MDK-ARM)【集成开发环境IDE】 我们会在Keil(MDK-ARM)上去编写代码、编译代码、烧写代码、调试代码。 Keil(MDK-ARM)的安装方法: 教学视频的第02分03秒开始看。 安装过程中请修改一下下面两个路径,避免占用C盘空间。 Core就是Keil(MDK-ARM)的…...

在 React 中,组件之间传递变量的常见方法

目录 1. **通过 Props 传递数据**2. **通过回调函数传递数据**3. **通过 Context API 传递数据**4. **通过 Redux 管理全局状态**5. **通过事件总线(如 Node.js 的 EventEmitter)**6. **通过 Local Storage / Session Storage**7. **通过 URL 查询参数传…...

拦截器和过滤器详解

在 Java Web 开发中,拦截器(Interceptor)和过滤器(Filter)是两种常见的请求处理机制,它们用于对请求和响应进行预处理和后处理 1. 过滤器(Filter) 1.1 作用 Filter 主要用于对 请求…...

多线程—JUC(java.util.concurrent)

上篇文章: 多线程—synchronized原理https://blog.csdn.net/sniper_fandc/article/details/146713129?fromshareblogdetail&sharetypeblogdetail&sharerId146713129&sharereferPC&sharesourcesniper_fandc&sharefromfrom_link 目录 1 Calla…...

软件工程面试题(十二)

1、文件和目录(i/o)操作,怎么列出某目录下所有文件?某目录下所有子目录,怎么判断文件或目录是否存在?如何读写文件? 列出某目录下所有文件:调用listFile(),然后判断每个File对象是否是文件可以调用 isFile(),判断是否是文件夹可以调用isDirectory(),判断文件或目…...

从零开始跑通3DGS教程:(三)坐标系与尺度编辑(CloudCompare)

写在前面 本文内容 本文所属《从零开始跑通3DGS教程》系列文章; sfm重建的点云已经丢掉了尺度信息,并且坐标系跟图像数据有关(SFM初始化选择的图像),所以如果想恢复物理真实尺度,以及在想要的视角下渲染,那么需要对尺度…...

多线程 - 线程安全引入

写一个代码,让主线程创建一个新的线程,由新的线程负责完成一系列的运算(比如:1 2 3 ... 1000),再由主线程负责获取到最终结果。 但打印结果为 result 0,略微思考,明白了要让 t 线…...

笔记:基于环境语义的通感融合技术,将传统通信由“被动接收”转为“主动感知”

《基于计算机视觉的感知通信融合理论与关键技术研发进展》 介绍了联合研发的基于环境语义的通感融合技术研发进展。 观点:利用环境感知信息或环境语义辅助通信的通感融合技术成为6G重要方向之一 产出:基于环境感知的毫米波波束管理方案,并…...

【面试八股】:CAS指令

一、CAS 面试题 1. 说说CAS、CAS有什么问题(ABA)?(美团一面) Compare And Swap 对比交换(原子指令) CAS是 CPU指令 操作系统原生 API,JVM对它进行了封装(C),供我们使用。 通过判断 内存 和 …...

matplot显示中文

import matplotlib.pyplot as plt from matplotlib.font_manager import FontProperties 指定字体文件路径 font_path ‘/usr/share/fonts/SIMHEI.TTF’ font_prop FontProperties(fnamefont_path) 示例代码 plt.plot([1, 2, 3], [4, 5, 6]) plt.title(‘示例图表’, fon…...

mac部署CAT监控服务

在 Mac 上部署美团点评开源的 CAT 监控服务端,可以按照以下步骤操作: 1. 环境准备 1.1 安装依赖 确保已安装以下工具: JDK 8(建议 OpenJDK 11) MySQL 5.7(存储监控数据)(8.0不支持…...

实变函数:集合与子集合一例(20250329)

题目 设 r , s , t r, s, t r,s,t 是三个互不相同的数,且 A { r , s , t } A \{r, s, t\} A{r,s,t}, B { r 2 , s 2 , t 2 } B \{r^2, s^2, t^2\} B{r2,s2,t2}, C { r s , s t , r t } C \{rs, st, rt\} C{rs,st,rt} 若 A B C A B C ABC 则 { r , s…...

软件工程之需求工程(需求获取、分析、验证)

一、需求获取(Requirements Elicitation) 1. 定义与目标 需求获取是通过与用户、利益相关者等交互,识别并捕获系统需求的过程,目标是明确用户意图与业务目标,避免后期因需求偏差导致返工。 2. 主要方法 问卷法&…...

c++第三课(基础c)

1.前文 2.break 3.continue 4.return 0 1.前文 上次写文章到现在&#xff0c;有足足这么多天&#xff08;我也不知道&#xff0c;自己去数吧&#xff09; 开始吧 2.break break是结束循环的意思 举个栗子 #include<bits/stdc.h> using namespace std; int main(…...

基于Elasticsearch的个性化内容推荐技术实践

近期开发了一款新的app&#xff0c;并深度参与的全流程的构建及开发&#xff0c;在开发首页内容推荐的时候&#xff0c;写了一套通过ES实现的推荐算法&#xff0c;小有所得&#xff0c;写此博客记录一下。 一、Elasticsearch在推荐系统中的核心作用 1.1 实时索引与检索 Elast…...

el-radio-group 中 el-radio-button value未能绑定上数值数据

这样绑定到admin后不会随着admin的值显示 在value加上 : 后成功显示...

Python Cookbook-4.13 获取字典的一个子集

任务 你有一个巨大的字典&#xff0c;字典中的一些键属于一个特定的集合&#xff0c;而你想创建一个包含这个键集合及其对应值的新字典。 解决方案 如果你不想改动原字典: def sub_dict(somedict,somekeys,default None):return dict([(k, somedict.get(k,default)) for k…...

JSP(实验):带验证码的用户登录

[实验目的] 1&#xff0e;掌握应用request对象获取表单提交的数据。 2&#xff0e;掌握解决获取表单提交数据产生中文乱码的问题。 3&#xff0e;掌握使用response对象进行定时跳转功能。 4&#xff0e;掌握使用session对象完成登录和注销功能。 [实验要求] 设计带验证码…...

自然语言模型的演变与未来趋势:从规则到多模态智能的跨越

自然语言模型的演变与未来趋势&#xff1a;从规则到多模态智能的跨越 自然语言处理(NLP)作为人工智能领域最具挑战性的分支之一&#xff0c;在过去几十年经历了翻天覆地的变化。从最初基于规则的系统到如今拥有万亿参数的大型语言模型(LLMs)&#xff0c;这一技术革新不仅彻底改…...

集多功能为一体的软件,支持批量操作。

今天我给大家分享一个超实用的小工具&#xff0c;真的是太好用了&#xff01;这个软件是吾爱大神无知灰灰制作的&#xff0c;它能直接一键把webp格式的图片转换成png格式。 webp转为png 一键操作&#xff0c;支持压缩 其实&#xff0c;作者最近在工作中经常遇到webp格式的图片…...

linux压缩指令

今天我们来了解一下linux压缩指令,压缩是我们文件传输的一种重要手段,对此,我们是必须学习压缩指令的,那么话不多说,来看. 1.grep过滤查找&#xff0c;管道符&#xff0c;“&#xff5c;”&#xff0c;表示将前一个命令的处理结果输出传递给后面的命令处理。 基本语法&#x…...

C++细节知识for面试

1. linux上C程序可用的栈和堆大小分别是多少&#xff0c;为什么栈大小小于堆&#xff1f; 1. 栈&#xff08;Stack&#xff09;大小 栈默认为8MB&#xff0c;可修改。 为什么是这个大小&#xff1a; ​安全性&#xff1a;限制栈大小可防止无限递归或过深的函数调用导致内存…...

Appium中元素定位的注意点

应用场景 了解这些注意点可以以后在出错误的时候&#xff0c;更快速的定位问题原因。 示例 使用 find_element_by_xx 或 find_elements_by_xx 的方法&#xff0c;分别传入一个没有的“特征“会是什么结果呢? 核心代码 driver.find_element_by_id("xxx") drive…...

污水处理厂人员定位方案-UWB免布线高精度定位

1. 方案概述 本方案采用免布线UWB基站与北斗卫星定位融合技术&#xff0c;结合UWBGNSS双模定位工卡&#xff0c;实现污水处理厂室内外人员高精度定位&#xff08;亚米级&#xff09;。系统通过低功耗4G传输数据&#xff0c;支持实时位置监控、电子围栏、聚集预警、轨迹回放等功…...

蓝桥刷题note11(好数)

1&#xff0c;好数 一个整数如果按从低位到高位的顺序&#xff0c;奇数位 (个位、百位、万位 ⋯⋯ ) 上的数字是奇数&#xff0c;偶数位 (十位、千位、十万位 ⋯⋯ ) 上的数字是偶数&#xff0c;我们就称之为 “好数”。 给定一个正整数 NN&#xff0c;请计算从 1 到 NN 一共…...

Elasticsearch 高级

Elasticsearch 高级 建议阅读顺序&#xff1a; Elasticsearch 入门Elasticsearch 搜索Elasticsearch 搜索高级Elasticsearch高级&#xff08;本文&#xff09; 1. nested 类型 1.1 介绍 Elasticsearch 中的 nested 类型允许你在文档内存储复杂的数据结构&#xff0c;比如一个…...

SQL Server 2022常见问题解答

以下是SQL Server 2022的常见问题解答,按主题分类整理: 一、安装与升级 SQL Server 2022的系统要求是什么? 支持的操作系统:Windows Server 2016及以上、Linux(Ubuntu 20.04/22.04, RHEL 8/9等)。内存:至少4GB(建议8GB+)。磁盘空间:6GB以上,具体取决于安装组件。如何…...