Olga Kouzina认为使用敏捷项目管理工具需要遵守三个原则:流程优先,工具次之;开发流程需可复用;正确做法需可复制。因为人们在选择或使用敏捷项目管理工具时,往往会忽略开发流程中的某些关键要素,所以他重点对第一个原则中提到的“流程”进行了介绍,以期帮助大家对开发流程有个更加完整的认识。
首先,我们可尝试将现有开发流程分解为3个部分:
上图中的框架几乎覆盖了开发流程中的三个关键要素:工作、人、计划,它们也都是在敏捷开发管理工具中要不断复用的要素。下面我们具体看看这三个要素都有哪些需要注意的地方。
要素一:工作
主要是“是什么”的问题,涉及了功能、用户故事、任务、Bug等。
- 你正在使用哪个工作项?开发流程中工作如何分解?工作项需要多少个层级?下面,我们可以看一个例子,来对层级结构进行了解:想法(问题)→史诗(Epic)→产品→项目→功能→用户故事(User Story)→任务。
- 工作项之间需要什么依赖?除了层级分解外,我们是否需要在管理工具中复用其他依赖?
- 如何定义一个项目或工作项结束了?我们是否需要指定一个完成范围,或者将项目与时间捆绑起来?我们是否需要为工作项的设置多个最终状态(如已完成、已解决?)
要素二:人
主要是“是谁”(角色)的问题,涉及开发团队、产品负责人、项目主管、用户等。
- 团队成员如何管理?团队功能是否有交叉?是功能团队、项目团队、部门还是压根就没有团队?
- 每个团队的开发流程是一样的吗?我们是否在必要时安排几支团队到“史诗”或“用户故事”层级中?
- 未在开发团队或项目中的“鸡”组角色是否也需要了解工作流程?如客户、经理?
要素三:计划
时间问题,涉及发布、迭代。
- 我们如何进行backlog管理?backlog项都来自哪里?我们应如何整理backlog?
- 项目/发布/迭代:我们是否有交叉项目(或交叉团队)的发布?是否有并行迭代或发布?我们是否将项目分解为多个阶段执行了呢(如UX、原型、功能设计)?
- 我们在使用哪个报告?这个非常重要。一定要检查工具是否具备了我们所需的全部报告?
可能上面没有举出所有需要注意的问题,但这里提供的3个关键要素(工作、人、计划)可以帮助我们在选择或使用敏捷开发管理工具时更加全面地把握开发流程,不致于只根据部分要素就做出选择。