在敏捷项目管理的实践中,有三个重要的原则需要被遵守:流程至上,工具辅助;开发流程需具备可复用性;正确实践应能被复制传播。很多时候,人们在选择或使用敏捷项目管理工具时容易忽略开发流程中的核心元素。对“流程”这一原则进行详细阐述尤为重要,其目的在于帮助大家建立对开发流程的全面认识。
我们可以尝试将现有的开发流程分解为三个主要组成部分。
流程框架图中涵盖的要素涉及工作、人员、计划等方面,它们在敏捷开发管理过程中需要不断地进行复用。接下来,我们将深入探讨这三个要素及其需要注意的方面。
要素一:工作
工作要素主要关注“是什么”的问题,包括功能开发、用户故事、任务分配以及Bug修复等。
1.当前使用的工作项是什么?开发流程中如何对工作进行分解?工作项的层级结构是怎样的?下面以一个实例来帮助理解层级结构:从宏观的构思(想法/问题)到具体的执行(史诗/产品/项目/功能/用户故事/任务)。
2.工作项之间存在哪些依赖关系?除了层级分解外,是否需要在管理工具中考虑其他形式的依赖关系?
3.如何界定一个项目或工作项的完成状态?是否需要设定明确的完成标准或与时间线相绑定?是否需要为工作项设置多种最终状态(如已完成、已解决等)?
要素二:人员
人员要素主要涉及“角色”问题,包括开发团队成员、产品负责人、项目主管以及最终用户等。
1.团队成员的管理方式是怎样的?团队功能是否存在重叠?是专门的功能团队、项目团队,还是部门协作,或者没有明确的团队划分?
2.各团队的开发流程是否一致?是否在某些情况下需要多个团队协同工作至“史诗”或“用户故事”层级?
3.非直接参与开发团队或项目的角色,如客户和经理,是否也需要了解并遵循工作流程?
要素三:计划
计划要素主要关注时间安排,涉及发布计划、迭代管理等。
1.如何进行backlog管理?backlog项的来源是什么?应如何系统地整理backlog?
2.是否存在交叉项目(或交叉团队)的发布计划?是否有并行进行的迭代或发布?项目是否被分解为不同的执行阶段(如UX设计、原型制作、功能开发等)?
3.使用的报告类型是什么?这是非常重要的一点。必须确认所选工具是否提供了所需的全部报告功能。