软件工程学习笔记7需求分析篇
软件工程学习笔记7——需求分析篇
需求分析篇
一、需求分析
1、需求分析的重要性
通过前面的学习,知道了在瀑布模型中,第二个阶段就是需求分析阶段,同时需求分析的结果也决定了后续的系统设计、开发、测试等阶段能否顺利如期进行。即使是用敏捷开发,同样也少不了对需求的分析整理。
可以说需求就是整个产品的源头,所以需求分析的结果往往决定了产品的成败。如果没有正确把握客户需求,可能就会一步错,步步错!
2、需求分析是要分析什么?
其实对用户需求的分析,不是一个动作,而是一个过程。需求分析,就是对用户需求进行 提炼分析 ,最终形成产品需求的过程。
而针对每个用户需求的需求分析过程,需要经过三个步骤。
(1)挖掘真实需求
大部分用户提的需求,都不见得是其真实的需求,需要 透过现象看本质 ,去挖掘其背后真实的需求。
就像福特汽车创始人亨利福特说过的: 如果我最初是问消费者他们想要什么,他们应该是会告诉我,“要一辆更快的马车!”
要分析用户的真实需求,可以从三个角度入手。
- 目标用户:用户不同,诉求也不一样。
- 使用场景:使用场景不一样,解决方案也会有所不同。
- 想要解决的问题:用户背后想要解决的问题是什么。
(2)提出解决方案
我们知道了目标用户,其使用场景和想要解决的问题,就可以结合产品定位,提出相应的解决方案。
(3)筛选和验证方案
3、怎样做需求分析
(1)收集需求
收集用户需求有很多方法,比如头脑风暴、用户调研、竞品分析、快速原型
(2)分析需求
收集了需求,就要分析用户的真实需求,这是最难的部分,也是最体现产品经理需求分析水平的地方。
用户需求背后的真实需求有三个层次:
- 表层需求:用户对解决问题的期望,例如马车更快。
- 深层需求:用户的深层次动机,诉求产生的原因,例如乘客对出行速度的要求。
- 底层需求:人性本能的需求,例如对安全感对舒适的追求。
(3)需求评估
需求收集分析完了后,还需要进一步评估,以决定做还是不做,优先级如何,先做哪些再做哪些。
需求评估考虑的因素有:
- 可行性:技术能否实现。
- 成本:人力成本、时间成本。
- 商业风险和收益:有没有商业上的风险,收益是否合理。
- 紧急性与重要性:是不是用户迫切的需求。
如果确定可行,还需要评估其优先级。评估优先级一个简单的方案就是用“ 紧急重要四象限 ”的方法来区分:
复杂一点的有 KANO 模型,如下图所示。
- 红色曲线,是用户认为必须要有的功能。
- 绿色曲线,就是用户明确提出的需求。
- 黄色曲线,属于兴奋型需求,就是用户自己没想到,超出预期的功能。
(4)需求设计
在需求设计的时候,可以用草图、原型设计工具、界面设计工具进行设计。
在需求设计阶段,可以参考其他成熟的产品。
(5)验证需求
在需求设计好后,还需要进行验证,看解决方案是否能满足用户的需求。
对需求的验证方式其实是贯穿整个软件项目生命周期的。现在很多互联网产品,还有一种基于数据的验证需求方式,也就是 A/B 测试 。
设计好一个功能上线后,并不直接让所有用户使用,而是先给一小部分用户使用,然后分析数据,看使用这个功能的用户群和不使用这个功能的用户群,在营收、访问量、活跃度等关键数据上是更好还是更坏。如果好,就加大比例,如果数据不好,可能就会调整甚至取消这个功能。
二、原型设计
原型开发,从一个软件开发模型,逐步演变成了一个需求设计工具,让产品经理不用依赖程序员就可以做出逼真的产品原型,也大大降低了项目成员了解需求的难度。
原型设计,让产品经理可以用最小的代价完成产品特性,逐步成为产品经理确认需求、设计产品最重要的沟通工具。原型设计工具有很多可以选择的,建议从面向的平台、保真度、功能和价格等多方面因素综合考虑。
1、怎么做好原型设计
要做好原型设计,可以结合工程方法,分成四个阶段:分析、设计、实施和验证。
- 分析阶段,搞清楚用户的需求,原型设计的目标。
- 设计阶段,划分好产品的信息架构,设计好产品操作的流程;可以借助画产品的信息结构图和产品使用流程图来进行设计。
- 实施阶段,按照设计的结果,对每个界面制作原型,并做好界面之间的链接;要优先考虑满足产品需求,然后是让界面好看好用。
- 验证阶段,和项目成员、客户进行确认,收集意见反馈,根据反馈进行修改。
2、如何选择合适的原型设计工具
原型设计工具,选择非常多。建议可以从以下几个维度考虑:
- 面向的平台:Web、桌面、手机。
- 保真度:中等保真度还是高保真度。
- 功能:是否满足你的要求。
- 成本:价钱是否可以接受。
推荐的几款主要的原型设计工具:
- Axure RP :Axure RP 曾一度是原型设计工具的代名词,历史悠久功能强大,可以制作网站、桌面软件、移动 App 的原型。 缺点是专业度较高,价格高。
- 墨刀 :墨刀是一款优秀的国产原型设计工具,可以制作网站、桌面软件、移动 App 的原型。上手相对容易,价钱也较 Axure 便宜很多。
- Adobe XD :Adobe XD 是 Adebe 出的一款设计兼原型设计工具,可以制作出高保真原型,对于设计师尤其容易上手。
- ProtoPie :ProtoPie 是一款高保真原型设计工具,不需要编程基础,可以做出逼真强大的交互效果。
- Framer X :Framer X是一款高保真的原型设计工具,功能很强大,但是需要一定的编程基础,尤其适合程序员使用。
三、产品意识
1、什么是产品意识
产品意识,本质就是一种思维方式,一种站在 产品角度 思考问题的方式。如果细分一下,产品意识包含:商业意识、用户意识和数据意识。
(1)商业意识
所谓商业意识,就是所做的产品是要有商业价值的。成功的商业产品不仅满足用户需求,同时也能创造商业价值。
其实很多程序员也有做产品的梦想,而且也有人付诸行动,业余时间做了不少产品,但是鲜有成功的。其中一个根本的原因就是,他们做的产品其实没有什么商业价值。
商业意识的另一方面其实是成本, 成本意识 也是容易忽视的。
如果程序员有商业意识,就可以在项目中有更好的成本意识,为项目节约时间、经济等成本,帮助团队打造更有价值的产品。
(2)用户意识
所谓用户意识,就是说做产品时,你要能挖掘出用户的真实需求,让产品有好的用户体验。这需要你要有同理心,能站在用户的角度去思考和体验产品。
(3)数据意识
所谓数据意识,就是在产品设计、产品运营时,通过数据来 发现问题、证实结果 。
典型的有 A/B 测试,通过数据来发现用户更喜欢哪个功能,哪个功能带来更多的收入。
2、如何培养产品意识
(1)首先要解放思想
解放思想,其实就是说,对于程序员,不要总是单纯的用技术眼光看问题,也可以从产品的角度看问题。
- 技术思维会关注用什么技术,关注技术细节,关注功能“如何”实现。
- 产品思维会关注用户体验,关注一个功能所创造的价值,会去思考为什么要或者不要一个功能。
(2)然后要改变习惯
改变习惯是是指在日常使用产品、开发产品的时候,多站在产品的角度思考,去思考它的商业价值、用户体验、使用场景等等。
(3)最后要多实践
四、如何应对需求变更问题
在需求变更这个事情上,没有赢家,每个人都是受害者。
1、常见解决方案
(1)增强需求变更流程,让需求变更规范起来。
(2)快速迭代,缩短版本周期。
2、如何解决需求变更问题?
首先,你需要意识到,在软件项目开发中,需求变更其实是 不可避免 的,一味抵制需求变更也是不可取的。
你能做的就是利用软件工程的知识,理解需求变更背后深层次的原因,找到合适的方案来改善,积极拥抱合理的需求变化,减少不必要的需求变更。这是大的前提条件,也是共识的基础。
- 提升需求确定性。设计高保真的原型,如用axure,不仅仅是画框图,还要加各种响应事件等;但对产品经理的需求分析能力要求很高。
- 提高需求变更的成本。让客户或者产品经理不能太容易就变更需求,这样就可以达到减少需求变更的目的。但过于繁琐的流程不利于项目协作。
- 降低响应成本。降低响应需求变更的成本,可以方便快捷地响应需求变更。但对软件架构和项目管理要求比较高。