写点什么

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

  • 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:24804

评论

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

C++对象的初始化和清理之构造函数和析构函数分析与实例(一)

CtrlX

c++ 面向对象 后端 代码 8月月更

《MySQL入门很轻松》第2章:MySQL管理工具介绍

乌龟哥哥

8月月更

【爬虫+可视化】Python爬取疫情并可视化处理数据(爬虫入门案例)

BROKEN

Python 8月月更

Axure9基本交互操作(一)

乔乔

8月月更

2022前端秋招vue面试题

helloworld1024fd

Vue

知识分享|如何设计有效的帮助中心,不妨来看看以下几点

Baklib

多个平台显示IP属地,必须大力推行互联网实名制

石头IT视角

工业物联网 —— 新型数据库的召唤

CnosDB

IoT 时序数据库 开源社区 CnosDB infra

动态内存开辟(C语言)

孤衫

编程语言 C语言 动态内存 8月月更

前端常考react相关面试题(一)

helloworld1024fd

React

开源一夏|OpenHarmony如何查询设备类型(eTS)

坚果

开源 HarmonyOS OpenHarmony 8月月更

经验分享|盘点企业进行知识管理时的困惑类型

Baklib

七日算法先导(三)—— 快速排序,插入排序

工程师日月

8月月更

Nacos配置中心之客户端长轮询

急需上岸的小谢

8月月更

git操作

Jason199

git 8月月更

头脑风暴:完全背包

HelloWorld杰少

8月月更

SRv6网络的安全解决方案

穿过生命散发芬芳

8月月更 SRv6

Go 语言快速入门指南:什么是 TLS 安全传输层协议

宇宙之一粟

安全 Go 语言 8月月更

手写分布式配置中心(1)

分享干货的你

java; spring-boot SpringCould 签约计划第三季

【python小游戏】用python写一款小游戏--贪吃蛇

BROKEN

8月日更 8月月更

那些年,在Linux指令上踩过的坑~

芒果酱

Linux 签约计划第三季

开源一夏 | 云服务器ECS安装Mysql、JDK、RocketMQ

六月的雨在InfoQ

开源 8月月更

Service Mesh落地路径

阿泽🧸

Service Mesh 8月月更

克服项目管理中恐惧心理

踏雪痕

项目管理 8月月更

Discourse 清理存储空间的方法

HoneyMoose

开源一夏 | 基于若依springboot架构实现数据多维统计

六月的雨在InfoQ

开源 8月月更

学生管理系统架构设计

张立奎

Android条件控制宏编译

桑榆

8月月更

区块链或者智能合约开发的 5 种最佳编程语言

devpoint

区块链 以太坊 8月月更

python绘制一个时间的七段数码管实例基本的七段数码管绘制

BROKEN

8月日更 8月月更

【数据挖掘概论】数据挖掘的简单描述

晴天

8月月更

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