较之瀑布等传统项目管理模式,敏捷是“适应性的”,而非“预设性的”。团队采用敏捷项目管理可以提高交付速度、协作效率、以及响应市场变化的能力。所以这里将向大家详细介绍敏捷项目管理的定义、与传统项目管理的区别,以及一些主流的敏捷项目框架的工作流程。
一、什么是敏捷项目管理
敏捷项目管理是一种软件研发项目的迭代方法,它注重持续交付,并在不断迭代中快速响应客户的反馈和需求。研发团队采用敏捷项目管理可以提高交付速度、协作效率、以及响应市场变化的能力。
如果您准备实践或者优化敏捷项目管理,可以通过以下系列文章获得启发。
二、敏捷项目管理与瀑布等传统项目管理的区别
由于软件行业在不断的发展过程中遇到各种各样的危机,如超预算、工期延期并最终因为市场变更导致项目夭折等等;许多学者都在探索不同的软件开发方式来应对这些危机,例如:极限编程、特征驱动开发等等。
也正是这个时候软件开发团队开始使用一些符合敏捷价值观的方法,以减少资源浪费、增加团队透明度,以及快速响应市场不断变化的需求。
较之瀑布模式,敏捷是“适应性的”,而非“预设性的”,所以在不确定性的市场环境下,敏捷项目管理可以帮助软件团队更好地协作、更快地进行迭代创新。
瀑布式项目管理:将软件生命周期划分为制定计划、需求分析、软件设计、程序编写、软件测试和运行维护等几大基本活动;且规定了它们自上而下、相互衔接的固定次序,项目必须严格遵循预先计划的顺序进行,开发进程只有通过上一个阶段的验收审核,才能“流动”到下一个阶段。这种模式如同瀑布流水,逐级下落,故而得名“瀑布模式(Waterfall Model)”。
目前,敏捷项目管理有两种最为主流的理论框架:Scrum 和 Kanban。Scrum 着重于固定周期的项目迭代,而看板着重于工作持续交付。两者都注重速度,一旦完成当前工作量,研发团队会迅速开始下一个工作。
三、Scrum 的工作方式
Scrum 是一个敏捷项目管理理论框架,它通过多个固定周期的迭代(Sprint)开展工作,每个迭代都有四个主要会议。
迭代会从待办事项列表(Product Backlog)或目标任务开始。在迭代中,待办事项列表有两种:一种是产品待办事项列表(由产品负责人负责),这是产品功能的优先级列表;另一种是迭代待办事项列表,从产品待办事项列表获取目标任务安排到迭代,直至达到当前团队在一个迭代中能够完成的工作量上限。
在迭代中,Scrum 团队根据职责可以分为三种不同角色。通常为一名敏捷教练(Scrum Master),负责团队的敏捷开发指导;一名产品负责人(Product Owner),负责产品规划;以及开发团队,他们通常跨职能协作,负责迭代任务的执行和交付。
1、Scrum 四大会议
2、Scrum 看板
Scrum 的迭代看板可以让团队一目了然地了解当前迭代所有任务的进度。在迭代计划会议中,研发团队会将目标任务从产品待办任务列表中移到迭代待办任务列表。在迭代看板中可以看到多个工作流状态,比如未开始、进行中和已完成等。Scrum 板是提高敏捷项目管理透明度的关键要素之一。
四、看板(Kanban)方法的工作方式
Kanban 是另一个敏捷项目管理的理论框架,它根据团队能力情况匹配工作量,着重于团队的快速交付,可以让研发团队做出比 Scrum 更迅速的变化响应。
与 Scrum 不同的是,Kanban 通常没有待办事项列表。任务一般安排在看板的”待办栏”中,随时可以执行和完成,以便 Kanban 团队能够专注于任务的持续交付。看板上的所有任务都可以让团队每位成员看到,而且具有规范的工作流程和进度;当某项任务完成后,研发人员可以马上就进行下一项任务。Kanban 通过在制品限制(WIP limits)来根据团队能力分配工作量,这是根据团队情况提前设置好的,对于每个看板栏里的可放置任务数量进行合理限制(待办栏没有限制)。
1、看板的四大组成部分
2、看板
看板可以让所有任务的工作进度一目了然。它还可以用来规划工作,帮助项目负责人根据团队情况制定计划。看板由代表着任务不同状态的看板栏组成,任务只有符合看板栏的在制品限制规则才能进入看板栏中,否则会继续被放置在待办栏里。Kanban 的待办栏任务会被划分为小颗粒度的任务,然后根据优先级来安排工作。
如示例图中的看板,通过“泳道”来区分高优先级和其他优先级的任务。
五、敏捷项目管理中估算、报表和规划的重要性
无论选择使用哪种敏捷方法进行研发项目的管理,都需要通过一种方式跟进团队的进展来进行长期规划以及迭代规划。敏捷项目估算可以让 Scrum 团队和 Kanban 团队了解自身工作能力;敏捷报表可以随时反映团队效率;待办事项列表可以让项目负责人保持工作列表的最新状态,以便团队随时能够处理。
1、敏捷项目估算
项目估算是 Kanban 和 Scrum 两种敏捷项目管理方式极为重要的一环。大多数的 Kanban 团队根据工作经验和团队规模来设置每个看板状态栏的在制品限制,而 Scrum 团队使用的是项目估算来确定每个迭代期间可以完成多少工作量。
很多敏捷开发的团队会采用特定的一些估算方式,如扑克牌估算、理想时间估算或故事点估算等来估算当前任务的所需工作量。项目估算为敏捷团队提供了参考,比如在迭代回顾会议上就可以对比了解团队的预期完成和实际完成任务的情况。
2、敏捷报表
估算可以帮助研发团队在迭代开始时确定目标工作量,以及在迭代结束回顾时验证估算的准确性。但使用敏捷相关报表,例如燃尽图,可以帮助团队了解在迭代中完成了多少“故事点”。
比如,以下是工具 PingCode 提供的多种维度报表,如团队速度、成员负荷报等,支持查看实时数据,自定义配置维度,用数据复盘帮助敏捷团队快速迭代优化。
3、待办列表的管理
产品待办事项列表( Product Backlog)是敏捷团队的工作优先级列表,列表的任务来源于产品路线图。研发团队的迭代任务都要从产品待办事项列表中获取,因此有效管理您的产品待办事项列表可以帮助团队达成更长远的目标,如根据团队情况不断调整迭代目标,以及根据市场需求调整业务目标等。
例如,我们自己就是通过 PingCode 的产品需求规划列表和迭代任务列表快速规划任务和跟踪任务进度,除此以外,还有新建任务、设置列表自定义表头展示字段、列表视图切换和排序、以及搜索和筛选任务等等可以使用。
以上就是关于敏捷项目管理的全部内容,希望能带给你一些帮助。