写点什么

不做代码审查又怎样(三)

  • 2020-01-17
  • 本文字数:975 字

    阅读完需:约 3 分钟

不做代码审查又怎样(三)

回到问题上来

如果沟通金字塔的理论说的通,那代码评审就不再是一个:“必须要做的敏捷实践”,而只是沟通金字塔上的一层而已。那它的存在必然是为了弥补上下层沟通之间的空隙,那这个空隙到底是什么呢?是什么样的沟通是结对编程所不能覆盖,而用类似于迭代计划会这种更高层的沟通机制覆盖又不太经济的呢?为了让团队重新找回这个答案,我们最终决定试一试:


停止代码审查一个月,在这一个月的时间我们去体会没有代码审查的得与失,在一个月之后重新举行回顾会议再来讨论是否要继续做代码审查。


在一个月后如期进行的回顾会议上,团队又重新讨论了这个议题,最终觉得通过这一个月的尝试,在还无法做到更频繁地 Switch Pair 的情况下,代码审查还是很有必要的。例如在这个月中,大家对于其他人在做的工作了解变少,集成出现了很多冲突;缺陷的数量也有所增加,其中有些是很明显的错误,很容易通过代码审查的方式发现并在前期消除;代码质量也有明显下降,出现了测试的缺失和很多代码坏味道。


而另一方面为了让代码审查能够真正的发挥其作用和价值,经过讨论我们也优化了代码审查的方式,让大家更有参与感,更有效率,也更有乐趣(见下图抓拍)。



图 5. 改进后的 Code Review

交付价值 Over 遵循实践

日本剑道有个心诀,叫守 破 离:


1.“守”:最初阶段须遵从老师教诲,认真练习基础,达到熟练的境界。


2.“破”:基础熟练后,试着突破原有规范让自己得到更高层次的进化。


3.“离”:在更高层次得到新的认识并总结,自创新招数另辟出新境界。


守固然重要,但如果不能在守得基础上寻求突破,领会其中的奥秘和背后的道理,则始终无法达到离的新境界。在中国的武术中也有“无招胜有招”的说法,这里的无招就是指在将招数融会贯通之后,能够运用招式背后的原理,打破招数的限制,随机应变,自由应对。


而反观我们自己,是不是已经慢慢的不知不觉的被困在“守”的围城之内,变成了猴子定律中最后的那群猴子,只知道去拿香蕉会被打,也会跟着其他猴子去打那些试图拿香蕉的新猴子,但是为什么要这么做?我们已经忘了,或从来都没有知道过。


所以,不要以为遵循了敏捷提倡的一些实践我们就是敏捷的,不要以为遵循了精益的实践我们就是精益的。在我们没有理解并追求其背后真正价值的时候,只不过是平添了另外一份成本而已,不如不做。


本文转载自健荐公众号。


原文链接:https://mp.weixin.qq.com/s/9l-549sddZ_JFMqdNC8CgQ


2020-01-17 11:24701

评论

发布
暂无评论
发现更多内容

尤雨溪推荐神器 ni ,能替代 npm/yarn/pnpm ?简单好用!源码揭秘!

若川

JavaScript vue.js 前端 签约计划第二季

效能研发:做一款GraphQL代码生成器

梁龙先森

签约计划第二季

让容器跑得更快:CPU Burst 技术实践

阿里巴巴云原生

阿里云 容器 云原生 cpu CPU调度

手把手教你提交Jar包到Maven公共仓库 | 萌新写开源02

Zhendong

Java maven

信息

Nydia

日常的情绪控制

搬砖的周狮傅

情绪控制

初学者也能看懂的 Vue3 源码中那些实用的基础工具函数

若川

JavaScript vue.js 签约计划第二季

前端工程建设那些事

梁龙先森

内容合集 签约计划第二季

Scrapy Spider中间件,你学会了吗?本篇博客有一案例

梦想橡皮擦

12月日更

[Pulsar] DLQ原理

Zike Yang

Apache Pulsar 12月日更

深入理解Flutter相机插件【Flutter专题22】

坚果

flutter 28天写作 签约计划第二季 12月日更

阿里Java编码手册实战详解-命名规范篇

JavaEdge

12月日更

Vue 团队公开快如闪电的全新脚手架工具 create-vue,未来将替代 Vue-CLI,才300余行代码,学它!

若川

JavaScript vue.js 前端 签约计划第二季

尤雨溪几年前开发的“玩具 vite”,才100多行代码,却十分有助于理解 vite 原理

若川

JavaScript vue.js 前端 签约计划第二季

react源码解析12.状态更新流程

buchila11

React

React进阶(五):导航守卫

No Silver Bullet

React 路由 12月日更

面试官:如何实现 List 集合去重?

王磊

java面试

Structuring: 魔法诞生之法

mtfelix

28天写作

手把手带你漫游语音识别世界|入门到实战

攻城先森

音视频 语音识别 内容合集 签约计划第二季

前端开发:正确安装nvm的方法(非常详细)

三掌柜

28天写作 28 12月日更 12月

【docker 总结】第二篇 - Image 镜像

Brave

Docker 12月日更

Kafka 在消息队列领域为何如此流行?

老周聊架构

kafka 内容合集 签约计划第二季

react源码解析11.生命周期调用顺序

buchila11

React

netty系列之:小白福利!手把手教你做一个简单的代理服务器

程序那些事

Java Netty 代理 程序那些事 12月日更

Vue 3.2 发布了,那尤雨溪是怎么发布 Vue.js 的?

若川

JavaScript vue.js 前端 签约计划第二季

面试官:react中的setState是同步的还是异步的

全栈潇晨

React

面试官:useLayoutEffect和useEffect的区别

全栈潇晨

React

【LeetCode】寻找旋转排序数组中的最小值Java题解

Albert

算法 LeetCode 12月日更

javascript中获取 DOM 元素的几种方式

你好bk

JavaScript 前端 大前端 DOM BOM

Prometheus Exporter (二十六)Statsd Exporter

耳东@Erdong

Prometheus 28天写作 exporter 12月日更 StatsD

Game On Serverless:SAE 助力广州小迈提升微服务研发效能

阿里巴巴云原生

阿里云 Serverless 云原生 SAE 合作

不做代码审查又怎样(三)_语言 & 开发_王健_InfoQ精选文章