首页/开发/代码质量与评审速查/无责文化下的代码评审
代码评审64 条

无责文化下的代码评审

把评审定位为共同改进代码的机制而非问责工具:根因指向系统与流程,评审意见谈代码不谈人,才有人愿意暴露问题。

无责文化下的评审

把评审定位成共同改进代码的机制,而不是追责工具:评论谈代码不谈人,事故复盘先问机制为什么没拦住,而不是先问是谁写的。心理安全感一旦崩掉,坏消息会被推迟到无法挽回时才浮出水面,评审也就只剩下签字。

基本信息

核心主张评论针对代码与流程,责任由团队共担
度量口径评审时延、缺陷逃逸率等团队级指标
警戒信号把评论数当绩效、复盘先问责任人
边界无责不等于无标准,标准对事不对人

典型使用场景

  • 评审记录用于改进流程:不进入个人绩效扣分项
  • 事故复盘关注机制:为什么测试与灰度没有拦住
  • 允许快速承认与修正错误:上报问题被鼓励而不是被追问
  • 度量取团队口径:不排名个人,避免刷指标
  • 新人出错时先补上下文:区分能力缺口与流程缺口

有责与无责的做法差别

情形有责式做法无责式做法
线上故障先问是谁改的先问监控与灰度为什么没拦住
评审发现漏洞记在个人档案里反查评审清单缺了哪一项
同类问题重复出现强调下次注意把它变成检查项或自动化校验

复盘提问清单

复盘提问清单
1. 触发条件是什么,当时为什么没有暴露?
2. 哪一层防线本该拦住它:测试、评审、灰度还是监控?
3. 换个人来做同样的事,会不会再犯?
4. 要补的是文档、检查项、自动校验还是培训?
结论落到具体改动上,而不是落到某个人身上。
无责不等于没有标准:标准针对代码与流程,责任由团队共担,两者缺一不可。
事故后先找责任人:信息会被隐藏起来,同类问题在别的模块再发生一次。

易错点

  • 用评审评论数评估个人:产生刷评论甚至人身攻击式评审,讨论质量下降
  • 事故后先问责任人:坏消息被藏起来,直到下一次更大规模地爆发
  • 把无责理解成无标准:问题反复出现却没人推动改进
  • 只做复盘不落改动:结论停留在复盘文档里,同类缺陷照旧逃逸到线上

数据来源与参考

  • 《Accelerate》(Forsgren、Humble、Kim)
  • 《The Fearless Organization》(Amy Edmondson)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌