1.需求估算概念
需求估算是指在产品开发初期,团队根据功能需求或用户故事,对开发所需的任务量、时间和成本进行预测。这一过程确保团队有明确的目标和计划,从而更好地管理和监控项目的实施。
2.需求估算策略
(1)COSMIC法
Size( FPi ) = Size( 数据入i ) + Size( 数据出i ) +Size( 读i ) + Size( 写i )
组件 | 功能点数 |
---|---|
数据入 | 33 |
数据出 | 138 |
读 | 13 |
写 | 25 |
合计 | 209 |
在运用COSMIC功能点法估计规模时, 例如单位功能点成本为3000元, 则该系统建设的软件成本为209*3000 元, 即627000 元. 而该系统建设的软件实际投资为70万。估算结果与实际投资的偏差为10.43% 。如果结合之前的潜在风险10%,可能存在的误差只有不到1%。COSMIC方法的运用非常广泛,但是遇到比较复杂的功能,点数可能存在多数无法拆分成1的状况,从而影响估算的准确性,当然估算不可能达到百分之百确认,在一个合理的许容范围之内是允许的。
(2)相对估算法
- 扑克牌估算
在敏捷开发背景下,经常采用相对估算法,如下图,将斐波那契数列制成卡片,卡片上的数字代表故事点数,大家在估算时,同时出卡片,卡片数字代表自己认为的这个story的故事点数。当大家都亮完卡片后,可以观察,如果大家的卡片数字相差较大,可以讲解后重新出卡片,直到大家对估时点数达成共识。此时得出的结果即为该story的故事点数。采用相对估算法会极大地缩短估算时间,但是实际运用过程中不要加故事点数替换成人天。
- T-shirt估算
以T-shirt的尺寸为标准对story进行估算,XS代表耗时最少的story,XXXL为耗时最多的story,大家同样可以把T-shirt的尺寸制成卡片,用出卡片的方式进行估算。这种估算比较适合对feature的大小做估算。一般在一个比较大的项目启动的初期,项目的feature列表和feature的绝大部分story都澄清了的时候使用。使用这种方式进行估算,能帮助产品和开发负责人在整个大项目的初期对所有feature有一个完整的把握,尽早发现潜在的风险。
无论采用哪种方式进行估算,需要考虑实际的使用状况,例如使用相对估算法,但是并不能知道成本有多少;没有大量数据作为依据,也无法确定COSMIC的估算合理性,而且COSMIC的执行的时候,往往忽略了代码复用,抽象,设计等工作量也可能发生偏差。
基于以上所有的分析,我们可以提供常规功能的标准值的方式,根据复杂度不同,设定默认数值,然后只针对可能产生争议的内容进行讨论。通过这种方式不仅很大节省了估算时间,而且所有数值都是基于以往的经验,估算出的值也相对偏差比较小。
类型 | 小(简单) | 中(中等) | 大(复杂) | 说明 |
---|---|---|---|---|
增删改查单项 | 1 | 2 | 3 | |
报表导出 | 2 | 3 | 5 | |
文件导入 | 2 | 3 | 5 | |
批处理 | 1 | 2 | 3 | |
通知发送 | 1 | 2 | 3 | |
复杂业务处理 | 3 | 5 | 8 | 最好能够继续分解 |
纯展示效果 | 1 | 2 | 3 | 比如固定广告栏位展示 |
动画效果 | 1 | 2 | 3 | |
单条业务逻辑 | 1 | 2 | 3 | 比如某个会员权益 |
3.需求估算应用
案例 1:电商平台功能开发
背景:一家电商公司计划在其平台上增加新的功能,包括用户评论、推荐系统和订单跟踪。
功能识别:
用户评论:允许用户对商品进行评价。
推荐系统:根据用户购买历史和浏览记录推荐商品。
订单跟踪:提供用户订单状态实时更新功能。
使用COSMIC法进行估算:
数据入(用户评论提交、用户订单输入):40
数据出(用户评论显示、订单状态显示):60
读取(推荐算法读取用户数据):30
写入(数据库更新):50
计算功能点: [ \text{Size(FPi)} = 40 + 60 + 30 + 50 = 180 ]
成本估算: 假设单位功能点成本为5000元,则整体开发成本为: [ 180 \times 5000 = 900000 \text{元} ]
交付时间: 团队根据过往的开发周期,估算每个功能的开发需要1人月,整体任务分配为6人月,结合资源可用性,预计项目需要3个月完成。
案例 2:移动应用开发
背景:一家初创公司计划推出一款健康管理应用,功能包括用户注册、数据录入、健康建议等。
功能识别:
用户注册:用户可以注册账户。
数据录入:用户可以录入他们的体重、饮食和运动情况。
健康建议:系统根据用户数据自动生成健康建议。
采用相对估算法(扑克牌估算):
组织团队进行估算,每个成员通过使用斐波那契数列卡片估算各功能的故事点。
假设最后达成一致结果为:
用户注册:5点
数据录入:8点
健康建议:13点
成本和时间预估:团队根据历史数据,得出每个故事点约需2000元和1周的开发时间。
[ \text{总成本} = (5 + 8 + 13) \times 2000 = 26000 \text{元} ] 预计总开发时间为26周。
案例 3:企业内部管理系统
背景:某公司需要开发一套内部管理系统,涵盖员工管理、项目跟踪和报表生成。
功能识别:
员工管理:维护员工信息、考勤记录。
项目跟踪:各项目的时间线和进度跟踪。
报表生成:自动生成各类业务报表。
使用T-shirt估算:
团队根据功能复杂度为每个模块进行T-shirt估算:
员工管理:M(中等);
项目跟踪:L(大);
报表生成:S(小)。
对于每个模块,团队进一步讨论并将复杂功能拆分。例如,项目跟踪中涉及多个功能(如创建项目、更新状态等),团队将其细分并进行单独估算。
资源和成本评估:系统部署和维护成本也需要考虑,结合人员工时和外包成本进行综合评估,保证在预算内。