在一个瞬息万变的时代中,作为一种灵活应变的开发方法,“敏捷”已经在全球范围内得到了普遍的运用。比如Google、Facebook还有国内的微信都用这种方法来开发新产品。实际上,敏捷有不同的管理方式:XP、Scrum、Kanban等,其中最流行的就是 Scrum了,上述提及的这几家巨头都在用。这种管理方法具体是怎么样的呢?
先上图:
(图片来源:即能小程序)
图中所展现的就是整个Scrum的流程,看起来有点复杂,但你只要掌握三个核心要点就可以了,这三个核心要点用数字作结的话就是2 3 4。
2: 两个计划
Scrum 有两个非常重要的列表,一是产品需求列表(product backlog),二是迭代待办列表(sprint backlog),也叫迭代计划。
产品需求列表
产品需求列表是需求的集合。想象一下,你现在要开始一个项目,首先你要应对的就是各种各样的需求:用户/客户的需求,也有顶头上司/老板/投资人等等的需求。在Scrum中,你可以把这些需求统统记下来,堆叠在一起。当然,这种堆叠不是无序的堆叠,你得按照优先级给所有需求排个序,这就形成了产品需求列表。总结一下,产品需求列表有如下特点:
列表中需求的表达方式必须是用户故事(以用户为核心);
需求列表是按优先级排序的;
需求列表是动态的,有新需求产生时,你可以随时把它添加进去;
产品待办列表永远是不完整的。
迭代待办列表
当然,需求列表≠执行计划,在执行时,你不是按着列表顺序一个个执行的,而是先基于优先级和目标,挑出接下来的迭代(通常是2~4周)要马上去实现的需求,这些需求放在一起就形成了迭代计划。相比需求列表,迭代计划中的用户故事更细更明确(通过团队讨论实现)。
3: 三种角色
产品负责人(product owner):
产品负责人的职责是将产品的价值最大化,把控产品和每个迭代的方向。他也是产品需求列表的唯一负责人,包括写需求,对需求优先级进行排序,确保团队都明晰产品目标和需求等。用一句话来概括就是产品负责人要对产品的最终结果负责。
项目负责人(Scrum master):
*此词目前还没有很好的翻译,这里把它翻作项目负责人
项目负责人是一位服务型的领导,他要为团队清除障碍,保障 Scrum的整个流程能够顺利执行:
帮助开发团队创造高价值的产品;
移除开发团队工作进展中的障碍。
开发团队(Scrum team):
开发团队是迭代的执行者,一般由5-9个专职人员组成,他们负责不同的工作,并共同为最终结果负责。
开发团队可以说是一个全能型的小团队,团队里包含执行迭代所需要的所有人员,比如一个营销团队可能包含以下角色:
4: 四个会议
迭代计划会(Sprint planning meeting)
时间:迭代开始前;
时长:以一个月的迭代周期来说,计划会最长为 8 小时;
内容:讨论产品负责人初拟的迭代计划,估算工作量,做好迭代执行安排。
每日站会(Standup)
时间:每天早上固定时间;
时长:15mins;
内容:团队每个人回答三个问题(我昨天做了什么,遇到什么问题,今天准备做什么)。
迭代评审会(Sprint review meeting)
时间:迭代快结束时;
时长:以一个月的迭代周期来说,评审会最长不超过 4 小时;
内容:向利益相关者(老板、投资人、客户等)展示迭代完成情况,哪些已经完成,哪些没完成,并梳理接下来要做的内容。
迭代反思会(Sprint retrospective)
时间:迭代结束后;
时长:以一个月的迭代周期来说,反思会最长不超过 3 小时;
内容:
检视前一个迭代中团队的执行情况如何;
反思团队做得好的和潜在需要改进的主要方面;
制定改进团队工作方式的计划。