需求|如何做好软件需求分析?( 四 )


需求分析分析者作为用户与开发者的桥梁,有义务将用户用自然语言描述的需求结构化。将用户的描述转换成更精确的语言,更接近IT人使用的语言。
3. 注意避免理解偏差理解偏差主要是需求分析者对用户所提的需求没有理解到位,用户明明想表达的是这个意思,却被理解成了另外一个意思。
这是一个沟通问题,说的人觉得自己说的很清楚了,可偏偏双方就是没有真正理解对方,所以下面是我们需要注意的:

  • 提高沟通能力:多从对方的立场考虑问题,当双方描述某件事时,要从对方的角度思考这些描述;
  • 提高沟通频次:一方面要引导对方多说话,另一方面对不理解的或者觉得理解起来有困难的内容,多向对方询问,换成你的表达方式让对方确认是不是这个意思;
  • 学习对方领域的知识:用户有自己的知识领域,需求分析者也有自己的知识领域,前者满脑子是业务术语,后者满脑子是IT术语,有的时候两者真难沟通。每个人的知识面不同,要想沟通顺畅,两个人的知识面重叠的地方越多越好。
4. 识别超出项目范围的需求用户的需求不能是漫无边际的,所有的需求都应该在项目范围之内,做需求分析的时候首先要确定好项目目标,要让用户知道需求边界在什么地方。
这个项目应该在项目启动时双方经过讨论达成共识,后面所有的工作都应该围绕这个目标展开。原则是即使在这个阶段的目标实现了以后再设置新目标,也不要不停的修改一个目标。
5. 识别错误的需求对于那些毫无逻辑性、前后矛盾或者在技术上根本无法实现,类似这样的统统归为错误需求。
6. 识别技术上不能实现的需求。当需求者面向用户时,代表的是身后的整个研发团队,要做好需求分析,需要对自己团队的技术能力有非常清楚的了解,哪些事情能做/不能做,又或者可以做但是需要太大的代价等,每个团队都有自己的技术边界。
九、整理需求前期做了那么多的收集工作并确定需求之后,要做好需求的整理工作。需求整理是不是简单的将用户所提的需求全部一条条写下来就好了,而是一个综合分析的的整理过程。
通过整理,使得需求更有目的性、更系统性、更明确、更容易理解。需求经过整理后一般会生成需求调研报告与业务流程图,这是后面工作的纲领性文件。
当完成用户需求调查后,首先对《用户需求说明书》进行细化,对比较复杂的用户需求进行建模分析,以帮助软件开发人员更好地理解需求。
十、需求不明确带来的影响1. 项目失控甚至烂尾在开发时间和开发费用上的失控,因为需求的不完善,导致启动开发前无法准确预估需求的工作量和确定技术实现方案,走一步看一步开发过程中,发现需求有坑,不断发现新的问题。
有时因为一个简单的逻辑或设计不明确,在沟通明确后最终发现需要技术方案大调整,很多项目会变得失控甚至烂尾。
2. 技术脑补需求假如需求不是明确的话,靠谱的技术同学,就会自己考虑逻辑和设计,就按他自己的理解和想法实现。
看上去省心,但一千个观众就一千个哈姆雷特,一旦实现的逻辑可能并不是产品期望的逻辑,到了测试环节,测试同学也有自己的理解,导致又要花时间沟通统一意见,或浪费时间返工修改。
3. 沟通成本高项目规模越大,参与人数越多,矛盾越凸显。
在面对的是人数众多的设计师,前端团队、后端团队、外部团队、测试团队等时,产品经理需经常与设计、技术和测试沟通需求逻辑,沟通的成本会很高。
4. 产品逻辑难以后续追溯移动互联网时代,产品上线迭代节奏非常快,产品不断的迭代更新,或是人员的交接,经常需要回溯之前的线上逻辑,需求文档的缺失或不完善,会导致线上逻辑不明确,甚至后续的产品需求设计的逻辑与线上矛盾或冲突,为项目的开发带来麻烦。
参考资料:
  • 《软件工程》赖均 2016 清华大学出版社
  • 《软件需求分析实战》杨长春 2020 清华大学出版社
  • 《产品交互设计基础》蒋晓 2016 清华大学出版社
  • 《开发制作App时需求不明确,带来哪些严重后果?》
本文由 @忻芸 原创发布于人人都是产品经理,未经许可,禁止转载
题图来自 unsplash,基于 CC0 协议