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

如何做需求分析

需求分析是很多人都会遇到的,但对其完整流程能讲清楚的人却不多,能按照其流程真正做到知行合一的更少。讲不过不少工作多年的人,在需求分析方面都做的很不到位。当然理论是一方面,应用到现实是另一方面,你应该做到懂理论并将可能将它应用到现实中,并把现实的实践经验用在完善指导自己的理论上,而不是因为理论不是现实而放弃它。

作者:吴广超
链接:https://www.zhihu.com/question/20407032/answer/262676847

1、什么是需求分析

在 系统工程及 软件工程中, 需求分析指的是在创建一个新的或改变一个现存的 系统或产品时,确定新系统的目的、范围、定义和功能时所要做的所有工作。—— 维基百科

 

2、需求分析的工作流程:

v2-f8b843ecd12735a6a7b0b42ef2ecffb4_b.jpg
  • 获取需求:主动,或者被动从需求提出方获取需求。
重点:引导需求方尽可能的描述出准确,详尽,可执行的需求内容。
  • 处理需求:分析整理获得的需求、从开发者的角度分析、整理出需求报告,并获得需求提出方的确认。
重点:需求处理的过程中,反复有效的与需求提出方进行沟通确认。
  • 提出方案:根据确认的需求结果,提出可执行的解决方案,并进行评审。
重点:解决方案应考虑成本、风险、解决难度等因素,切应该提出多个方案参与评审。
  • 排序需求:根据实际情况,进行需求的优先级排序,决定需求的时间和成本投入。
重点:衡量的角度包括发生频率、用户量、解决难度、收益、迫切程度、等多种因素,切不同因素在不同的环境下对产品的影响不同。
  • 撰写报告:撰写需求分析报告,分发执行任务。
重点:包含之前所有过程的全部内容,切包含解决方案执行的具体内容。
  • 监控执行:对解决方案的实际执行过程和结果进行跟踪。
重点:监控的内容不仅仅是质量,也包括时间进度、解决方案的实际结果和预期的对比等。
  • 复盘:根据实际结果,对比分析之前过程中的优劣行为,进行总结整理。

 

3、需求分析过程中会用到哪些工具,方法论:

  • 获取需求环节:
    • 观察:通过观察用户的行为,梳理出需求
    • 实际体验:实际扮演用户角色参与行为中,整理出需求
    • 问卷调查:制作调查问卷
    • 访谈:面对面的进行对话访谈,通过沟通得到需求
    • 需求调研会:通过会议,召集相关人员进行会议沟通,确定需求。
    • 竞品分析:通过竞品的动态,更新,自主发现需求。
    • 用户反馈:通过用户的评论,投诉,电话等渠道的反馈,获取需求。
  • 处理需求环节:
    • 制定筛选标准:确立重点信息和无效信息。例:BUG反馈类、投诉类信息重点关注,感谢类信息判定为无效信息,直接忽略。
    • 设计区分类别:整理信息时,对信息进行区分,方便后续分析。如:每条需求都加入类别判断的字段,内容为:无效,BUG,用户体验,投诉,等。
    • 使用筛选工具进行批量处理:Excel。
  • 排序需求环节:
    • 量化计算:根据需要,制定出优先级排序的规则。并分别对每个维度进行量化打分。例:分析维度有用户数量,使用频率,开发难度,收益,分别对每个维度进行估值。得出量化后的需求结果。
    • 维度分析:
      • 影响度分析:关注用户量,和使用频率两个数值。
      • 收益率分析:关注成本和收益两个数值。
  • 撰写报告:
    • 思维导图+结构化陈述

 

 

4、经验体会:

需求分析,是需要理性和感性两种维度进行感知的工作。一方面,我们应该掌握理性分析的工具和方法,确保锅做过程中不会出现大的失误和纰漏。另一发面,我们在具体执行的细节上,又要动用同理心和高感知去体会用户的情感波动。

当然,就像你永远不可能读懂一个人一样,不可能有完美的需求分析,也没有完美的解决方案。但是我们所做这些努力,都是为了让我们的产出不断逼近“完美”。

总的来说,需求分析就是 了解你的用户,了解用户所在的场景,了解用户遇到的问题,帮用户解决。

相关文章:

  • Netty Channel源码分析
  • VPC配置案例
  • 使用CefSharp的一些需要注意的点
  • Kibana配置logstash,报表一体化
  • 读程序员,你焦虑吗有感。
  • 利用github和git命令,将本地项目共享到服务器上——第二章
  • SQL/My sql
  • 微信小程序点击图片放大预览
  • activit5升到flowable后的全局设置的修改
  • Facebook智能bug修复神器:让程序员少掉几根头发
  • Android-来填写一个验证码吧!(二)
  • webpack的使用
  • 最详细的Log4j使用教程
  • Javascript 对象 - 数学对象
  • 浅析微信支付:申请退款、退款回调接口、查询退款
  • [译]前端离线指南(上)
  • 【技术性】Search知识
  • 11111111
  • 30秒的PHP代码片段(1)数组 - Array
  • Angularjs之国际化
  • Apache的80端口被占用以及访问时报错403
  • CNN 在图像分割中的简史:从 R-CNN 到 Mask R-CNN
  • gitlab-ci配置详解(一)
  • GraphQL学习过程应该是这样的
  • Java 最常见的 200+ 面试题:面试必备
  • JavaScript-Array类型
  • Java方法详解
  • js如何打印object对象
  • Median of Two Sorted Arrays
  • Mybatis初体验
  • STAR法则
  • sublime配置文件
  • 阿里研究院入选中国企业智库系统影响力榜
  • 分布式熔断降级平台aegis
  • 手机app有了短信验证码还有没必要有图片验证码?
  • ​【已解决】npm install​卡主不动的情况
  • (2021|NIPS,扩散,无条件分数估计,条件分数估计)无分类器引导扩散
  • (9)STL算法之逆转旋转
  • (Pytorch框架)神经网络输出维度调试,做出我们自己的网络来!!(详细教程~)
  • (笔试题)合法字符串
  • (三)Hyperledger Fabric 1.1安装部署-chaincode测试
  • (四)JPA - JQPL 实现增删改查
  • (一)认识微服务
  • (转)jdk与jre的区别
  • (转)socket Aio demo
  • .gitignore文件---让git自动忽略指定文件
  • .NET 5.0正式发布,有什么功能特性(翻译)
  • .net 7 上传文件踩坑
  • .Net CF下精确的计时器
  • .net Stream篇(六)
  • .Net 代码性能 - (1)
  • .w文件怎么转成html文件,使用pandoc进行Word与Markdown文件转化
  • [2018/11/18] Java数据结构(2) 简单排序 冒泡排序 选择排序 插入排序
  • [Angularjs]ng-select和ng-options
  • [AX]AX2012 R2 出差申请和支出报告