FivePoundBag

2005年10月13日

你不能把十磅的屎装进五磅的袋子里

——任何试过的人

当Kent和我写Planning Extreme Programming时,我们加入了这句异想天开的引用,以帮助了解规划的本质。

软件开发的一个大问题是,人们几乎不知道在有限的时间内究竟能188比分直播完整手机版做什么。我们经常看到很多功能被塞进一个包里,却不知道它是否适合。人的欲望就是这样,袋子通常都太小了。我非常喜欢Kent的计划方法的一个原因是,它提供了一种简单的机制来处理这个问题。

原理其实很简单。您将项目的时间划分为迭代。您将请求的功能划分为特性(或者故事,XP喜欢这样称呼它们)。您估计每个特性需要做多少工作。你要跟踪你在每个迭代中完成了多少,你不会在一个迭代中放入比适合的更多的特性。XP的发布计划是关于决定在哪个迭代中使用哪个特性。

像很多事情一样,这是一个人的过程。在最近的一次会议上,我的同事蒂姆·麦金农(Tim Mackinnon)谈到,让一些交易员与开发团队一起工作,在帮助他们对可以构建什么有一个现实的认识方面,产生了巨大的不同。交易员们仍然是全职进行交易,但通过co-location所发生的非正式交流使一切都不同了。

人们经常将敏捷方法描述为反计划的。然而,当我第一次看到极限编程的幼虫状态时,它的规划质量给我留下了最深刻的印象。特别地,该计划的简单性质使得在项目中插入额外的功能而不必面对它们的后果变得困难。这是敏捷方法的自适应计划的本质——计划经常变化,但以可控的方式。如果你想增加一个功能,你总是要问“我应该拿出什么来腾出空间?”所以,如果你看到某个敏捷项目在没有思考的情况下添加了一些功能,没有为它们留出空间;你可以有把握地断定计划做得很糟糕。