如何做需求分析?

内容纲要

一、引入

需求分析到底要分析什么?怎么分析?

需求分析的结果决定了后续的系统设计、开发、测试等阶段能否顺利如期进行。

需求就是整个产品的源头,所以需求分析的结果往往决定了产品的成败。如果没有正确把握客户需求,可能就会一步错,步步错!

我们或许丢听过秋千的案例:用户想要一个秋千,但经过产品经理、架构师的逐层传达,中间过程信息失真,最终程序员交付的不是客户需要的。

二、什么是需求?

  • 项目经理对产品经理说:用户给我们提了一个需求,想要一个给三个孩子玩的秋千,你分析一下;
  • 产品经理对架构师说:我们现在有一个需求,在树上拴两绳子,再吊一块板子,你做一下设计。

第一个是用户需求
第二个是产品需求

需求到底是什么?

需求是指人们对某种产品、服务或解决方案的期望或要求,通常包括他们希望产品具备的功能、性能、特性以及解决的问题或满足的需求。

需求可以来自用户、客户、市场或项目的相关利益方,它们是确定产品或服务设计和开发的基础。需求有助于明确项目的范围,并确保最终产出满足人们的期望。

三、如何区分用户需求和产品需求?

用户需求是由用户提出来的,期望满足自身一定需要的要求,例如用户说:“想要一个给三个孩子玩的秋千。”这种原始的用户需求通常是不能直接做成产品的,需要对其进行分析提炼,最终形成产品需求。

产品需求就是在分析提炼用户真实需求后,提出的符合产品定位的解决方案。就像上面“在树上栓两绳子,再吊一块板子”,就是产品经理针对用户需求提出的解决方案。

总结:

  • 用户需求是用户对产品的期望和问题的表述,强调目标和愿望。
  • 产品需求是具体规格和功能要求,描述了如何实现用户需求的方式和具体特性。用户需求关注“为什么”,而产品需求关注“如何”。

四、需求分析是要分析什么?

对用户需求的分析,不是一个动作,而是一个过程。

需求分析,就是对用户需求进行提炼分析,最终形成产品需求的过程。

三个步骤:

第一步:挖掘真实需求
要分析用户的真实需求,可以从三个角度入手。

  1. 目标用户:用户不同,诉求也不一样;
    2。 使用场景:使用场景不一样,解决方案也会有所不同;
  2. 想要解决的问题:用户背后想要解决的问题是什么。

现实项目中,大多数人需求分析的不正确,就是因为没有挖掘出用户的真实需求。

第二步:提出解决方案
我们知道了目标用户,其使用场景想要解决的问题,就可以结合产品定位,提出相应的解决方案

比如:

1、针对想要“更快更舒适的出行方式”日常出行的乘客,我们就可以提出汽车的解决方案,而不一定要局限于马车,汽车能更好的满足用户需求。

2、个孩子想有一个在户外一起玩的娱乐设施这个需求,我们可以提供一个轮胎式的秋千,就可以很好的满足他们的需求,我们甚至可以建一个小型游乐园。

第三步:筛选和验证方案
在提出方案后,我们需要对方案进行筛选;
在选好方案后,还需要对方案进行验证,以确保方案能解决用户需求。

在传统瀑布模型中,选定方案后,会写成产品设计文档,走相应的评审流程,评审完成后再进行设计、开发和测试,测试完成后会让客户再进行验收。而敏捷开发,在整个开发过程中,每个迭代或者关键的里程碑,也一样需要客户进行验收。

通过以上三步,就可以对用户需求进行提炼分析,最终形成产品需求。

所以在需求分析过程中,分析的就是一个个用户的需求,找出背后的真实诉求,再有针对性的提出解决方案。对于解决方案,要进行筛选和验证,有些不可行的用户需求不会变成产品需求,可行的用户需求会按照优先级进入实施阶段,最终变成产品。

五、怎样做需求分析?

对单个用户需求的分析,3个步骤:

  • 第一步:挖掘真实需求;
  • 第二步:提出解决方案;
  • 第三步:筛选和验证方案。

对软件项目用户的需求,是一系列的需求。所以还需要增加收集整理的步骤。整个过程是迭代进行的。

  • 收集需求:对用户需求进行收集整理;
  • 分析需求:对需求进行分析,挖掘用户真实需求;
  • 需求评估:筛选过滤掉不可行的需求;
  • 需求设计:针对用户需求提出解决方案,设计成产品方案;
  • 验证需求:验证方案是否可行。

1、收集需求

收集用户需求的方法:

  • 头脑风暴:大家一起开会头脑风暴讨论;
  • 用户调研:通过调查问卷或者访谈,通过问用户一些问题收集反馈;
  • 竞品分析:通过分析其他同类产品的功能获得需求;
  • 快速原型:通过原型来收集反馈,收集确认需求。

2、分析需求

收集了需求,就要分析用户的真实需求,这是最难的部分,也是最体现产品经理需求分析水平的地方。

用户需求背后的真实需求有三个层次:

  • 表层需求:用户对解决问题的期望,例如马车更快;
  • 深层需求:用户的深层次动机,诉求产生的原因,例如乘客对出行速度的要求;
  • 底层需求:人性本能的需求,例如对安全感对舒适的追求。

要分析好用户需求背后的真实需求,就是要结合“目标用户”和“使用场景”,按照上面三个层次去思考。

示例:

假设我们正在开发一个出租车预订应用程序,用户可以使用该应用程序预订出租车。在这种情况下,我们可以分析用户需求的不同层次如下:

表层需求:
用户希望能够轻松地使用应用程序来预订出租车。
用户希望能够看到周围可用的出租车,并选择其中一个。

深层需求:
用户之所以使用出租车预订应用程序,可能是因为他们需要快速方便地到达目的地。
用户可能担心在高峰时段或陌生地区找不到出租车,因此他们希望使用应用程序来解决这个问题。

底层需求:
用户可能寻求安全感,他们希望知道他们的司机是合法的,车辆是安全的。
用户也可能追求舒适性,期望车辆干净整洁,司机友好有礼。

通过这种分析,我们可以更好地了解用户的真实需求。在开发应用程序时,我们需要确保满足这些需求,提供方便、安全、舒适的出租车预订体验,而不仅仅是满足表层需求。这有助于更好地满足用户期望,提高产品的可用性和用户满意度。

3、需求评估

需求收集分析完了后,还需要进一步评估,以决定做还是不做,优先级如何,先做哪些再做哪些。

需求评估考虑的因素:

  • 可行性:技术能否实现;
  • 成本:人力成本、时间成本;
  • 商业风险和收益:有没有商业上的风险,收益是否合理;
  • 紧急性与重要性:是不是用户迫切的需求。

如果确定可行,继续评估优先级。

评估优先级一个简单的方案就是用“紧急重要四象限”的方法来区分:

复杂一点的有 KANO 模型,如下图所示。

  • 红色曲线,是用户认为必须要有的功能;
  • 绿色曲线,就是用户明确提出的需求;
  • 黄色曲线,属于兴奋型需求,就是用户自己没想到,超出预期的功能。

示例
在出租车预订应用程序的需求评估中,我们可以结合上述提到的因素来决定哪些需求做、不做以及优先级如何。以下是一个示例:

  1. 可行性:

    • 技术能力:首先,我们需要评估是否有技术能力来实现提出的各种需求,如地图集成、在线支付、实时位置跟踪等。如果某些需求技术难度较大,我们需要仔细考虑是否能够克服这些技术挑战。
    • 成本:同时,我们需要估算开发这些功能的人力和时间成本,确保项目的可行性。
  2. 商业风险和收益:

    • 商业风险:我们需要评估每个需求是否会带来商业上的风险,例如潜在的法律问题、竞争对手的反应等。
    • 收益:同时,我们需要估算每个需求可能带来的潜在收益,包括新用户的吸引、用户保留率的提高以及可能的增值服务。
  3. 紧急性与重要性:

    • 紧急性:某些需求可能与市场趋势或竞争对手的动态相关,因此我们需要考虑是否需要迅速实现以保持竞争力。
    • 重要性:同时,我们需要根据用户的需求和期望来确定各需求的重要性,以确保满足用户核心需求。

结合这些因素,我们可以使用四象限或KANO模型来评估各需求的优先级:

  • 红色区域:必须做的需求,这些需求是不可或缺的,用户期望它们。
  • 绿色区域:明确提出的需求,这些需求用户明确要求,并且可能会直接影响用户体验。
  • 黄色区域:兴奋型需求,这些需求可以超越用户的期望,为产品增加价值。
  • 灰色区域:次要需求,可能不是当前优先考虑的,但可以在将来考虑。

通过这种评估方法,我们可以决定首先实现哪些需求,以满足用户的核心期望,同时考虑技术可行性、成本、商业风险和收益,以确保项目的成功。

4、需求设计

在分析和评估完需求后,还需要提出解决方案,也就是对需求进行设计,做出来有效的产品设计方案。最终的产品设计,会落实到人机交互上面,用户可以通过软件界面交互。

现在产品设计方面,各个平台都有一套比较成熟的界面标准控件,大部分产品设计都可以基于标准界面控件,组合成满足需求的用户界面,在满足功能的前提尽可能做得易用和美观。

在需求设计的时候,可以用草图、原型设计工具、界面设计工具进行设计。在需求设计阶段,可以参考其他成熟的产品。

比如设计播放器,可以通过借鉴其他软件的设计来完成的,比如说向 Youtube 借鉴了视频播放器的设计,向 Skype 的电话会议系统借鉴了其播放区域切换的交互,最终完成了产品设计。

5、验证需求

在需求设计好后,还需要进行验证,看解决方案是否能满足用户的需求

需求的验证方式其实是贯穿整个软件项目生命周期的,在需求分析阶段,会反复验证确认设计好的需求是否满足用户的真实需求,例如各种设计评审。

在产品开发完成后,也需要有需求的验收,以确保开发出来的软件产品是客户想要的,满足客户需求的。现在很多互联网产品,还有一种基于数据的验证需求方式,也就是 A/B 测试

设计好一个功能上线后,并不直接让所有用户使用,而是先给一小部分用户使用,然后分析数据,看使用这个功能的用户群和不使用这个功能的用户群,在营收、访问量、活跃度等关键数据上是更好还是更坏。如果好,就加大比例,如果数据不好,可能就会调整甚至取消这个功能。

在需求分析完成后,就可以基于需求分析形成的文档,进行设计和开发了。

DePaul 大学的网络教学系统产品演示

六、总结

需求分析,就是一个将用户需求变成产品需求的过程。要做好用户需求的分析,需要找出来隐藏在用户需求背后的真实需求,还要针对用户的真实需求提出解决方案,最终验证方案是不是能满足好用户需求。

需求是整个产品的源头,很多软件项目失败的原因就在于没有做好需求分析,软件中很多浪费也来源于需求没想清楚导致的返工。做好需求分析对于软件项目来说非常的重要。

要做好软件项目的需求分析,需要做好需求的收集整理工作,然后对收集好的需求进行科学的分析,评估是不是可行以及划分优先级,对可行的需求项进行设计,最后还要验证设计出来的结果是不是满足需求。

学习资料

Leave a Comment

您的电子邮箱地址不会被公开。 必填项已用*标注

close
arrow_upward