卡尔加里APLN规划会议
敏捷估计 - 估算方法

敏捷估计 - 前期估计

agile_estimation_2 这是敏捷估计的几个帖子中的第一个。我要感谢Boris Mutafelija提交主题请求,而在敏捷估计上有很多写作;它是一个又一次的地区。今天我将涵盖大图片视图和前期估计。

首先,我们需要了解,估计软件项目将永远是有问题的。如果它是传统的项目或敏捷的项目,软件开发项目是独一无二的(我们不会反复构建相同的系统),并使前期要求棘手的评估困难也令人艰难地制作范围和估计。因此,接近任何方法的问题和局限性的问题,请记住,早期估计将有广泛的可变性。

estisms_convergences_2jpg_2

(Barry Boehm的估计收敛图

接下来,我们需要在项目开始时接受,估算方法将类似于敏捷或传统项目。由此,我的意思是我们很少继续,可能没有为确切的团队承担工作的生产力数据,并且只有一个粗大的项目范围和复杂性的粗粒度。一旦我们完成了一些迭代并开始衡量真正的项目速度,敏捷项目变得更加容易估计,但是在开始时,我们与传统项目的开始是与传统项目相同的困境。估计与未经证实的团队建立前所未有的系统所需的时间。

随着项目的进展和实际项目速度指标开始出现,我们可以将此数据用作预测当我们真正完成时的手段。使用项目速度数据的优点是从实际项目性能而不是预计或理论模型中导出的。如果我们只在一个月内完成50个故事,并且项目中剩下200个楼层,那么它可能需要我们大约4个月的时间来完成开发。这可能不是我们想要听到的答案,但它至少基于真实的性能。在通过模型和公式估算时,我们有时被压迫以支持预测最有可能的理想结果的模型。

当然,从第一个迭代中出现的速度指标不会代表后续迭代速度。在项目团队的早期是新的,仍然通过成型,规范,镇力的团队发展阶段。此外,项目环境(工具和技术)可能仍然是许多并且很多时间可能会在迭代零,基础设施类型的工作中投入很多时间。然而,这些早期工作活动的比例很快,在长时间逼真的速度表面之前。我们的估算方法应该镜像这种更好的数据的出现。早期我们必须更依赖传统技术,然后稍后可以转换更多的速度指标,如下所示。

估计_Approach_Slider.

那么,在项目LifeCysle的早期,我们需要为我们的敏捷项目使用这些传统估算技术是什么?嗯,任何和所有经典的经典,包括:

  • 与类似项目的比较
  • 功能点或故事点
  • 底层估计任务
  • 专家判断
  • 基于团队的方法

所有这些方法都有一些优点,一切都很容易批评。然而,在项目的开头,我们别无他别继续。估计我们应该记住并试图考虑两件事:

1)没有一个估计技术是完美的(甚至非常好)
2)没有人产生完美的估计(甚至非常好)

两种技术和人都有缺陷,但我们可以通过使用多种估计技术来减轻这些缺陷的影响,并通过在估计过程中参与几个人来实现这些缺陷的影响。

在我们可以在不同的方法和意见之间找到融合,我们应该最大限度地减少每个组件的限制(或者至少让自己尽可能多地控制我们,这不仅仅是我们的错!)

estisms_conmergence.

下次我们将查看浏览域等估计方法,如宽带Delphi,规划扑克,用例点和故事点。在那之前,请记住,虽然估计对项目至关重要,但它们的质量将与他们的输入数据(通常差)使用(通常太少)和人民(再次,通常太少)一样好。所以,尝试努力,经常基准现实,并尽可能多地参与(分享责备!)

注释

 迈克是最好的

感谢您对估计的讨论。在敏捷社区中发现它仍然非常需要。但是,我希望在这个系列中,您讨论了更难度的估计,Sprint内的任务估计。用于估算任务的技术似乎更少讨论而不是估计故事的讨论。

 适华

谢谢你开始这个讨论。面临的困境是我猜在迭代和任务规划中,就应该是什么粒度。它是基于团队的,需要,是的,但有些指导方针可以有所帮助。
此外,除了核心任务之外,还有额外的努力在合作,沟通等中花费。一个人如何迎合这些?开销?

 迈克格里菲斯

嗨Mike和Amukherjee,

谢谢你们对你的反馈和观察。我很高兴在敏捷估计上写下额外的帖子,但想澄清您的积分。

迈克,你说你想要有关估计任务而不是故事的信息。我想了解你的定义,因为这些方法之间的这些变化。在你的脑海里是故事(面向商业价值观)分解成任务(技术步骤)或您有不同的区别吗?

Amukherjee,我认为你在询问会议,行政等的非发展专注的开销是正确的吗?

请把我的快速注释放在这里或迈克(at)persenceanswers(dot)com,确认或澄清,我很乐意在这些领域展开帖子。

最好的祝福
麦克风

此项对应的评论被关闭。