通过前面的学习,我们知道在瀑布模型中,第二个阶段就是需求分析阶段,同时需求分析的结果也决定了后续的系统设计、开发、测试等阶段能否顺利如期进行。即使是用敏捷开发,同样也少不了对需求的分析整理。
可以说需求就是整个产品的源头,所以需求分析的结果往往决定了产品的成败。如果没有正确把握客户需求,可能就会一步错,步步错!
就像我在《特别放送 | 从软件工程的角度解读任正非的新年公开信》提到的秋千的案例:
客户想要一个给三个孩子玩的秋千;产品经理以为就是一个板子加两绳子就行;架构师发现除非把树截开,否则秋千没法荡起来的;程序员以为用绳子和板子连一起就完事了;而真正满足客户需求的,也就只要在绳子上挂个轮胎而已!
所以在本篇文章中,我将带你去了解:需求分析到底要分析什么?以及我们怎么样才能做好需求分析,抓住用户的真实需求,做出来客户想要的软件产品,避免失败或浪费。
什么是需求?
我们日常在项目中,经常会听到“需求”这个词,比如说:
- 项目经理对产品经理说:用户给我们提了一个需求,想要一个给三个孩子玩的秋千,你分析一下;
- 产品经理对架构师说:我们现在有一个需求,在树上栓两绳子,再吊一块板子,你做一下设计。
很明显,这两个需求的意思不一样,前面这个需求是用户需求,后面这个需求是产品需求。
用户需求是由用户提出来的,期望满足自身一定需要的要求,例如用户说:“想要一个给三个孩子玩的秋千。”这种原始的用户需求通常是不能直接做成产品的,需要对其进行分析提炼,最终形成产品需求。
产品需求就是在分析提炼用户真实需求后,提出的符合产品定位的解决方案。就像上面“在树上栓两绳子,再吊一块板子”,就是产品经理针对用户需求提出的解决方案。
需求分析是要分析什么?
其实对用户需求的分析,不是一个动作,而是一个过程。需求分析,就是对用户需求进行提炼分析,最终形成产品需求的过程。
而针对每个用户需求的需求分析过程,需要经过三个步骤。
第一步:挖掘真实需求
大部分用户提的需求,都不见得是其真实的需求,需要透过现象看本质,去挖掘其背后真实的需求。就像福特汽车创始人亨利福特说过的:
如果我最初是问消费者他们想要什么,他们应该是会告诉我,“要一辆更快的马车!”
这里“要一辆更