15.4.1 需求整理和分析过程
需求整理和分析过程如表15-8所示。
表15-8 需求整理和分析过程
序号 |
主题 |
内容 |
1 |
需求完整性检查 |
² 需求录入完成后,产品经理对录入PLM/IT系统的需求信息进行正确性和完整性审核,必要时与提出者进行沟通,对相关信息进行更新及补充; ² 需求提出者在获取任何需求的更新信息时需及时通知产品经理,以便产品经理对录入系统的需求信息进行完整性审核,并补充必要信息。 |
2 |
商务可行性分析 |
² 需求录入后对需求进行一定的筛选,给出可过滤的需求的标准,一般筛选时考虑是否与公司策略、公司投资方向、公司产品范围、公司主要市场、国家相关法规相违背; ² 产品经理根据需要组织相关的商务可行性分析人员,并组织开展商务分析活动,商务可行性分析人员通常来自营销、产品规划等部门。若需求较简单,产品经理也可不召集分析人员,由产品经理自己进行分析。进行商务可行性分析时,主要分析该需求的市场背景、商务前景、投入产出比、建议定价等,以确定该需求值不值得去投入,形成初步市场需求; ² 根据商务可行性分析结论,可以有以下几种处理方式:该需求从商务上分析可行,需要提交研发副总裁批准进一步进行技术分析,则进入技术可行性分析步骤。必要的情况下,研发副总裁将商务可行分析结论提交高层决策,决策通过后,方可进入技术分析环节。该需求从商务上分析可行,但需要长期规划的,需要纳入需求库。该需求在商务上没有前景,不需要实现,取消该需求,结束。需求信息不完善,需要进一步补充,返回到需求池,待补充后再进行规划 |
3 |
技术可行性分析 |
² 产品经理向研发中心各部门经理协调资源,成立技术可行性分析小组,对需求进行技术可行性的分析。产品经理需要同时明确技术可行性分析的时间要求。如果产品经理有能力自行分析,也可以不组建分析小组,而由产品经理自行给出分析结论和建议; ² 技术可行性分析小组负责对需求进行技术可行性分析,从软件、硬件、结构等各个领域进行全面分析,同时对需求实现过程中需要的资源、工作量及交付周期进行评估,确定所提出的需求,在技术上、资源上、时间上的可行性; ² 技术可行性分析小组需在指定的时间内得出并汇总分析结论,包括技术可行性、总体工作量、开发交付周期、资源计划、必要的技术方案及对需求决策的建议等,并在《需求管理表单》的技术分析部分填写分析结论,反馈给产品经理; ² 技术可行性分析过程中产生的分析文档等,可作为需求管理表单的附件提交,对技术可行性分析结论进行支撑。分析过程中,产品经理可根据需要组织技术可行性分析小组召开讨论会议 |
4 |
需求决策 |
需求分析完成后,产品经理负责向研发副总裁提交技术可行性分析结论,并进行需求处理方式决策 |
15.4.2 需求整理和分析3个要点
很多需求是隐性的,很难获取,又是易变的,还难以保证需求完整。过去需求分析更多依靠的是阅读企业的文件,但是企业的文件往往有局限性,例如落后于当前的业务、不够明确、依赖于管理水平的高低,所以后来获取需求的方法逐渐倾向组织访谈。据统计,项目中超过一半的问题都是在需求分析阶段不充分、不全面导致的,成功的项目都离不开成功的需求管理。需求整理和分析的要点如表15-9所示。
表15-9 需求整理和分析的要点
序号 |
主题 |
内容 |
1 |
需求分析的关键是明确用户的本质需求,即挖掘表面需求背后更深层次的需求 |
收集来的用户需求甚至可能不是用户的真实需求,只有明确了本质需求,才能确定更好的产品方向,以更好地满足客户 |
2 |
优先满足真需求,减少或者不做伪需求 |
² 收集到很多需求,但资源显然有限,于是就需要对需求的优先级进行筛选和排列。怎么区分真需求和伪需求?用英文很可以清晰区分,伪需求叫Want,真需求叫Need。Want的东西用户不一定会掏钱,Need的东西用户一定愿意掏钱。所以识别出Need的需求是优先需要实现和满足的。 ² 对单个需求通常可以问的问题有:需求强度,用户是否痛?需求频次,多久痛一次?持续时间,是否持续地痛?广度,有多少用户有类似的痛点?付费意愿,用户为此痛点付费的意愿如何 |
3 |
优先实现有先后顺序要求里靠前的需求 |
产品开发的不同阶段需求关注点也有区别,一个全新产品最该实现的是用户最迫切的需求。产品逐渐成熟,需要实现的内容就越来越多,各种细节的体验需要提升 |
案例分析:
亨利福特曾说:“如果我最初问消费者他们想要什么,他们会告诉我要一匹更快的马。”有人说:“如果真是这样,汽车大王就不会出现了。”
福特为什么没有给用户一匹马,而是给了用户一辆车?因为在一匹更快的马这个表面需求背后,是更快、更舒适的出行方式,福特汽车显然是更好的产品。
15.4.3 20种需求类型
20种需求类型如表15-10所示。
表15-10 20种需求类型
编号 |
需求分类 |
内容标准 |
1 |
功能性需求 |
对产品必须执行动作的描述,每个功能性需求必须有一个验收标准。验收标准是一个目标,它使我们可以测试提交的产品是否按规定实现了该需求。对功能性需求来说,验收标准取决于所要求的动作,例如如果功能是记录一些数据,那么验收标准是数据必须能取出,且必须符合一定标准,计算结果数据必须符合预期结果 |
2 |
外观需求 |
当功能性需求得到满足后,常常是产品的外观决定了它们是否会成功。如果产品是卖给儿童的,观感需求应该色彩鲜明,看上去是专门为儿童设计的 |
3 |
易用性需求 |
对预期用户应该怎样容易地操作产品的想法。产品的易用性是从产品期望用户的能力和功能的复杂性上推导出来的。增加接受度量标准,确定使用人员的素质特征,同时定义在测试活动中的通过比例。一个用户应该从开始使用该产品起,无需使用操作手册,在特定时间内生产出特定的结果 |
4 |
性能需求-速度 |
某些产品必须能够在给定的时间内执行某些功能。不能做到则可能带来灾难性的后果。验收标准必须是可测试的性能度量标准,通过说明在怎样的条件下产品必须达到目标的时间限制,可以强化上述需求。不同类型产品的速度需求重要性的差异很大,研制一个导弹制导系统,那么速度是极端重要的,一个每六周才运行一次的库存控制报告系统对速度的需求就比较无所谓 |
5 |
性能需求-安全性 |
对可能造成人身伤害、财产损失和环境破坏风险的量化描述,产品应该通过认证,符合国家和国际的相应标准,由有资历的测试工程师来完成。 谁被授权使用该产品?是否存在管理层敏感的数据?是否有一些数据是低层用户不希望管理层访问的?是否有一些过程可能导致损害或可能用于个人获利?是否有些人不应该有权使用该产品? |
6 |
性能需求-精度 |
对产品产生的结果期望精度的量化描述 |
7 |
性能需求-可靠性 |
允许的两次失败之间无故障运行时间,或允许的总失败率。考虑产品的真正需求是否可用,还是任何时候都不会失效的 |
8 |
性能需求-容量 |
明确处理的吞吐量和产品存储数据的容量,保证产品有能力处理期望和数据量,建立客户期望和期望容量之间的关系 |
9 |
操作需求 |
突出指明可能需要特殊需求、准备或培训的情况,确保产品适合在预期的环境中使用。操作需求大部分是由“需求限制条件”中对工作场地的描述导出的,一般与易用性需求一起编写 |
10 |
操作需求-关联性 |
对产品必须与之交互的其他产品的描述,与其他产品交互的需求常常到实现阶段才被发现。我们的意图是通过及早发现这些需求来避免返工。针对每个产品之间的接口,描述相关的信息,将使用这些信息来确定实现的产品是否能与关联成功地协同工作 |
11 |
可维护性需求 |
对产品做特定修改所需时间的量化描述,可能存在一些特殊的维护需求,例如此产品必须能被最终用户维护,或由非最初开发者来维护。这会影响到产品开发的方式,可能会有额外的文档和培训需求 |
12 |
可移植性需求 |
对产品必须支持的其他平台或环境进行描述,量化客户和用户关于产品运行平台的期望 |
13 |
文化和政策需求 |
针对社会的和政策的因素的规格说明,这些因素会影响产品的可接受性。如果开发的产品是针对外国市场的,可能要特别注意这些需求。是否产品的目标是你所不熟悉的文化环境?是否其他国家的人或其他类型的组织中的人会使用该产品?人们是否有与你的文化不同的习惯、节日、文化上的社会行为规范?这些政策上的需求对最后结果影响大不大?事实是就算能找到更好、更有效、更经济的解决方案,产品也必须满足这些政策性需求。在这里就要探索一些相关问题,避免后来的痛心疾首 |
14 |
法律需求 |
动机是符合法律,以避免今后的延时、诉讼和法律费用。是否存在必须保护的版权?是否有一些你可能违反的竞争对手版权?是否要求开发者没有看过竞争对手的代码或没有为竞争对手工作过?是否有一些正等待通过的法律可能会影响到产品的开发 |
15 |
标准需求 |
满足标准,避免以后项目延期。有时存在适用的标准这一点并不明显,因为它们的存在常被当作是理所当然的。是否存在一些有适用标准的业界组织?是否存在实践、监察或调查等行业规则?对此类产品是否存在一些特殊的开发步骤 |
16 |
可重用性需求 |
可能用于该产品的通用件,包括采购的和公司自己的产品,避免重复发明。是否可能购买一些已有的或马上会有的产品?尽管一个现成的解决方案可能不存在,但还是可能有些本质上很类似的东西,可以拿来做些修改,这样会比从头开始效果要好 |
17 |
新问题-新产品对用户业务的影响 |
尽早发现任何潜在冲突,否则可能要到实现阶段才会发现。新产品是否可能破坏某些已存在的产品?人们是否会受到新产品的影响,或被新产品取代?这需要对当前环境进行研究,制作一个新产品的模型可以让大家很好地理解这些信息 |
18 |
新问题-新产品的兼容性 |
新产品将怎样与现存系统协同工作的描述。只在极少的情况下,新的开发是完全独立工作的。通常有一些现存系统,新的系统必须与它们共存。这个问题需要仔细查看现存系统,看看是否与新的开发有潜在的冲突 |
19 |
新问题-对用户习惯的影响 |
关于现有用户可能产生的敌对性反应的细节。有时现存用户使用产品的方式让他们会受到新产品/功能的不良影响。确定任何可能的用户敌对反应,决定我们是否要关注及可以采取什么样的预防措施 |
20 |
后续版本需求 |
动机是收集一些需求,即使它们不能成为当前开发的一部分,这样可以确保好主意不遗漏。需求收集过程常常发现一些超出产品当前版本的成熟程度或时间许可的需求。本部分包含有待后续版本实现的需求,这样做的意图是通过集中将来要实现的需求来避免用户和客户不满。同时通过弄明白这些需求并严肃对待它们来管理用户对系统的期望,但这些需求不会在本产品中实现 |
案例分析:需求归类示例如表15-11所示。
表15-11 需求归类示例
序号 |
要素 |
描述 |
内容 |
1 |
$价格 |
客户为一个满意的产品希望支付的价格。从实际和感觉两个方面来考虑客户能接受的购买价格,包括技术先进性、低成本制造、人力成本、制造费用、简易型和可生产性等 |
设计、可生产性、技术、原材料、生产、供应商、制造、人力成本、管理费用、工装 |
2 |
A保证 |
考虑客户在可预测的环境下的可靠性安全、质量、性能方面的评价 |
销售、渠道、交货期、广告、配置、定价和客户定制 |
3 |
P性能 |
从实际和感觉两个方面来考虑交付产品功能特性的性能,从客户角度是否能提供更好的性能,如速度、功率、容量等 |
功能、吸引力、规格、功率、速度、容量、适应性、多功能、尺寸 |
4 |
P包装 |
包装的设计质量、性能和外观等视觉特征,包括样式、模块性、结构、颜色、图形、工艺设计等 |
风格、尺寸、数量、几何设计、模块性、界面、图形 |
5 |
E易用 |
交付的易用性,包括舒适度、文档支持、人性化、直观性、输入输出方便性等 |
用户友好、操作控制、显示、培训、文档、帮助系统、人为因素、接口、操作 |
6 |
A可获得性 |
用户容易购买到,包括预售、购买渠道/供应商选择、交付时间和客户定制能力等 |
可靠性、质量、安全性、误差极限、完整性、强度、适应性、负荷量 |
7 |
L生命周期成本 |
用户使用的生命周期成本,如安装成本、培训、服务、供应、效率、价值折旧、处理成本等 |
寿命、正常运行/停工时间、可维护性、服务、备件、升级、运维成本、安装成本 |
8 |
S社会接受度 |
影响用户购买的其他影响,如第三方评价、形象、政府或行业标准、法规、法律关系等 |
间接影响、采购代理商、社会认可程度、法律关系、工作产所、政治 |
15.4.4 高质量需求的10个要素
高质量需求的10个要素如表15-12所示。
表15-12 高质量需求的10个要素
序号 |
主题 |
内容 |
1 |
正确 |
不要缺少信息,不要包括不需要的信息,每一项需求都必须准确地陈述其要开发的功能。只有用户代表才能确定用户需求的正确性,这就是一定要有用户的积极参与的原因 |
2 |
清楚、明确、无二义性、无冗余 |
每一项需求都必须将所要实现的功能描述清楚,以使开发人员获得设计和实现这些功能所需的所有必要信息。对所有需求说明的读者都只能有一个明确统一的解释,所以尽量把每项需求用简洁明了的用户性的语言表达出来。需求的详细程度和可理解性是一个抛物线轨迹,适中的那个高点是我们追求的方向,也是需要学习和积累的技能。需求分析最重要的是和用户沟通,少用行话,以免造成用户理解上的困难 |
3 |
完整 |
考虑分界条件、例外情况、不要落下需求,需求的完整性是非常重要的,因遗漏需求而不得不返工代价会增大几倍。但需求的遗漏是经常发生的事情,因为用户不知道该做些什么 |
4 |
一致性、可追溯的 |
用户需求必须和业务需求一致,功能需求必须和用户需求一致,保证最后开发出来的产品不会偏离最初的实现目标,例如用户需求不能超出先前指定的范围 |
5 |
可验证的 |
检查一下每项需求是否能通过设计测试用例或其他的验证方法,如用演示、检测等来确定产品是否确实已按需求实现。如果需求不可验证,则确定其实施是否正确就成为主观臆断,而非客观分析。一份前后矛盾,不可行或有二义性的需求也是不可验证的 |
6 |
可理解的 |
必须书面记录下来,能让所有利益相关人都能理解需求内容 |
7 |
可测试的 |
一个项目的测试不是从编码完成后开始,也不是编码的时候同时进行单元测试,编码完成后进行系统测试,实际上测试是从需求分析过程就开始了。需求分析是测试计划的输入和参照,这就要求需求分析是可测试的。如“我们要用新的系统完成报表自动化处理”,这样的需求就不是可测试的,报表包括哪些?自动化处理的标准是什么?这些在需求中都没有说明 |
8 |
可行的 |
每一项需求都必须是在已知系统和环境的权能和限制范围内可以实施的 |
9 |
必要性 |
每一项需求都应把客户真正所需要的和最终系统所需遵从的标准记录下来。必要性也可以理解为每项需求都是用来授权编写文档的“根源” |
10 |
优先级 |
给每项需求、特性或使用实例分配一个实施优先级以指明它在特定产品中所占的分量,如果把所有的需求都看作同样重要,那么项目管理者在开发或节省预算或调度中就丧失控制自由度 |
15.4.5 需求流程与状态
需求流程如图15-3所示。
项目定义好需求的状态后,也应明确规定状态之间的转换路径、转换条件、有权修改状态信息的人员,并按照这些规定进行状态的更新。图15-4是利用状态图表达需求状态和转换条件的例子。
定义需求的状态如表15-13所示。
表15-13 定义需求的状态
序号 |
状态值 |
定义 |
1 |
被建议 |
该需求已被有权提出需求的人建议 |
2 |
被拒绝 |
该需求被建议后,未能获得实施的批准 |
3 |
被批准 |
该需求已被分析,估计了其成本和对项目其他部分的影响,已用一个确定的产品版本号或创建编号分配到相关的基线中,开发团队已同意实现该项需求 |
4 |
被实现 |
已实现需求的设计,完成编码和单元测试 |
5 |
被验证 |
使用所选择的方法如测试已验证实现的需求,该需求现在被认为完成 |
6 |
被废除 |
被批准的需求已从基线中废除,但记录了原因说明和做出废除决定的人员 |
7 |
已交付 |
需求已通过顾客方的验收测试 |
图15-4 需求状态和转换
在项目进展过程中,为了有效进行监控工作,需要定义需求的状态,周期性地报告处于某类状态的需求在整个需求中所占的百分比。
案例分析:更复杂一些的需求状态汇总如表15-14所示。
表15-14 更复杂一些的需求状态汇总表
序号 |
状态值 |
定义 |
1 |
被创建 |
需求刚被输入到“原始需求收集库”中的状态 |
2 |
被拒绝 |
评审后,由于条件不具备,未能获得实现批准。无需重新评审 |
3 |
被挂起 |
评审后,无法得到结论,需要延期进行评审,或者需要补充材料后重新进行评审。需要定期或事件驱动地重新评审 |
4 |
被建议 |
原始需求被系统组建议预研 |
5 |
被预研 |
被建议的需求通过了预研建议评审,正被预研 |
6 |
被立项 |
预研结果表明需要以被预研的需求为基础开发新项目,这些需求处于立项过程中 |
7 |
被批准 |
该需求已被分析,估计了其成本和对项目其他部分的影响,已用一个确定的产品版本号或创建编号分配到相关的基线中,开发团队已同意实现该项需求 |
8 |
被规划 |
目前没有实现,但是已经规划在未来的版本中实现 |
9 |
被分配 |
已经分配到下一级需求(如系统需求已经分配到了软件需求) |
10 |
被实现 |
需求已被设计、编码并通过仿真验证 |
11 |
被验证 |
被实现的需求通过了某种方法的验证,该需求被认为已完成 |
12 |
被删除 |
被批准的需求已从基线中删除(应记录删除原因和做出删除决定的人员姓名) |
13 |
被交付 |
需求已通过用户的验收测试 |