前言的前言,需求问题可以说是软件开发中的主要矛盾。
下图一图诉尽当中百态。
17 | 需求分析到底要分析什么?怎么分析?
前言,秋千案例
需求是什么?
从用户需求(业务需要),
经过需求分析,
到产品需求(解决方案)。
需求分析是要分析什么?
第一步:挖掘真实需求
目标用户:用户不同,诉求也不一样;
使用场景:使用场景不一样,解决方案也会有所不同;
想要解决的问题:用户背后想要解决的问题是什么。
第二步:提出解决方案
第三步:筛选和验证方案
怎样做需求分析?
1. 收集需求:对用户需求进行收集整理
头脑风暴,用户调研,竞品分析,快速原型,
2. 分析需求:对需求进行分析,挖掘用户真实需求
表层需求,深层需求,底层需求,
3. 需求评估:筛选过滤掉不可行的需求
可行性,成本,商业风险和收益,紧急性和重要性,优先级(紧急重要四象限,KANO模型),
4. 需求设计:针对用户需求提出解决方案,设计成产品方案
草图,原型设计工具,界面设计工具
5. 验证需求:验证方案是否可行
设计评审,试用版,A/B测试
18 | 原型设计:如何用最小的代价完成产品特性?
原型设计,是产品经理确认需求、设计产品最重要的沟通工具。
原型设计的发展历史
《人月神话》的作者弗雷德里克·布鲁克斯(Frederick P. Brooks, Jr.)在《没有银弹 - 软件工程中的根本和次要问题》中第一次提出了:“在获取和制订软件需求时,将快速原型开发作为迭代计划的一部分”。
原型设计从最开始的一种快速开发模式,逐步演进成了今天的原型设计工具。
快速原型模型就是,
第一阶段确认界面布局和内容,
第二阶段确认交互,
第三阶段实现。
整个过程单靠产品经理是无法完成的,必须要有开发人员配合才能完成。
低保真原型设计:线框图,纸和笔,直观地看到界面上有什么,布局是什么样的。
中等保真原型设计:Axure,反映界面上的布局和内容,还可以展示网站的整体结构和交互。
高保真原型设计:更追求界面的美观和交互的炫酷。
怎么做好原型设计?
分析,设计(Mindmap信息结构图,使用流程图),实施,验证,
合适的原型设计工具,选择思路
面向的平台:Web、桌面、手机;
保真度:中等保真度还是高保真度;
功能:是否满足你的要求;
成本:价钱是否可以接受。
Axure RP,墨刀,Adobe XD,ProtoPie,FramerX,
19 | 作为程序员,你应该有产品意识
焦虑是怎么产生的?
焦虑通常源于压力,压力源于对未来的不确定,对未来的不确定源于不知道自己的价值在哪里,不知道自己未来是不是还能持续创造价值,会不会失业。会不会失业,取决于你创造的价值是否高于你的工资水平。所以要想不焦虑,我们就要考虑如何提升自身价值,只要自己创造的价值够大,就不担心自己会失业,减少很多不必要的焦虑。
程序员的价值
第一,你的价值体现在你所做的产品之上。
第二,你的价值体现在团队中的稀缺性。
搞定别人搞不定的技术难题;
擅长培训新人;
擅长和业务部门沟通;
高质量地完成功能模块;
按照需求设计好的架构;
让团队高效率低成本地完成需求。
什么是产品意识
商业意识,产品是要有商业价值,在项目中有更好的成本意识,为项目节约时间、经济等成本,帮助团队打造更有价值的产品。
用户意识,挖掘出用户的真实需求,让产品有好的用户体验,同理心,能站在用户的角度去思考和体验产品。
数据意识,在产品设计、产品运营时,通过数据来发现问题、证实结果。
如何培养产品意识?
解放思想
不要总是单纯的用技术眼光看问题,也可以从产品的角度看问题。技术思维会关注用什么技术,关注技术细节,关注功能“如何”实现;产品思维会关注用户体验,关注一个功能所创造的价值,会去思考为什么要或者不要一个功能。
改变习惯
改变习惯是是指在日常使用产品、开发产品的时候,多站在产品的角度思考,去思考它的商业价值、用户体验、使用场景等等。
多实践
在做产品的过程中,你自然会去站在产品的角度去思考,这会让你对产品方面有更多感悟。
总结
产品意识,主要包括商业意识、用户意识和数据意识。要提升产品意识,首先要解放思想,然后要改变习惯,最后要多实践。
20 | 如何应对让人头疼的需求变更问题?
需求变更这个事情上,没有赢家,每个人都是受害者。
杀一个程序员不需要用枪,改三次需求就可以了!
管理需求变更的解决方案
增强需求变更流程,让需求变更规范起来。
用原型设计低成本响应需求变更;做好需求分析和确认,减少需求变更。
通过灵活的架构和强大的配置,低成本响应客户需求变更。
总结
提升需求确定性;提高需求变更的成本;降低响应需求变更的成本。
课后感
软件需求本质是一个沟通问题。BA需要帮助用户理清问题是什么,问题到底是什么。然后和团队一起提出解决方案。
需求 = 期望 - 现状。除了把需求做好,还要要管理好用户的期望。
精益思想第一条“消除浪费”(Eliminate Waste)。持续引导用户消除浪费,消除此刻不是必须的建造,不应该让开发人员开发不是紧急的,未定义清楚的东西。
结构化思维很重要。课程中应对需求变更的方案就是极好的体现。
提高需求变更的成本;提升需求确定性;降低响应需求变更的成本。