自底向上估算的主要思想是把系统进行细分,知道每一个子任务都已经明确所需要的开发工作量,然后把他们加起来,得到系统的总工作量。这是一种常见的估算方法。
自底向上估算的主要优点是,在任务和子任务上的估算更为精确,这是由于项目实施人员更了解每个子任务所需要的资源。这种方法也能够避免开发人员对管理层所估算值的不满和对立;
自底向上估算的主要缺点是,缺少各项子任务之间相互联系所需要的工作量,还缺少许多系统级工作量(例如,配置管理、质量管理等)。因此,往往估算值偏低,必须用其他方法进行检验和校正。
要保证自底向上估算的精确性,前提条件就是需要开发人员熟悉所做的子任务。这种方式的估算的关键是要保证所有的项目都要涉及到,这一点也相当困难。
另外,由于开发人员可能认为管理层会按照比例削减自己所估算的成本,或者处于“安全”的估计,他们会高估自己任务所需要的成本,而这必然导致总体成本的高估。因此,管理层会根据经验,认为需要削减开发人员的估计值,而这种削减恰恰证实了开发人员的估计。这样,项目估算就陷入了一个怪圈。