迭代的规划
在敏捷开发中比较常用的scrum强调的是增量,而agile强调的是迭代。在我们实际工作中,根据项目情况我们往往采用混合方式。
迭代的规划算是一个项目中非常重要的一环,一个迭代就是一个小周期。把迭代规划好,能快速应变需求的变动,提前交付部分功能,甚至有利于建立起开发节奏,让迭代更高效。
功能迭代规划
我们经常都会遇到一些新项目,开发周期经常由几个月到几年不等,而且项目中需求方还经常突发其想来点新元素,项目开发周期长,短时间无结果,风险多,无法应对变化等等问题接着凸显出来。
或者一些老项目会有一些变化较大的功能,开发周期在几周到几个月不等。同理,一样的问题存在。
在遇到这样的情况的时候,就需要考虑是否可以敏捷一点。
首先,大版本功能多,逻辑关系复杂,我们需要第一时间梳理出核心功能和非核心功能以及功能的可替代方案。
其次,根据梳理出来的核心功能与非核心功能再次建立优先级,哪些是即重要又紧急的,哪些是重要不紧急的,哪些既不重要也不紧急的。
再次,对这些已排好优先级的功能按照顺序进行功能耦合度再次划分,就像一个个有顺序的桶,每个桶里面装有几个功能。
最后对每个桶进行大概的工期评估,人员评估。那么迭代就基本上划分出来了。当然这只是一个正常顺序,但是已经能够解决大部分迭代问题。
这样的迭代方式往往不是由一个项目经理完成的,可能需要项目经理和产品经理一起确定,或者项目成员一起参与,了解整个项目开发迭代以及每个里程碑。
应对需求变化
经过这样的迭代规划后,一些需求变更或者紧急需求插入,都能比较好的应对。因为迭代周期的缩短,可能一个迭代只需要开发一周,甚至有些迭代只需要3天,一个新的紧急需求可以随时进入,在保质保量的情况下还能保证开发节奏。
多迭代同时进行
因为迭代的相干性变弱,人员的合理安排,我们甚至可以几个迭代同时进行。功能的纯粹性会让我我们无论是测试还是开发合并代码,再到发布新版本,都不会有太多冲突,稳定高效的输出,加快项目进度。
迭代注意事项
- 每个迭代应该保证功能的纯粹性,不要太过于交错冗杂;
- 每个迭代的开发周期控制在合理范围内,比如几天,一周,两周,都可以;
- 多个迭代同时并行需要考虑每个迭代之间人员的安排不冲突;
- 每个迭代的需求是清晰明了的
- 需要考虑迭代与迭代之间的代码功能是否冲突
- 每个迭代的风险点需要思考到位,不要为其他迭代埋下隐患;
- 迭代就是一周节奏,每个时间节点和里程碑都应该让项目组成员知晓。