Scrum团队
Scrum团队由一名产品负责人,开发团队和一名Scrum Master组成。Scrum 团队是跨职能的自组织他uandui。自组织团队自己选择如何以最好的方式完成工作而不是由团队之外的人来指导,跨职能团队拥有完成工作所需的全部技能,不需要依赖团队之外的人,Scrum团队模式仍是设计用来提供最佳的灵活性、创造力和生产力。Scrum团队(自身)已经证明,对于所有值钱所述Scrum的应用以及任何复杂工作来说,它都是越来越有效的。
Scrum 团队迭代增量式交付产品,籍此最大化获得反馈的机会,增量是交付“完成”的产品保证了一个可工作产品的潜在可用版本总是存在。
Product Owner 工作职责
负责最大化产品以及开发团队工作的价值。主要职责如下:
1.确定产品的功能;
2.决定发布的日期和发布内容;
3.为产品的POI负责;
4.根据市场价值确定功能优先级;
5.每个sprint中,根据需要调整功能和优先级(每个sprint开始前调整);
6.接受或者拒绝开发团队的工作成果;
7.参与Scrum Review Meeting(Sprint 评审会)和Sprint Retrospective Meeting(Sprint回顾会)
产品负责人是负责管理产品待办列表的唯一负责人,产品待办列表的管理包括:
清晰地表述产品代表列表项;
对产品待办列表项进行排序,时期最好的实现目标和使命;
优化开发团队所执行工作的价值;
确保产品待办列表对所有人是可见、透明和清晰的,同时显示Scrum团队下一步要做的工作;确保开发团队对产品代办列表项有足够深的了解。
产品负责人可以亲自完成上述工作,或者也可以让开发团队来完成。然而无论何者,产品负责人是负最终责任的人。
产品负责人是一个人,而不是一个委员会。产品负责人可能会通过产品待办列表展现一个委员会的期望要求,但是想要改变产品待办列表项的优先级都必须经过产品负责人。为保证产品负责人的工作取得成功,组织中的所有人员必须尊重他/她的决定,产品负责人对产品待办列表的内容和排序的决定必须是可见的,没有人可以强迫开发团队按照另一套需求开展工作。
一句话总结PO这个角色就是:告诉产品团队要做什么,做功能的先后顺序是怎样的,需求有变动时该如何处理。
Scrum Master
Scrum Master 对Scrum团队而言,他/她是一位服务型领导。Scrum Master帮助Scrum团队之外的人了解他/她们如何与Scrum团队交互是有益的,通过改变他/她们与Scrum团队的互动方式来最大化Scrum团队所创造的价值。
Scrum Master工作职责
确保Scrum被理解和正确使用并使得Scrum的收益最大化,主要职责如下:
1.保证团队资源合理利用;
2.保证各个角色及职责良好协作;
3.解决团队开发中的障碍;
4.作为团队和团队外部的接口,协调解决沟通中的问题;
5.保证开发过程按计划进行,组织Scrum Planning Meetings(Sprint 计划会议),Daily Stand-up Meeting(每日站会),Sprint Review Meeting(Sprint评审会)和Sprint Retrospective Meeting(Sprint回顾会)。
Scrum Master 服务于产品负责人
Scrum Master以各种方式服务于产品负责人,包括:
①尽可能确保Scrum团队中的每个人都能理解目标,范围和产品域;
②找到有效管理产品待办列表的技巧;
③帮助Scrum团队理解为何需要清晰且简明的产品待办列表项;
④理解在经验主义的环境中的产品规划;
⑤确保产品负责人懂得如何来安排产品待办列表使其达到最大化价值;
⑥理解并实践敏捷性;
⑦按要求或需要引导Scrum事件。
Scrum Master服务于开发团队
Scrum Master 以各种方式服务于开发团队,包括:
①在自组织和跨职能方面给予开发团队指导;
②帮助开发团队创造高价值的产品;
③移除开发团队工作进展中的障碍;
④按要求或需要引导Scrum事件;
⑤在Scrum还未完全采纳和理解的组织环境中指导开发团队。
Scrum Master服务于组织
Scrum Master以各种方式服务于组织,包括:
①带领并指导组织采纳Scrum;
②在组织范围内规划Scrum的实施;
③帮助员工和利益相关者理解并实施Scrum 和经验产品开发;
④引发能够提升Scrum团队生产率的改变;
⑤与其他Scrum Master 一起工作,增加组织中的Scrum。
SM应该在团队承担的几种角色:
1.引导者:就像一个出租车司机,需要去哪儿,是由团队来决定的,作为引导者,带领团队到达他们想去的地方,引导团队建立团队规则,维护团队和指导团队成员遵守团队的规则。作为引导者需要特别注意的是,不能把自己的价值观强加于团队让团队成员尽量表述自己的意见。相信大众智慧--得到“最佳答案”,相信大众参与--得到“最佳执行力”
2.教练:指导团队和PO遵循SCRUM的价值观。教练作为一面镜子,在每日立会和回顾会等会议上,只陈述事实,在日常工作中尽量多去收集一些数据,通过陈述事实和提问让团队去思考,通过这种方式让问题的解决达成一致。(若干当前的陈述让团队意识不到问题的存在,那么建议继续守望,继续收集数据,再陈述事实,通过反射让团队去发现问题)
3.移除团队障碍。
一句话总结SM这个角色就是:教整个团队怎么做,如何估时,跟进每天进度,风险控制,定期总结,计划排定。
Scrum Team:
开发团队主要职责是执行冲刺,含每日检视和调整、梳理产品列表、冲刺规划、检视和调整产品与过程。开发团队包含各种专业人员,负责在每个Sprint结束时交付潜在可发布并且“完成”的产品增量,在Sprint评审会议上,一个“完成”的产品增量是必须的。只有开发团队成员才能创建增量。
开发团队的十大特征:
1)自组织--自下而上自发的组织,类似于大雁飞行时候的人字形。没有外部的统治力量采用传统的自上而下,命令与控制的管理方式。
2)跨职能的多样化和全面化--可以给团队带来更多的视角和更好的效果。
3)T型技能--核心领域外的功能能力及职责、学科或者擅长。拥有深度和广度的技能。
4)火枪手的态度--人人为我,我为人人,就不会出现滥竽充数的人。团队成员共同承担完成工作的责任,成败是整个团队的事情。
5)沟通广泛--尽量面对面沟通。
6)透明沟通--不要推三阻四,要坦诚,靠谱。
7)规模适中--5-7个人比较合适,少于3个人的开发团队,成员之间没有足够的互动,因而生产力的增长不会很大,过小的团队在Sprint中可能遭遇到技能上的约束,进而导致开发团队无法交付潜在可发布的产品增量。超过9人的团队则需要更多的协调沟通工作。对经验过程而言,大型开发团队会产生太多的复杂性而变得无用。产品负责人和Scrum Master角色不包含在此数字中,除非他们同时也参与执行Sprint待办列表中的工作。
8)专注与有责任感--同时做多个任务会降低生产率,要适度专注。
9)工作步调可持续--不要持续加班高强度,要达到工作的平衡。
10)从长远来看,倾向于选择可以长期合作的成员来组成稳定的团队,一旦拥有高效能团队,就拥有了真正的资产。
“猪”和“鸡”的角色
鸡和猪的故事
一天,一只鸡散步时遇到了猪。鸡对猪说:“嗨,我们合伙开个餐厅吧。”
猪说:“好啊,那准备取什么店名呢?”
鸡说:“要不,就叫火腿和鸡蛋吧。”
猪直接拒绝了:“那可不行,我要割肉,你只要下蛋,这样下去,我迟早要完蛋。”
这个故事实际反映了软件开发过程中的2种不同的角色,既需要完全投入的“猪”和只要部分投入的“鸡”。真实项目过程中,往往会发生这样的显现,领导喜欢临时往项目中新增任务,打乱原先的开发节奏,导致程序员压力倍增,士气低落,项目延期。上文三个角色Product Owner,Scrum Master,and Scrum Team就是“猪”的角色。
“鸡”角色
鸡角色并不是实际Scrum过程的一部分,但是必须考虑他们。敏捷方法的一个重要方面是使得用户和利益相关者参与到过程中的时间参与到每个冲刺评审和计划,并提供反馈对于这些人来说是非常重要的。
1.用户
软件是为了某些人而创建的!就像“假如森林里有一棵树倒了,但没人停到,那么它算发出声音了吗?”,“假如软件没有被使用,那么它算是被开发出来了吗?”
2.利益所有者(客户,提供商)
影响项目成功的人,但只直接参与冲刺评审过程。
3.管理者
为产品开发团队架起环境的那个人
Scrum就是为了保护“猪”这种角色(Product Owner,Scrum Master,and Scrum Team),兼顾“鸡”的感受(用户、利益所有者(客户、提供商)、管理者),从而确保整个项目正常交付。