首页 理论教育 完美软件开发:估算终结

完美软件开发:估算终结

时间:2023-11-21 理论教育 版权反馈
【摘要】:不确定性锥指的是估算的结果将随着进度的推进,而逐渐变得更加精确。这样如果需求数目达到一定量之后,借助大数法则,估算结果也会相对精确。大数法则假设说我们去掷骰子,只要次数足够多,那么掷出1、2、3、4、5、6的概率将大致各为1/6。这个规则套用到估算中就是:我们估算单个需求可能不准,但如果作为估算的需求数目足够多,那么最终结果将偏向于精确。

完美软件开发:估算终结

软件是一种固化的思维→思维澄清的过程(人认知事物的过程)是渐进的→在初始阶段项目的不确定性最强→不可能在项目初始阶段有准确估算→估算要适可而止,持续修正。

在估算过程中,很容易接触到的一个概念是:不确定性锥。

不确定性锥指的是估算的结果将随着进度的推进,而逐渐变得更加精确。比如,详细设计完成阶段的估计就会比初始概念阶段的估算更加精确。如图5-3所示。

978-7-111-42626-4-Chapter05-8.jpg

图5-3 不确定性锥

上面是瀑布下的情形,导入迭代后,不确定性锥一定会有变化。

迭代等价于在时间轴上平分不确定性,所以迭代时的不确定性锥,很可能像如图5-4所示。

978-7-111-42626-4-Chapter05-9.jpg

图5-4 想象中迭代下的不确定性锥

不确定性锥的存在根源在于思维的渐进特质。当我们认知新事物的时候,终究要经历由点到面,由浅到深,由偏到全的过程。这体现在需求开发中,就是需求需要逐步细化,体现在估算中就是不确定性锥。(www.xing528.com)

不确定性锥提醒我们在开始阶段即使花再多的精力,也没办法让估算达到非常精准的地步。这也就意味着在各个阶段估算的精度必须适可而止,否则可能是白费力气。

这对于某些相信人定胜天的人可能很难接受,但事实上做任何事前,能够认识能力的边界是避免盲目的关键前提。比如说,举重运动员能够举起的重量在不断提高,2004年侯赛因.拉扎扎德已经举起了263kg,可以想见这一记录必然会被打破,并不断提高,但你并不能因此就假设有人可以举起5t的东西。人类能够举起的重量终究是有上限的。

回到估算,表述就变成了,虽然估算水平可以不断提高,但在特定的时间点我们能做出的估算其精度是有上限的。

这又是一个程度问题,需要依赖于当事人的判断,但有如下一些小办法可以帮助工作做得更顺畅。

●把当事人的全体通过作为适可而止的一个简单标志。

●对所有估算结果使用范围值。

●估程度,而不是估数值(模糊逻辑:fuzzy logic)。在初期阶段,想估算单个需求的代码行规模是很困难的,但我们可以大致估算一个需求是100行规模的,200行规模的,还是500行规模的。

●要求需求开发中,特性必须在一个规定规模之下,否则需要进行分解。这样如果需求数目达到一定量之后,借助大数法则,估算结果也会相对精确。大数法则

假设说我们去掷骰子,只要次数足够多,那么掷出1、2、3、4、5、6的概率将大致各为1/6。这个规则套用到估算中就是:我们估算单个需求可能不准,但如果作为估算的需求数目足够多,那么最终结果将偏向于精确。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈