估算技术 - 概述


估计是寻找估计值或近似值的过程,即使输入数据可能不完整、不确定或不稳定,该值也可用于某种目的。

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

  • 过去的数据/过去的经验
  • 可用文档/知识
  • 假设
  • 已识别的风险

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

  • 估计开发产品的大小。
  • 以人月或人时为单位估计工作量。
  • 估计日历月的时间表。
  • 以商定的货币估算项目成本。

估计观察

  • 估算不必是项目中的一次性任务。它可以发生在 -

    • 收购项目。
    • 规划项目。
    • 根据需要执行项目。
  • 在估算过程开始之前必须了解项目范围。拥有历史项目数据将会很有帮助。

  • 项目指标可以为生成定量估计提供历史视角和有价值的输入。

  • 规划需要技术经理和软件团队做出初步承诺,因为它会带来责任和问责。

  • 过去的经验可以提供很大帮助。

  • 至少使用两种估计技术来得出估计值并协调结果值。请参阅下一节中的分解技术,了解协调估计的信息。

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

一般项目估算方法

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

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

步骤 2 - 生成软件大小的估计。

  • 从范围声明开始。

  • 将软件分解为每个可以单独估计的函数。

  • 计算每个函数的大小。

  • 通过将规模值应用于基准生产力指标来得出工作量和成本估算。

  • 结合功能估计来生成整个项目的总体估计。

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

  • 确定完成项目所需执行的活动顺序。

  • 将活动划分为可衡量的任务。

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

  • 结合活动任务的工作量估计来生成活动的估计。

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

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

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

步骤 4 - 协调估计:将步骤 3 的结果值与步骤 2 获得的值进行比较。如果两组估计值一致,则您的数字高度可靠。否则,如果出现广泛不同的估计,请进一步调查是否 -

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

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

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

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

估计准确度

准确性表明事物与现实的接近程度。每当您生成估计值时,每个人都想知道数字与实际情况的接近程度。考虑到生成时所拥有的数据,您将希望每个估计都尽可能准确。当然,您不希望以激发对数字的错误信心的方式来呈现估计值。

影响估计准确性的重要因素是 -

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

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

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

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

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

  • 实际项目是否经过精心策划、监控和控制,没有发生重大意外导致意外延误。

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

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

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

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

估算问题

通常,项目经理会通过估算进度来跳过估算规模。这可能是因为高层管理人员或营销团队设定的时间表。然而,无论出于什么原因,如果这样做,那么在以后的阶段将很难估计时间表以适应范围的变化。

在估计时,可以做出某些假设。重要的是要注意估计表中的所有这些假设,因为有些假设仍然没有在估计表中记录假设。

即使好的估计也有固有的假设、风险和不确定性,但它们常常被视为准确的。

表达估计的最佳方式是表示一系列可能的结果,例如,项目将需要 5 到 7 个月的时间,而不是说它将在特定日期完成或将在固定的时间内完成。几个月。注意不要承诺一个太窄的范围,因为这相当于承诺一个明确的日期。

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

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

  • 对于任何项目,都有一个尽可能短的时间表,使您能够包含所需的功能并产生高质量的输出。如果管理层和/或客户有进度限制,您可以就要交付的范围和功能进行协商。

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

  • 最终估算中未能考虑到意外情况会导致问题。例如,会议、组织活动。

  • 资源利用率应视为低于 80%。这是因为资源只能在 80% 的时间内发挥生产力。如果您以超过 80% 的利用率分配资源,必然会出现延误。

估算指南

在评估项目时应牢记以下准则 -

  • 在估算时,询问其他人的经验。另外,将您自己的经验用于任务中。

  • 假设资源只有 80% 的时间是高效的。因此,估算时取资源利用率低于80%。

  • 由于在多个项目之间切换所浪费的时间,处理多个项目的资源需要更长的时间才能完成任务。

  • 在任何估计中都包括管理时间。

  • 始终为解决问题、会议和其他意外事件做好准备。

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

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

  • 使用基于开发人员的估算,因为由执行该工作的人员以外的人准备的估算将不太准确。

  • 使用几个不同的人来估计并使用几种不同的估计技术。

  • 核对估计值。观察估计值之间的收敛或分散。收敛意味着您获得了良好的估计。宽带德尔菲技术可用于让一群人收集和讨论估计值,目的是产生准确、公正的估计值。

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