启动Scrum团队:全面指南
Scrum团队在敏捷开发中起着关键作用,为其提供良好的开端至关重要。组建新的Scrum团队时,需积极主动地将团队凝聚在一起,即使团队成员经验丰富,也应遵循以下步骤,以确保团队成功起步。
1. 建立团队身份
与团队成员共同商讨创建团队名称和身份。例如,有团队以特定恐龙命名,还在团队房间放置七英尺的充气吉祥物,这不仅能增强团队精神,还可作为位置标识。同时,为团队拍照并发布在组织的维基页面和团队房间入口,有助于在组织内树立团队形象。
创建团队名称时,应避免使用自贬性名称,如“失败者”或“缺陷者”,这类名称可能会对团队产生负面影响,甚至导致团队瓦解。另外,可鼓励团队对房间进行装饰,但需提前了解组织的相关规定,避免因违反政策或安全规定而造成不必要的困扰。
2. 确立团队基本规则
基本规则对于新Scrum团队的形成至关重要,它是Scrum主管执行Scrum流程、确保团队成员为团队成功做出贡献的基础。在后续冲刺阶段,如果团队成员出现习惯性迟到或不参与积压工作梳理等情况,Scrum主管可提醒其遵守团队形成时达成的基本规则。若提醒无效,可召集团队重新审视和修订规则,使问题公开化,对不遵守规则的成员施加压力。
通常,在制定基本规则的研讨会上,可从一份简短的建议清单开始,如以下示例:
|序号|基本规则|
|----|----|
|1|按时参加会议(尤其是每日Scrum会议)|
|2|及时更新团队任务板上的状态|
|3|共同协作完成故事|
|4|每月每个人都有责任完成冲刺承诺,被要求在舒适区外工作时,不推诿|
|5|积极参与冲刺规划、积压工作梳理、冲刺回顾等团队讨论会议|
|6|遵守Scrum的承诺、勇气、专注、开放、尊重和可见性价值观|
|7|除非真正完成,否则不称某项工作已完成,除非组织要求,否则不交付未完成的软件|
|8|相互协作讨论并解决冲突|
|9|关注构建产品的更好方法|
|10|当无法与团队合作时,请求重新分配工作|
其中,第10条被称为“退出条款”,旨在确保团队成员在无法忍受团队工作时,能主动请求重新分配,避免因个别成员的消极表现拖累整个团队。基本规则并非一蹴而就,需在最初的几个冲刺回顾中进行调整,对于长期合作的团队,每四到五个冲刺也应重新审视,以保持规则的有效性。
3. 明确团队“完成”定义
明确任务完成的定义对于软件开发者至关重要。在软件开发领域,“完成”的定义往往较为模糊,导致向客户交付不完整软件的情况屡见不鲜。因此,团队应制定“完成”标准,对每段代码进行评估。未通过该标准的功能,在冲刺评审时不应向产品负责人展示;若需展示未完成的功能,应明确说明其未完成状态。
以下是一份“完成”定义的起始标准示例:
|序号|“完成”定义标准|
|----|----|
|1|软件满足产品负责人定义的验收标准|
|2|所有产品源代码(应用代码和测试框架)正确集成到代码库并提交到源代码控制|
|3|所有单元测试在模拟客户环境的集成环境中通过|
|4|所有验收测试在模拟客户环境的集成环境中通过|
|5|功能的性能标准得到满足或超越|
|6|功能的规模标准得到满足或超越|
|7|所有内部文档得到正确更新、审核并提交|
|8|所有外部(用户)文档得到正确更新、审核并提交|
|9|所有培训材料得到正确更新和审核,或必要的更改已传达给负责更新的人员|
|10|所有升级脚本完成并测试|
|11|所有安装脚本完成并测试|
|12|所有卸载脚本完成并测试|
|13|所有新的或更改的功能代码覆盖率至少达到85%|
|14|所有已知的存根从代码中移除|
|15|代码进行重构,符合所有命名标准和编码标准|
|16|设计进行重构,符合所有设计标准|
与基本规则类似,“完成”定义也需每两到三个冲刺进行回顾,特别是在团队上一个冲刺出现大量缺陷时,应进行根本原因分析,以确定是定义本身的缺陷,还是执行或验证过程中的问题。
4. 准备产品待办事项列表:团队的第一个冲刺
新Scrum团队可能会面临新的产品待办事项列表,或者该列表已由先前的团队进行了一定程度的梳理。无论哪种情况,团队的下一步是开始梳理待办事项列表,以便:
1. 使待办事项列表顶部的一些故事准备好进行开发。
2. 通过讨论,让团队更熟悉待办事项列表的内容。
在团队的第一个冲刺中,可遵循以下模式:
1. Scrum主管为整个冲刺安排待办事项梳理会议,每周共四小时,分两天进行,例如周一和周三下午1点到3点。
2. 冲刺的前两天进行待办事项梳理,目标是将足够多的待办事项细化到合适的规模,以便在第三天开始开发一到两个事项。
3. 从第三天开始,团队继续处理初始待办事项,并进行待办事项梳理会议。初始故事完成后,团队从新梳理的待办事项列表顶部继续工作,尽可能多地完成事项。
到第一个冲刺结束时,团队应梳理出足够一个完整冲刺使用的待办事项,完成大量新梳理事项的工作,并根据第一个冲刺的完成情况确定初始速度。从第二个冲刺开始,通常每周四小时的梳理工作就足够了。
5. 为冲刺规划做准备
在进行冲刺规划会议之前,建议与团队或团队的Scrum主管一起向团队解释整个过程,重点关注以下几点:
1.
明确冲刺规划的重点
:冲刺规划的重点是确定团队在当前冲刺中要完成的工作量以及如何完成这些工作,而不是生成冲刺待办事项列表。冲刺待办事项列表只是团队讨论完成待办事项所需工作的副产品。
2.
充分获取产品负责人的信息
:尽可能从产品负责人那里获取详细信息,明确产品负责人对每个事项的验收标准,避免过度或不足的承诺。缺乏详细信息是导致待办事项完成延迟和产品负责人在冲刺评审时拒绝事项的主要原因。
3.
团队协作决定开发方式
:冲刺规划是讨论新代码添加位置和现有代码查找位置的好机会。如果设计过于复杂,可安排后续会议进一步讨论。
4.
在冲刺待办事项列表中体现“完成”定义
:冲刺待办事项列表应反映团队对事项设计的决策,并包含足够的“完成”定义相关任务,以确保在冲刺期间真正实现该定义。经验不足的团队可能需要创建更详细的任务,以确保不遗漏任何工作。
5.
及时与产品负责人沟通
:如果认为某个待办事项在冲刺期间无法完成,应尽早与产品负责人讨论,提供尽可能多的选项,如再次拆分问题事项,将重要部分留在冲刺中,其余部分放回产品待办事项列表。避免在冲刺后期才让产品负责人参与,以免其可提供的帮助有限。
6.
项目后期保持谨慎
:项目接近尾声时,Scrum团队和产品负责人应更加谨慎地接受冲刺中的风险。因为项目后期时间有限,引入过多风险的待办事项可能导致团队出现不必要的延迟,甚至需要撤回已添加到产品中的代码。产品负责人应在项目后期小心移除或降低高风险功能的优先级,Scrum团队应勇于挑战产品负责人提出的高风险事项。
6. 成功开展每日Scrum会议
每日Scrum会议虽然规则简单,但对于确保团队成员了解彼此工作、适应日常实际情况非常有效。一个执行良好的每日Scrum会议应在15分钟内结束,而管理不善的会议可能会变得冗长、浪费时间且打击团队积极性。Scrum主管是成功开展每日Scrum会议的关键,以下是一些注意事项:
1.
固定时间和地点
:选择合适的时间和地点举行会议,可让团队自行决定。例如,有些Scrum主管发现上午11:45开会能让大家为了赶午餐而迅速结束会议。早上开会有助于团队成员回顾前一天的工作并规划当天的任务,下午开会则能让大家对当天的工作记忆犹新。
2.
每日坚持召开
:无论每天的情况变化是否大,都应坚持每天召开会议。即使感觉没什么新情况可汇报,会议的目的也是让团队为应对当前实际情况做出决策。而且,你永远不知道什么时候会议会发现重要问题。
3.
宣布会议开始和结束
:开始会议时,明确宣布“Scrum!”或“站起来!”,让团队成员聚集,也让非团队成员了解会议情况。结束会议时,同样宣布,这不仅表示会议结束,还提醒团队成员可以继续讨论当天的决策,非团队成员也可以在此时向团队提供新信息或提问。
此外,Scrum主管还应遵循以下“应该做”和“不应该做”的原则:
|“应该做”|“不应该做”|
|----|----|
|准时且一致地开始会议|不做会议记录|
|严格遵守三个问题,鼓励团队成员简要回答|不允许团队成员迟到,迟到者会后及时沟通|
|会议结束后尽快获取关于障碍的更多信息|不在会议期间或之后告诉团队成员做什么或分配任务|
|自己也回答问题,让团队成员了解你的工作|不携带笔记本电脑,避免干扰|
|鼓励会议形式的修改,但保持基本规则不变|不允许非团队成员在会议期间发言,礼貌地请他们等待会议结束|
|鼓励产品负责人参与| |
|鼓励其他团队成员主持、管理和结束会议| |
以下是一种有效的每日Scrum会议执行方式:
1. 鼓励团队成员注意时间,在每天固定时间(如上午10点)喊出“Scrum!”开始会议,对在一个冲刺中喊出次数最多的人给予奖励。
2. 在团队聚集的中央桌子上放置一个填充动物或其他标志物,离标志物最近的人先发言。
3. 持有标志物的团队成员回答三个问题,回答完毕后,将标志物传递给尚未回答问题且不相邻的团队成员。
4. 重复步骤3,直到所有团队成员都回答完问题,最后一人宣布会议结束。
这种方式的优点包括:会议可以自我启动,Scrum主管无需每次都在场;团队成员无需争论谁先发言;大家需要关注谁已经回答过问题,从而保持参与度。
7. 为冲刺评审做准备
许多团队在冲刺评审会议上花费过多时间,将其视为正式的软件功能演示。实际上,冲刺评审是一个非正式的检查点,应记住以下几点:
1.
保持非正式
:冲刺评审最好在团队房间的工作站进行,产品负责人不仅可以看到软件,还可以提问、发表意见和做笔记。如果团队按照“完成”定义工作,几乎不需要额外准备。应将精力放在实现“完成”上,而不是增加评审的形式。
2.
避免讨论指标
:冲刺评审应关注软件本身,而不是代码行数或新添加的测试数量。这些信息可以在评审结束后讨论。
3.
只展示已完成的内容
:在评审中,只展示团队一致认为完全完成的内容。避免展示几乎完成的项目,以免在未准备好时被迫交付。除非团队被特别要求,否则对未完成项目的讨论应集中在未完成的部分和原因上。
4.
准备应对挑战
:产品负责人在冲刺评审中的职责之一是确保每个展示的项目符合验收标准和团队的“完成”定义。团队应准备好应对对“完成”声明的挑战,例如提供测试用例和结果列表,以及更新后的产品用户文档。
8. 参加第一次冲刺回顾会议
冲刺回顾会议是讨论团队在冲刺期间工作情况的机会,有助于发现哪些方面做得好,哪些方面需要改进。在团队参加第一次冲刺回顾会议之前,建议讨论以下重要点:
1.
正视困难
:冲刺回顾可能是一个困难的时期,团队成员可能会表达愤怒和沮丧,这些情绪可能会被他人误解。但尽早处理这些问题很重要,否则可能导致团队失败。应鼓励团队成员积极参与会议。
2.
解决未决问题
:尽量避免在回顾会议结束时留下大量未解决的问题。如果有冲突或分歧,应在会议结束前解决或确定解决方案。将问题带到下一个冲刺会导致团队出现严重问题,降低生产力。
3.
全面讨论开发过程
:冲刺回顾应涵盖开发过程的各个方面,不仅仅是Scrum、极限编程(XP)或上一个冲刺中团队的工作。鼓励团队讨论组织标准对团队进展的影响,以及如何改进这些标准。同时,讨论过去几个冲刺中接受的重要培训,评估其有效性和可应用性,并提出改进建议。
4.
避免过度改变
:回顾会议的结果通常涉及改变行为,而行为改变不是一蹴而就的。建议团队选择一到两件想要继续做好的事情和一到两件想要改变的事情,在下一个冲刺中集中精力进行改变。试图一次性改变太多往往会让人失望。
9. 消除障碍
Scrum主管的重要职责之一是消除团队面临的障碍,确保团队成员专注于冲刺待办事项列表上的任务。常见的障碍及解决方法如下:
1.
获取组织专家的时间
:当团队成员需要组织内的专业知识但无法获取或难以确定专家时,Scrum主管应找出能提供帮助的人,安排时间让他们与团队成员合作。
2.
解决硬件问题
:当团队成员的笔记本电脑或台式电脑出现硬件问题时,Scrum主管应在让团队成员与其他成员合作的同时,寻找替换硬件。
3.
解决安全/访问问题
:在软件开发中,安全和访问问题越来越常见。当新团队成员需要访问文件系统或网络资源,或现有成员需要访问新的数据库或网络资源时,Scrum主管应帮助清除这些障碍,让团队成员专注于工作。
如果障碍超出了Scrum主管的解决范围或权限,应根据需要让管理层参与解决问题。
10. 持续学习
对于Scrum团队来说,持续学习至关重要。为了确保团队能够实现持续学习,可以按照以下步骤进行:
1.
获得管理层支持
:持续学习的目标应来自组织的高层管理,以确保教育工作的优先级得到重视。
2.
确定学习频率
:与团队达成共识,确定学习的频率,如每月一次、每周一小时或每两周一小时等。频率应与高层管理的指示一致。
3.
确定学习主题
:让团队成员在五到十分钟内写下尽可能多的学习主题,用便签纸贴在墙上。如果主题过多,可进行分组整理。然后,给每个团队成员十票,让他们为最关心的主题投票,从而创建一个培训待办事项列表。
4.
规划培训
:根据培训待办事项列表,决定以下事项:
-
确定培训负责人
:指定团队中的一名成员负责协调培训。
-
选择培训人员
:可以让团队成员、组织内的专家、顾问/教练提供培训,也可以使用组织提供的视听材料或在互联网上查找资源。
-
选择培训形式
:常见的培训形式包括午餐时间会议、教室培训和团队房间培训。
-
安排培训时间
:培训时间应根据培训准备情况而定,尽量避免与待办事项梳理工作坊安排在同一天,或在冲刺后期进行,以免影响团队完成任务的进度。
与产品待办事项列表一样,不要制定长期的培训计划,尽量提前一到两个冲刺进行规划,以避免过多的长期规划需要重新调整或废弃。
综上所述,为Scrum团队提供良好的开端对于敏捷开发的成功至关重要。通过定义清晰的团队身份、制定基本规则和“完成”定义、做好冲刺规划、开展有效的每日Scrum会议、进行冲刺评审和回顾、消除障碍以及持续学习,团队可以不断提高效率和质量。同时,应定期与Scrum团队进行沟通,了解哪些做法有效,哪些需要改进,并相应地调整实践。
启动Scrum团队:全面指南
11. 总结与持续优化
Scrum团队是敏捷开发成功的关键,为其提供良好的开端是重中之重。这涵盖了多个关键方面,下面通过一个流程图来直观展示整个启动过程:
graph LR
classDef startend fill:#F5EBFF,stroke:#BE8FED,stroke-width:2px;
classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px;
A([启动Scrum团队]):::startend --> B(建立团队身份):::process
A --> C(确立团队基本规则):::process
A --> D(明确团队“完成”定义):::process
A --> E(准备产品待办事项列表):::process
E --> F(第一个冲刺规划):::process
F --> G(开展每日Scrum会议):::process
G --> H(冲刺评审):::process
H --> I(冲刺回顾):::process
A --> J(消除障碍):::process
A --> K(持续学习):::process
I --> L(持续优化):::process
从流程图可以清晰看到,启动Scrum团队是一个系统性的过程,各个环节相互关联、相互影响。
首先,明确的团队身份是团队凝聚力的基础。一个有特色且积极的团队名称和形象,能够增强团队成员的归属感和自豪感,就像前文提到的以恐龙为主题的团队,不仅有独特的名称,还有充气吉祥物,这种方式有效地提升了团队精神。
团队基本规则是保障团队有序运作的准则。它为Scrum主管提供了管理依据,确保团队成员能够积极参与到团队的各项工作中。在实际执行过程中,基本规则需要根据团队的实际情况不断调整和完善,以适应不同阶段的需求。
清晰的“完成”定义是保证软件质量的关键。在软件开发过程中,如果对“完成”的定义模糊不清,就容易导致交付的软件存在缺陷,影响用户体验。因此,团队必须制定明确、具体的“完成”标准,并严格按照标准执行。
产品待办事项列表的准备和冲刺规划是团队工作的方向指引。通过合理的规划,团队能够明确每个冲刺的目标和任务,提高工作效率。在规划过程中,要充分考虑团队的实际能力和资源,避免过度承诺或承诺不足。
每日Scrum会议是团队沟通和协作的重要平台。通过每日会议,团队成员能够及时了解彼此的工作进展和遇到的问题,共同探讨解决方案。一个高效的每日Scrum会议能够让团队保持高度的协同性,及时调整工作方向。
冲刺评审和回顾则是团队持续改进的重要手段。在冲刺评审中,团队向产品负责人展示成果,接受反馈;在冲刺回顾中,团队反思自身工作,总结经验教训,寻找改进的方向。
消除障碍和持续学习是团队保持活力和竞争力的保障。Scrum主管要及时解决团队面临的各种问题,为团队创造良好的工作环境;团队成员要不断学习新知识、新技能,提升自身能力,以适应不断变化的市场需求。
在整个过程中,持续优化是核心目标。就像敏捷开发的理念一样,Scrum团队需要不断地适应变化、改进自身。通过定期与团队成员沟通,了解他们对各项工作的反馈,及时调整策略和方法。例如,如果发现某个基本规则在实际执行中效果不佳,就应该及时进行修订;如果某个培训主题受到团队成员的广泛关注,就可以增加相关的培训资源。
总之,启动Scrum团队是一个复杂而又充满挑战的过程,但只要我们遵循科学的方法,注重细节,不断优化,就能够打造出一支高效、协作、创新的Scrum团队,为企业的发展提供强大的动力。
以下是一个总结表格,概括各个关键步骤及其要点:
|步骤|要点|
|----|----|
|建立团队身份|创建积极名称和形象,避免自贬名称,合理装饰团队房间|
|确立团队基本规则|制定涵盖多方面的规则,含“退出条款”,定期审查调整|
|明确团队“完成”定义|制定全面详细标准,定期回顾分析|
|准备产品待办事项列表|第一个冲刺按特定模式梳理,后续按需调整|
|冲刺规划|明确重点,获取信息,团队协作,体现“完成”定义,及时沟通,后期谨慎|
|每日Scrum会议|固定时间地点,每日召开,宣布起止,遵循“应做”“不应做”原则,采用有效执行方式|
|冲刺评审|保持非正式,避免指标讨论,只展示完成内容,准备应对挑战|
|冲刺回顾|正视困难,解决未决问题,全面讨论过程,避免过度改变|
|消除障碍|解决专家时间、硬件、安全/访问等问题,必要时引入管理层|
|持续学习|获管理层支持,确定频率、主题,规划培训,避免长周期规划|
通过以上的步骤和方法,我们可以为Scrum团队的成功启动和持续发展奠定坚实的基础,在敏捷开发的道路上不断前进,取得更好的成果。
超级会员免费看
850

被折叠的 条评论
为什么被折叠?



