人们求助于软件解决问题,那么软件团队如何准确而又全面的找到这些需求呢?
一.软件需求
1。获取和引导需求:软件团队需要找到软件的利益相关者,了解和挖掘他们对软件的需求,引导他们表达出真实的需求;
2.分析和定义需求:
3.验证需求
4.在软件产品的生命周期中管理需求
也可以从不同的角度划分:
1).对产品功能性的需求
2)。对产品开发过程的需求
3)。非功能性需求
4)。综合需求
5)软件产品的利益相关者
二。获取用户需求的方式——用户调研
1.焦点小组
2.深入面谈
3.卡片分类
4.用户调查问卷
5.用户日志研究
6.人类学调查
7.快速原型调研
8.A/B测试
三。竞争性需求分析的框架
1.N(Need,需求)
2.A(Approach,做法)
3.B(Benefit,好处)
4.C(Competitors,竞争)
5.D(Delivery,推广)
四。功能的定位和优先级
1。杀手功能:OCR文字识别技术,可以在屏幕上取词解释,拥有独家权威词典,等等。
2.外围功能:良好的界面设计,在各个平台都能解释。
3.必要需求:单词短语释义的准确性(如果达不到这一点,用户就不会来使用)。
4.辅助需求:可以做各种皮肤(这也许能让一些用户更喜欢这个软件,但不是决定因素)。
资源有限,对待不同功能的舍去方法:
1)维持——以最低成本维持此功能
2)抵消——快速地达到“足够好”,“和竞争对手差不多"
3)优化——花大力气做到并保持行业最好
4)差异化——产生同类产品比不了的功能或优势(任务我有,人有我优)
5)不做——砍掉一个功能也是一个办法,我们并不一定要做到所有功能
五。计划和估计
1.目标,估计和决心
在开始估计之前,我们要分清这几个概念:
目标:表明一个希望到达的状态
估计:以当前了解的情况和掌握的资源,要花费多少人力物力时间才能实现某事
决心:保证在某个时间之前完成预先规定的功能和质量
2.找出估计后面的假设
3.提高估计能力的招数
1)快速原型发——用于一两个先锋去探路
2)估计扑克牌
3)划拳估计法
4)T恤尺寸法
4.分而治之
分而治之的办法——WBS(Work Breakdown Structure)
做好WBS的几个要点:
1)保证所有子节点覆盖了全部父节点包含的内容
2)保证各个子节点不要相互覆盖
3)叶子结点要保证足够小,能在一个里程碑中完成。在通常的软件项目中,叶节点的成本最好不要超过两周。如果团队成员从常理出发,认为叶节点不宜在分下去,那就可以停止。
4)从结果出发构建 WBS,而不是团队的活动出发。