敏捷管理中的开发团队包括了开发人员、测试人员、美工设计、DBA等全职能、跨领域的团队,这是一支自我管理的团队。
一、Development Team开发团队定义
首先先将开发团队和敏捷团队区分开来,敏捷团队包含了Development Team 开发团队、Product Owner 产品负责人、Scrum Master 敏捷教练。相当于开发团队是敏捷团队中的子集。之前很多人还有这传统项目的观念:Product Owner 产品负责人不是敏捷团队中的一员,在敏捷项目中,他就是敏捷团队中的一员,是和开发团队、敏捷教练一起对产品的最终交付和价值负责任的。
话说回来,开发团队是在一个迭代周期要结束的时候,可以交付随时发布的增量型版本。通常至少有3个人员、最多不超过9人。人数的精简便于团队的沟通,因为大家知道沟通是有成本的,人越多,沟通成本越大。另外每日站立会时间控制在15分钟,如果人数多的话,时间很难把控。如果真的一项目人数超过了9人,可以拆分成两个或者两个以上的敏捷团队(后面文章会细说)。
二、Development Team开发团队特点
1.自组织性
当PO将产品待办事宜罗列好之后,开发团队成员自己去认领。每天站立会没有主持人,开发团队成员自己说昨天完成什么,今天预计做什么,目前是否有阻碍。遇到问题的话,自己和团队成员沟通处理,而不是等着SM来驱动。
这个传统项目的方式大有不同,传统项目是产品经理/项目经理对活动进行WBS分解,然后安排到开发团队成员。每次早上开成会的时候,都是项目经理一个一个地问开发团队成员进度,或者是开发团队成员想项目经理汇报进度。这是一种被动的形式,没有积极性。
很多公司说自己已经用上了敏捷管理的方法,但实际上任务还是领导分配,开晨会也是团队成员向领导汇报进度。这不是真正意义上的敏捷团队/敏捷管理。
2.跨职能性
敏捷项目中的开发团队要求具有跨职能能力,说通俗一点,就是你不仅会开发代码,还会测试。在这里面你不仅只能承担一个角色,而且能够承担多个角色。
为什么要求这样?传统的项目团队中,搞开发的就是开发,做测试的就是做测试。反正开发只要把代码写完,自测完,就交给测试人员。剩下测试的事情和我无关,哪怕你测试测不过来我也不会帮忙,因为测试不是我的职能,我只要做好开发就好,而且我也不会测试。这样就很容易出现扯皮的情况,或者说大家只看重自己的一亩三分地。不关心整体项目/产品的成败。因为哪怕是项目/产品失败了,只要不是因为我代码的问题那就和我无关。
而敏捷项目的价值观不是这样的,他强调能否实现产品的价值是敏捷团队的共同的事情。不仅仅是PO和SM的事情,也是开发团队的事情。如果产品失败了,那就是整个敏捷团队的问题和责任。所以当开发人员把自己的故事done的时候,他会去看看下游对应的测试是否遇到阻碍,如果遇到阻碍,开发人员不是自己继续开发故事,而是帮组测试人员测试。同理对于开发团队的其他人员来说也是这样的。
3.无头衔
每一个开发团队的成员不管从事什么职能,都没有头衔,统一称为开发人员。不像传统的项目团队中,有高级开发工程师,有资深测试等这样的头。无头衔的好处在于在整个团队中营造一个平等和谐的氛围,有利于团队的气氛。
4.无下属团队
敏捷项目中的开发团队最少3人,最多9人。他们都是平级的,没有再安排下属团队或者成员。
5.一个整体
这就是前所说的开发团队是一个统一的整体,是对产品最终价值和交付负责任的。而不是各自只扫自家门前雪,不管他人瓦上霜。只有是一个统一的团队,才有旺盛的战斗力。团队之间没有扯皮或者推诿责任,保证项目的顺利推动。