- Estimation Techniques Tutorial
- Estimation Techniques - Home
- Estimation Techniques - Overview
- Estimation Techniques - FP
- Estimation Techniques - FP Counting
- Estimation Techniques - Use-case
- Estimation Techniques - Delphi
- Estimation Techniques - Three-point
- Estimation Techniques - PERT
- Estimation Techniques - Analogous
- Estimation Techniques - WBS
- Estimation - Planning Poker
- Estimation Techniques - Testing
- Estimation Techniques Resources
- Estimation Techniques - Quick Guide
- Estimation Techniques - Resources
- Estimation Techniques - Discussion
估算技术 - 概述
估计是寻找估计值或近似值的过程,即使输入数据可能不完整、不确定或不稳定,该值也可用于某种目的。
估算确定构建特定系统或产品需要多少资金、精力、资源和时间。估计基于 -
- 过去的数据/过去的经验
- 可用文档/知识
- 假设
- 已识别的风险
软件项目估算的四个基本步骤是 -
- 估计开发产品的大小。
- 以人月或人时为单位估计工作量。
- 估计日历月的时间表。
- 以商定的货币估算项目成本。
估计观察
估算不必是项目中的一次性任务。它可以发生在 -
- 收购项目。
- 规划项目。
- 根据需要执行项目。
在估算过程开始之前必须了解项目范围。拥有历史项目数据将会很有帮助。
项目指标可以为生成定量估计提供历史视角和有价值的输入。
规划需要技术经理和软件团队做出初步承诺,因为它会带来责任和问责。
过去的经验可以提供很大帮助。
至少使用两种估计技术来得出估计值并协调结果值。请参阅下一节中的分解技术,了解协调估计的信息。
计划应该是迭代的,并允许随着时间的推移和了解更多细节而进行调整。
一般项目估算方法
广泛使用的项目估算方法是分解技术。分解技术采用分而治之的方法。通过将项目分解为主要功能或相关的软件工程活动,逐步进行规模、工作量和成本估算。
步骤 1 - 了解要构建的软件的范围。
步骤 2 - 生成软件大小的估计。
从范围声明开始。
将软件分解为每个可以单独估计的函数。
计算每个函数的大小。
通过将规模值应用于基准生产力指标来得出工作量和成本估算。
结合功能估计来生成整个项目的总体估计。
步骤 3 - 生成工作量和成本的估计。您可以通过将项目分解为相关的软件工程活动来估算工作量和成本。
确定完成项目所需执行的活动顺序。
将活动划分为可衡量的任务。
估计完成每项任务所需的工作量(以人小时/天为单位)。
结合活动任务的工作量估计来生成活动的估计。
从数据库中获取每项活动的成本单位(即成本/单位工作量)。
计算每项活动的总工作量和成本。
结合每项活动的工作量和成本估算,生成整个项目的总体工作量和成本估算。
步骤 4 - 协调估计:将步骤 3 的结果值与步骤 2 获得的值进行比较。如果两组估计值一致,则您的数字高度可靠。否则,如果出现广泛不同的估计,请进一步调查是否 -
项目的范围没有被充分理解或被误解。
功能和/或活动细分不准确。
用于估计技术的历史数据不适合应用,或已过时,或已被误用。
步骤 5 - 确定差异的原因,然后协调估计值。
估计准确度
准确性表明事物与现实的接近程度。每当您生成估计值时,每个人都想知道数字与实际情况的接近程度。考虑到生成时所拥有的数据,您将希望每个估计都尽可能准确。当然,您不希望以激发对数字的错误信心的方式来呈现估计值。
影响估计准确性的重要因素是 -
所有估计输入数据的准确性。
任何估计计算的准确性。
用于校准模型的历史数据或行业数据与您估计的项目的匹配程度。
您组织的软件开发过程的可预测性。
产品需求和支持软件工程工作的环境的稳定性。
实际项目是否经过精心策划、监控和控制,没有发生重大意外导致意外延误。
以下是一些实现可靠估计的指南 -
- 根据已完成的类似项目进行估算。
- 使用相对简单的分解技术来生成项目成本和工作量估算。
- 使用一种或多种经验估计模型来估计软件成本和工作量。
请参阅本章中的估算指南部分。
为了确保准确性,始终建议您至少使用两种技术进行估计并比较结果。
估算问题
通常,项目经理会通过估算进度来跳过估算规模。这可能是因为高层管理人员或营销团队设定的时间表。然而,无论出于什么原因,如果这样做,那么在以后的阶段将很难估计时间表以适应范围的变化。
在估计时,可以做出某些假设。重要的是要注意估计表中的所有这些假设,因为有些假设仍然没有在估计表中记录假设。
即使好的估计也有固有的假设、风险和不确定性,但它们常常被视为准确的。
表达估计的最佳方式是表示一系列可能的结果,例如,项目将需要 5 到 7 个月的时间,而不是说它将在特定日期完成或将在固定的时间内完成。几个月。注意不要承诺一个太窄的范围,因为这相当于承诺一个明确的日期。
您还可以将不确定性作为伴随的概率值包含在内。例如,项目有 90% 的概率会在确定日期或之前完成。
组织不收集准确的项目数据。由于估计的准确性取决于历史数据,因此这将是一个问题。
对于任何项目,都有一个尽可能短的时间表,使您能够包含所需的功能并产生高质量的输出。如果管理层和/或客户有进度限制,您可以就要交付的范围和功能进行协商。
与客户就处理范围蔓延达成一致,以避免进度超支。
最终估算中未能考虑到意外情况会导致问题。例如,会议、组织活动。
资源利用率应视为低于 80%。这是因为资源只能在 80% 的时间内发挥生产力。如果您以超过 80% 的利用率分配资源,必然会出现延误。
估算指南
在评估项目时应牢记以下准则 -
在估算时,询问其他人的经验。另外,将您自己的经验用于任务中。
假设资源只有 80% 的时间是高效的。因此,估算时取资源利用率低于80%。
由于在多个项目之间切换所浪费的时间,处理多个项目的资源需要更长的时间才能完成任务。
在任何估计中都包括管理时间。
始终为解决问题、会议和其他意外事件做好准备。
留出足够的时间进行适当的项目估算。仓促的估计是不准确的、高风险的估计。对于大型开发项目,估算步骤实际上应该被视为一个小型项目。
如果可能,请使用组织过去类似项目的记录数据。它将产生最准确的估计。如果您的组织没有保留历史数据,那么现在是开始收集历史数据的好时机。
使用基于开发人员的估算,因为由执行该工作的人员以外的人准备的估算将不太准确。
使用几个不同的人来估计并使用几种不同的估计技术。
核对估计值。观察估计值之间的收敛或分散。收敛意味着您获得了良好的估计。宽带德尔菲技术可用于让一群人收集和讨论估计值,目的是产生准确、公正的估计值。
在项目的整个生命周期中多次重新评估项目。