07 | “两个披萨”团队的代码管理实际案例

该思维导图由 AI 生成,仅供参考
背景
- 深入了解
- 翻译
- 解释
- 总结

亚马逊内部的“两个披萨”团队以小团队高效工作为目标,采用特性分支开发模式进行代码管理。团队成员在周一分配任务后,通过GitLab创建特性分支并配置Smart Merge,实现自动合并和冲突检测。周二开发人员完成基本功能后,进行代码review和自测,同时测试工程师搭建测试环境并进行自动化测试。周三进行集成测试,发现延迟问题并通过Smart Merge排除引起问题的分支,最终修复Bug并决定周四上线。整个过程展现了团队高效协作、自动化合并和持续交付的特点。 在周四,“黑寡妇”进行了手工测试,发现并通知开发修复了界面文字描述的问题。产品包生成后,“黑寡妇”通过发布系统将产品包发布到线上,并及时给master打了tag,向项目组汇报。周五项目组清理过期分支,召开回顾和改进会议,讨论解决已有问题的方案。 这篇文章介绍了“两个披萨”团队的代码管理实践,展示了他们采用特性分支开发的具体活动,包括分支创建、集成和删除,以及周五的清理和改进会议。这些实践体现了团队的高效协作和持续交付能力,对读者的日常工作也具有借鉴意义。 思考题:如果A功能有问题不能上线,而B和C必须上线,可以考虑暂时移除A功能的代码,使得B和C能够独立上线。同时,需要及时通知相关人员,并在修复A功能后重新上线。
《持续交付 36 讲》,新⼈⾸单¥59
全部留言(29)
- 最新
- 精选
- 陈文涛老师我很好奇,大厂不写设计文档,不做设计评审,不做需求评审么,还是这场景忽略掉了。。。。
作者回复: 当然要做啊,只是不限制形式,减少没有必要的paper works,比如以backlog,story等代替需求文档等,增加沟通,当然必要的设计说明也是要做的
2018-10-314 - 军秋看B C是否有依赖A的功能,没有依赖撤回A,上线后两个,若有依赖,做个业务开关关闭A的功能保留BC依赖的功能,保证BC上线,A功能延期到下一个版本
作者回复: 行得通,但是这类问题多了就会造成很多并无实际价值的业务开关,本身业务开关的管理也不是那么简单,因此此方法可以应急,但不推荐铺开使用
2018-08-2524 - james老师,smart merge 的作用是不是, 先选定 N 个分支组成一个 group, 之后 group 中任何一个分支变更, 都合并到 group 中另外的几个分支中?
作者回复: 应该说是整个group中的所有分支都会被合并到一个临时的,虚拟的分支里
2018-08-254 - Lintonsmart_merge是需要Gitlab通过源码方式一并安装吗?
作者回复: 是个gitlab service,不需要重新安装,但可能有版本要求,
2019-10-231 - 柠檬水您好,看过你们在Github上的smart_merge工具了,但是文档不像是Gitlab的一个插件,安装过程也和Gitlab的插件安装不同,能指点一下方向吗?谢谢。
作者回复: 可以提issue到项目,我们会跟进的:)
2018-08-011 - Triton如果是BUG也需要创建分支吗?
作者回复: 如果是hotfix,那也是需要独立建分支的
2019-07-30 - frankie有了 Smart Merge,任何一个分支的变更会自动触发合并----那这个跟主干开发似乎差不多吧?
作者回复: 是的,但是却不会污染主干
2018-11-13 - Guti感觉不怎么专业啊,连pull request都不用?携程自己开发的smart啥没看出多大作用
作者回复: pull request是github的功能,我们基于开源的gitlab处理的代码平台,所以使用的是merge request,两者还是有一定区别 至于smart merge插件,对于大型团队,并行开发多的就会看出它的价值了
2018-07-30 - Nick~毓多说一些 devops 持续交付 持续部署 持续集成 相关的理论 流程 标准 和实战经验吧2018-07-2015
- 破晓回滚到提交abc前,重新上bc。2018-07-1910