如何减少不确定性锥?
Posted: Mon Feb 17, 2025 8:28 am
在许多项目中,我们发现自己需要更多的时间来进行估算,这使我们更容易减少不确定性并了解项目的更多细节,但现实情况是,软件估算的精度取决于软件定义的精细度,也就是说,它完全取决于产品所有者或客户所掌握的信息。定义越精细,估计越准确。估计包含可变性的原因是软件项目本身包含可变性。减少估算变异的唯一方法是减少项目本身的变异。
一个重要而困难的概念是,不确定性锥代表了项目不同点的软件估算的最佳可能精度。
圆锥体表示更佳估计值的另一种方式是,如果项目控制不佳或估计量不太准确, instagram 数据库 则估计值可能不会像圆锥体所示的那样改善。下图显示了当项目没有以减少变化的方式执行时发生的情况:不确定性不是一个锥体,而是一个持续到项目结束的云。问题实际上不在于估计值不收敛;问题在于项目本身没有收敛,也就是说,它没有消除足够的变异性来支持更准确的估计。
不确定性锥与承诺之间的关系
很多情况下,我们因为在不确定的情况下过早做出承诺而无意中破坏了自己。
如果组织在初始概念或产品定义时做出承诺,他们的估计中的误差因素将为 2 倍到 4 倍。项目过早做出的承诺会破坏可预测性、增加风险、导致项目效率低下,并削弱管理项目直至完成的能力。
在锥体的早期和广阔部分,不可能进行有意义的接触。解决方案是推迟承诺,直到完成必要的工作以强制降低锥度。最有效的解决方案之一是在项目开发之前进行咨询,以确保产品的初始概念和定义。重大承诺应在预计项目时间的大约 30% 时做出,以确保合理和准确。
不确定性锥和迭代开发
在许多项目中,团队都会达成一种妥协,即大多数需求在项目开始时就已定义,但设计、开发、测试和部署都是在短迭代中完成的。换句话说,项目按顺序进展到“用户界面设计完成”里程碑(约占项目进度的 30%),然后从那时起转向更加迭代的方法。这将由锥体得出的变异性降低到大约±25%,从而使项目控制足够好以实现目标,同时利用迭代开发的主要优势。项目团队可能会在项目结束时留出一定数量的计划时间用于尚未确定的需求。这种中间立场支持成本和时间的长期可预测性,以及需求的适度灵活性。
结论
不确定性锥是理解和管理软件项目估算中的变化的有价值的工具。通过认识和管理这种变化,开发团队可以做出更现实的承诺,并在项目规划和执行中实现更高的准确性。采用迭代实践有助于平衡长期可预测性和实施需求的灵活性,从而实现更有效、更成功的项目控制。
一个重要而困难的概念是,不确定性锥代表了项目不同点的软件估算的最佳可能精度。
圆锥体表示更佳估计值的另一种方式是,如果项目控制不佳或估计量不太准确, instagram 数据库 则估计值可能不会像圆锥体所示的那样改善。下图显示了当项目没有以减少变化的方式执行时发生的情况:不确定性不是一个锥体,而是一个持续到项目结束的云。问题实际上不在于估计值不收敛;问题在于项目本身没有收敛,也就是说,它没有消除足够的变异性来支持更准确的估计。
不确定性锥与承诺之间的关系
很多情况下,我们因为在不确定的情况下过早做出承诺而无意中破坏了自己。
如果组织在初始概念或产品定义时做出承诺,他们的估计中的误差因素将为 2 倍到 4 倍。项目过早做出的承诺会破坏可预测性、增加风险、导致项目效率低下,并削弱管理项目直至完成的能力。
在锥体的早期和广阔部分,不可能进行有意义的接触。解决方案是推迟承诺,直到完成必要的工作以强制降低锥度。最有效的解决方案之一是在项目开发之前进行咨询,以确保产品的初始概念和定义。重大承诺应在预计项目时间的大约 30% 时做出,以确保合理和准确。
不确定性锥和迭代开发
在许多项目中,团队都会达成一种妥协,即大多数需求在项目开始时就已定义,但设计、开发、测试和部署都是在短迭代中完成的。换句话说,项目按顺序进展到“用户界面设计完成”里程碑(约占项目进度的 30%),然后从那时起转向更加迭代的方法。这将由锥体得出的变异性降低到大约±25%,从而使项目控制足够好以实现目标,同时利用迭代开发的主要优势。项目团队可能会在项目结束时留出一定数量的计划时间用于尚未确定的需求。这种中间立场支持成本和时间的长期可预测性,以及需求的适度灵活性。
结论
不确定性锥是理解和管理软件项目估算中的变化的有价值的工具。通过认识和管理这种变化,开发团队可以做出更现实的承诺,并在项目规划和执行中实现更高的准确性。采用迭代实践有助于平衡长期可预测性和实施需求的灵活性,从而实现更有效、更成功的项目控制。