CI Team Structure¶
问题描述¶
过去一到两年来的软分析表明,在 CI 中着手进行重大新功能和特性是困难的,并且不断涌现的问题会造成干扰。每个人都孤立地从事自己的工作、特性或生产链的某个部分,几乎没有时间进行周到的同行评审和协作开发。
策略¶
目标¶
提高开发人员的专注度,减少干扰、中断和时间切片。
鼓励协作团队开发。
更好、更快的代码审查
团队结构¶
The Ruck
The Rover
The Sprint Team
The Ruck¶
每周会有一人站在前线,报告在 CI 中发现的故障。Ruck 和 Rover 在 sprint 的第二周交换角色。
主要关注点是观察 CI、报告错误、改进调试文档。
不参与 sprint
参加团队需要代表的会议
响应 #oooq / #tripleo 上的 ping,关于 CI
审查和改进文档
尽可能参加小组会议
为了识别,使用 irc 昵称 $user|ruck
The Rover¶
Ruck 的主要备份。Ruck 应该捕获 CI 中的所有问题,并将问题传递给 Rover 进行更深入的分析或错误解决。
Ruck 的备份
工作负载来自 tripleo-quickstart 错误队列,Rover 不监控 CI
次要的工作输入是 Trello 板上定义的的技术债务。
参加 sprint 会议,但不负责任何 sprint 工作
帮助对传入的 gerrit 审查进行分类
响应 irc #oooq / #tripleo 上的 ping
如果 Ruck 对其任何职责感到不堪重负,Rover 是主要备份。
为了识别,使用 irc 昵称 $user|rover
The Sprint Team¶
团队的定义是在 sprint 开始时根据可用性确定的。团队成员应尽可能专注于 sprint epic。团队成员应将 80% 的时间用于 sprint 目标,将 20% 的时间用于任何其他职责,例如代码审查或 Rover 无法单独处理的传入高优先级错误。
尽可能将中断移交给 Ruck 和 Rover
作为一个团队专注于 sprint epic
与其他 sprint 团队成员协作
寻求关于 sprint 工作的同行评审
- 每天更新 Trello 板
可以在站立会议上指向 Trello 卡片以了解状态
The Squads¶
小队作为 sprint 团队的一个子单元运作。每个小队将使用相同的流程和程序,并由团队催化剂管理。
- 当前小队
- 持续集成 (CI)
负责 TripleO CI 系统(非基础设施)和构建验证。
- Tempest
负责 tempest 开发。
Team Leaders¶
The team catalyst (TC)¶
团队中负责组织小组的成员。团队将选举或任命每个发布版本的团队催化剂。
组织和计划 sprint 会议
收集状态并发送状态电子邮件
The user advocate (UA)¶
团队中负责帮助确定工作优先级。团队将选举或任命每个发布版本的用户倡导者。
组织和确定 sprint 规划中的 Trello 板
监控 sprint 期间的板
确保正在完成正确的工作。
The Squads¶
CI 团队有两个小队。
tripleo ci
tempest 开发
每个小队都有一个 UA,并且共享一个 TC。两者都参与 Ruck 和 Rover 轮换。
Rocky 的当前领导者¶
团队催化剂 (ci, tempest) - Matt Young
用户倡导者 (ci) - Gabriele Cerami
用户倡导者 (tempest) - Chandan Kumar
Sprint Structure¶
sprint 的目标是在协作方式下定义一个狭窄且集中的功能,称为 epic。未在 sprint 中完成的工作将被添加到 Trello 的技术债务列中。
注意:每个 sprint 都需要一个明确的完成定义,该定义记录在用于 sprint 的 epic 中。
Sprint Start ( Day 1 ) - 2.5 hours¶
sprint 持续三周
Ruck 和 Rover 参加全体团队会议
审查休假
审查 Ruck/Rover 需要覆盖的任何会议
UA 将提出 sprint epic 的选项
讨论 epic,轻微地分解每个 epic
投票选择 epic
投票可以使用 doodle 表格完成
将 sprint epic 分解为卡片
- 审查每张卡片
每张卡片必须有一个明确的完成定义
作为一个小组,在卡片中包含尽可能多的细节,以便为几乎没有任务背景的工程师提供足够的信息。
Sprint End ( Day 15 ) - 2.5 hours¶
- 回顾
仅限团队成员、ruck 和 rover
记录 sprint 中剩余的任何技术债务
Ruck / Rover 交接
分配 Ruck 和 Rover 职位
sprint 演示 - 如果可用
irc 上的工作时间
Scrum meetings - 30 Min¶
规划会议,视频会议
Sprint End,视频和 irc #oooq 在 freenode 上
- 每周 2 次现场视频会议
sprint 站立会议
其他日期,将状态发布到团队的 Trello 板和/或卡片
TripleoO CI Community meeting¶
应每周举行一次社区会议。
会议应理想地安排在 TripleO 社区会议(OFTC)之后立即举行,以便于安排。
CI 会议应作为 TripleO 社区会议的一部分进行公布,以鼓励参与。
替代方案与历史¶
过去,CI 团队以个人或成对的方式为 CI 系统的不同部分和某些功能工作。两者都未能成功地以定期节奏交付功能。
实现¶
主要作者:Wes Hayutin weshayutin at gmail
- 其他贡献者
Ronelle Landy rlandy at redhat
Arx Cruz acruz at redhat
Sagi Shnaidman at redhat
里程碑¶
本文档可能会根据 sprint 回顾中讨论的反馈而演变。在每个上游周期结束时应进行深入的回顾。
参考资料¶
Trello¶
将使用 Trello 板来组织工作。预计团队每天都会更新板和他们的卡片。
Dashboards¶
使用多个仪表板来监控 CI
Team Notes¶
Bug Queue¶
修订历史¶
发布名称 |
描述 |
|---|---|
Rocky |
2018 年 4 月 16 日 |
注意
本作品采用知识共享署名 3.0 非移植许可协议授权。 http://creativecommons.org/licenses/by/3.0/legalcode