软件生产的不确定性管理与指标选择
1. 聚合降低不确定性
在软件生产过程中,不确定性是不可避免的。Donald Reinertsen指出,通过对顺序和并行过程进行聚合,可以在统计层面降低不确定性。
1.1 顺序过程的不确定性聚合
对于顺序过程,当多个顺序活动组合在一起时,一组顺序过程中的不确定性(或可变性)会在总量中所占的百分比降低。具体来说,对于顺序活动,总不确定性是各局部安全缓冲的平方和的平方根。
例如,有一个12天的活动,其局部安全缓冲为8天。如果有三个这样的活动顺序进行,正常计划估计会为每个活动使用20天的局部估计,总估计为60天。但通过聚合计算,三个任务的局部安全缓冲总和为24天,而所需的不确定性缓冲约为14天,三个活动所需的总时间会更合理。这种情况下,正常计划估计的高估达到了10天,即16.7%。并且,计划中的活动越多,高估问题会越严重。
1.2 并行过程的不确定性聚合
对于并行依赖活动,聚合不确定性是这些活动中最大的单个不确定性。例如,如果上述三个任务并行进行,所需的聚合缓冲仅为8天。
1.3 不确定性处理与信任建立
不确定性可以通过提供缓冲来解决,缓冲通常以与约束相同的形式提供,如人员不足时增加人员。在供应商和客户之间建立信任的情况下,更容易就约束条件提供缓冲进行协商。信任是通过交付约定的功能逐渐建立起来的,并通过过程的透明度和相互理解来维持。
软件项目中存在四种类型的不确定性:变化、可预见、不可预见和混乱。不同类型的不确定性会影响所需缓冲的大小。同时,不应在小任务上估计缓冲,小任务存在局部安全问题,在估计缓冲大小之前聚合小任务可以减
软件生产不确定性管理与指标选择
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



