估算技术 - 概述



估算是指找到一个估计值或近似值的过程,即使输入数据可能不完整、不确定或不稳定,该值也可以用于某些目的。

估算确定构建特定系统或产品需要多少资金、精力、资源和时间。估算基于 -

  • 历史数据/以往经验
  • 可用文档/知识
  • 假设
  • 已识别的风险

软件项目估算的四个基本步骤是 -

  • 估算开发产品的规模。
  • 估算以人月或人时为单位的工作量。
  • 估算以日历月为单位的进度安排。
  • 估算以约定货币为单位的项目成本。

关于估算的观察

  • 估算不一定是项目中的一次性任务。它可以在以下期间进行 -

    • 获取项目。
    • 计划项目。
    • 根据需要执行项目。
  • 在估算过程开始之前必须了解项目范围。拥有历史项目数据将有所帮助。

  • 项目指标可以提供历史视角和生成定量估算的宝贵输入。

  • 计划要求技术经理和软件团队做出初步承诺,因为它会导致责任和问责制。

  • 过去的经验可以极大地帮助。

  • 使用至少两种估算技术得出估算结果,并协调所得值。请参阅下一节中的分解技术,了解如何协调估算。

  • 计划应具有迭代性,并允许随着时间的推移和更多细节的了解进行调整。

通用项目估算方法

广泛使用的一种项目估算方法是分解技术。分解技术采用分而治之的方法。规模、工作量和成本估算通过将项目分解成主要功能或相关的软件工程活动,以逐步的方式进行。

步骤 1 - 了解要构建的软件的范围。

步骤 2 - 生成软件规模的估算。

  • 从范围说明开始。

  • 将软件分解成可以分别估算的功能。

  • 计算每个功能的规模。

  • 通过将规模值应用于您的基线生产力指标来推导出工作量和成本估算。

  • 组合功能估算以生成整个项目的总体估算。

步骤 3 - 生成工作量和成本的估算。您可以通过将项目分解成相关的软件工程活动来得出工作量和成本估算。

  • 确定为了完成项目而需要执行的活动序列。

  • 将活动分解成可以测量的任务。

  • 估算完成每个任务所需的工作量(以人时/天为单位)。

  • 组合活动任务的工作量估算以生成该活动的估算。

  • 从数据库中获取每个活动的成本单位(即,成本/单位工作量)。

  • 计算每个活动的工作量总和和成本总和。

  • 组合每个活动的工作量和成本估算,以生成整个项目的总体工作量和成本估算。

步骤 4 - 调和估算:将步骤 3 中得出的值与从步骤 2 中获得的值进行比较。如果这两组估算结果一致,则您的数字非常可靠。否则,如果出现差异很大的估算结果,请进一步调查以下问题 -

  • 项目的范围没有得到充分理解或被误解。

  • 功能和/或活动分解不准确。

  • 用于估算技术的历史数据不适用于应用程序,或已过时,或已被误用。

步骤 5 - 确定差异的原因,然后协调估算。

Explore our latest online courses and learn new skills at your own pace. Enroll and become a certified expert to boost your career.

估算准确性

准确性是指某事物与现实有多接近的指标。每当您生成估算时,每个人都想知道这些数字与现实有多接近。您希望每个估算都尽可能准确,前提是在生成估算时您掌握的数据。当然,您不希望以一种会让人对数字产生错误的信心感的方式来呈现估算。

影响估算准确性的重要因素包括 -

  • 所有估算输入数据的准确性。

  • 任何估算计算的准确性。

  • 用于校准模型的历史数据或行业数据与您正在估算的项目匹配的程度。

  • 您组织的软件开发过程的可预测性。

  • 产品需求和支持软件工程工作的环境的稳定性。

  • 实际项目是否经过精心计划、监控和控制,以及是否发生导致意外延迟的重大意外。

以下是一些实现可靠估算的指南 -

  • 将估算基于已经完成的类似项目。
  • 使用相对简单的分解技术生成项目成本和工作量估算。
  • 使用一个或多个经验估算模型进行软件成本和工作量估算。

请参阅本章关于估算指南的部分。

为了确保准确性,建议您始终使用至少两种技术进行估算并比较结果。

估算问题

通常,项目经理会诉诸于估算进度安排,而跳过估算规模。这可能是由于高层管理或营销团队设定的时间限制。但是,无论原因是什么,如果这样做,那么在后期将难以估算进度安排以适应范围变更。

在估算过程中,可能会做出某些假设。重要的是在估算表中记录所有这些假设,因为有些人仍然不会在估算表中记录假设。

即使是好的估算也存在固有的假设、风险和不确定性,但它们常常被当作准确的对待。

表达估算的最佳方法是将其表示为一系列可能的结果,例如,说项目需要 5 到 7 个月才能完成,而不是说它将在特定日期完成或将在固定数量的月份内完成。警惕做出范围过窄的承诺,因为这相当于做出明确的日期承诺。

  • 您还可以将不确定性作为伴随的概率值包含在内。例如,项目在特定日期或之前完成的概率为 90%。

  • 组织不会收集准确的项目数据。由于估算的准确性取决于历史数据,因此这将是一个问题。

  • 对于任何项目,都存在一个最短的可能进度安排,它将允许您包含所需的功能并产生高质量的输出。如果管理层和/或客户有进度约束,您可以协商要交付的范围和功能。

  • 与客户就处理范围蔓延达成一致,以避免进度延误。

  • 在最终估算中未能考虑应急措施会导致问题。例如,会议、组织活动。

  • 资源利用率应考虑低于 80%。这是因为资源只有 80% 的时间才能有效率。如果您分配的资源利用率超过 80%,则必然会出现偏差。

估算指南

在估算项目时,应牢记以下指南 -

  • 在估算过程中,询问其他人的经验。此外,也要发挥自身经验的作用。

  • 假设资源只有 80% 的时间才能有效率。因此,在估算过程中,将资源利用率视为低于 80%。

  • 在多个项目上工作的资源由于在项目之间切换而花费的时间导致任务完成时间更长。

  • 在任何估算中都应包含管理时间。

  • 始终为解决问题、开会和其他意外事件留出足够的时间。

  • 留出足够的时间进行适当的项目估算。仓促的估算是不准确的、高风险的估算。对于大型开发项目,估算步骤实际上应该被视为一个小型项目。

  • 在可能的情况下,使用组织类似过去项目的记录数据。这将产生最准确的估算。如果您的组织没有保留历史数据,现在是开始收集数据的好时机。

  • 使用开发人员的估算,因为由非工作者估算的准确性会较低。

  • 使用多个人进行估算,并使用多种估算技术。

  • 协调估算。观察估算结果的收敛或分散。收敛意味着您已经获得了良好的估算。宽带德尔菲技术可用于使用一组人员收集和讨论估算,目的是产生准确、无偏见的估算。

  • 在项目的整个生命周期中多次重新估算项目。

广告