更多文章请关注 https://teobler.com
敏捷发展至今已经有无数分支,这些分支的发展有些是为了应对不同项目增删改了一些实践和规则,使得敏捷能够应用在一些特殊的项目上。而另一些则是一些人想接敏捷之手宣传自己的思想与实践,强行在敏捷中加入了自己的想法。这些原因使得如今的敏捷五花八门,甚至出现两人在谈论完全不一样的敏捷。
在接下来的文章中,所有敏捷实践将会使用极限编程来作为例子。这是因为在所有敏捷过程中,极限编程是定义最完整且最不混乱的。可以说其他的敏捷过程都是极限编程的子集或变体。极限编程是敏捷本质核心的原型,也是最好的代表。
生命之环
极限编程的生命之环由三个环构成。
最外层是极限编程的业务实践,同时也可以说是 Scrum 最初的构想,这些实践为软件开发团队和业务团队提供了一套管理和沟通的框架。
中间一层是团队实践,他们提供了开发团队内进行沟通和管理的框架。
最内层是技术实践,用来约束和指导程序员们,来确保得到最高的技术质量。
可以发现敏捷宣言中的每一句话都能在生命之环中找到体现的实践。这篇文章我们先从最外层的业务实践入手,看看敏捷在实践的时候是怎样一步步影响项目的走向的。
计划游戏(Planning Game)
计划游戏是极限编程生命之环外圈的一个业务实践,它主要指的是IPM以及为了支撑IPM的一系列实践,比如估点,故事优先级排列以及速率预估和检查等等。
为了能够大概知道项目会在什么时候完结,往往会在项目开始前或每个迭代(一般两周为一迭代,不同项目可以调整迭代时长)开始前对接下来的工作进行大概的估算。
这里的估算会将接下来的任务拆分成一个个独立的子任务(story),然后对这些独立的子任务的复杂度进行估算。需要明确的是,这里的复杂度并不直接代表该任务完成所需的时间,复杂度不代表一个任务完成需要多少人/天。
估算注定是不准确的,但是估算应该在精度适当的前提下尽量确切
故事
什么是故事
上面提到的子任务在敏捷实践中被叫做故事。故事通常会对该系统功能有一个简略的描述,这个描述在不同的团队中会有不同的规范。
- 有的团队可能喜欢
作为驾驶员,为了提高速度,我需要踩下油门
这样的given whtn then