Scrum是一个用于开发和维护复杂产品的框架,是一个增量的、迭代的开发过程。迭代是贯穿敏捷管理的一个特有概念,Sprint是冲刺跑的意思,在敏捷里指的是一次迭代,而一次迭代的周期一般是2~4周,也就是要把一次迭代的开发内容以最快的速度完成它,这个过程我们称为迭代。Scrum团队试图在每一个迭代中都构建出一个潜在可交付、并且充分测试过的产品增量。
图一 敏捷流程人员构成
Scrum团队,又叫Scrum Team,是Scrum的基本单位,一般都是小团队,这个团队虽小,但是麻雀虽小,五脏俱全,这是一个跨职能的团队,这个团队具有完成每个迭代所创造的价值的全部技能。 他们是自管理的,这意味着他们在团队内部决定谁做什么、何时做以及如何做。
一般Scrum团队都是10个人左右,这已经是最小单元,没有子团队或结构层次了,规模足够小可以保持灵活,同时也足以完成一个迭代中重要的工作。小的团队沟通更好,效率更高,如果有问题,站起来直接喊、然后开始讨论把事情解决了。
Scrum团队是具有凝聚力的专业团体,作为一个整体,每个成员都非常重要,大家互相配合一次专注于一个目标,即产品目标。在团队中,三种角色有不同的分工,由一名流程管理员(Scrum Master),产品负责人(Product Owner),开发团队(Dev Team)组成来完成每一次迭代,产出每一次增量,完成每一次目标。
图二 敏捷团队角色
产品负责人
定义所有产品功能,决定产品发布的内容以及日期,对产品的投入产出负责,根据市场变化对需要开发的功能排列优先顺序,合理地调整产品功能和迭代顺序,认同或者拒绝迭代的交付。
ScrumMaster
指导项目组的成员按照Scrum的原则、方法做事情,领导团队完成Scrum的实践以及体现其价值,排除团队遇到的困难,确保团队胜任其工作,并保持高效的生产率,使得团队紧密合作,使得团队个人具有多方面职能的工作能力,保护团队不受到外来无端影响。
开发团队
一般有 5-9 人,团队成员包含程序员、测试员、用户体验设计等等,由一批跨职能的人组成,他们拥有完成每个产品增量所需的全部技能。开发团队成员需要以自组织的方式实现Sprint目标,根据Sprint的计划完成产品增量。产品负责人准备一个有序的代办事项列表。开发团队成员共同预测在一个Sprint里能完成的工作量,并决定如何实现。
在Scrum团队中,有三种角色,Scrum Master作为主导者,驱动着团队前进,而Product Owner作为业务方代表,提供需求,最终让开发团队把需求实现,Scrum团队作为一个Scrum团队,大家一起配合完成任务,交付成果。