SUMTEC -- There's a thing in my bloglet.

But it's not only one. It's many. It's the same as other things but it exactly likes nothing else...

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
  263 随笔 :: 19 文章 :: 3009 评论 :: 74万 阅读
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

“你把事情搞复杂了!”这是很多人的老板们喜欢说的一句话,也许你也听过。没错,我们应该要尽力把事情变得更简单,可是把事情变简单这个过程并一定简单。比如要发明一个比剪刀更简单的工具,必定很困难。可是有的时候人们喜欢把一些形容词的位置进行调整,一边适合自己的“需要”。比如说,我们要尽量简单的让事情发生变化。

 

我举一个具体的例子:代码审查(Code Review)。

 

做过这个事情的同学们应该都知道,这是一个很枯燥的事情,尤其是需要你持之以恒。这种情况在原本并不习惯这一过程的团队中更是明显,因为每一个参与其中的人都会在短期内感到非常的痛苦,却没有发现什么效果。当你要推行这个改革的时候,如何做?

 

有一种非常简单的做法是找一个人去负责这个事情:好了,这个事情就交给你了。具体来说,可能这个人日复一日的去审核别人的代码,又或者日复一日的去督促每一个人去做这个事情。这种做法其实是方便了自己,痛苦了别人。你做这样的决策很容易,而且责任推得一干二净,感觉汇报起来也很简单。但其结果必定是这样的:

1、负责任很痛苦;

2、你觉得有人关心了,所以就不再关心,或者至少不那么关心了;

3、别人勉为其难配合一下;

4、开始有点“效果”,后来就趋于没有音讯了,或者沦落为一种形式;

5、有人开始批判“代码审核”这种形式化的东西,既无效果还浪费精力,最后取消。


如果我们很努力地去想一下这个问题,就会发现上面那个“简单方案”的心理博弈设计基本上是错误的:

1、你惩罚了负责人;

2、没有设定不完成审核工作的人会受到什么惩罚,或者完成了的人会受到什么奖励;

3、没有设定审核出现问题的人会受到什么惩罚,或者审核没有出现问题的人会受到什么奖励。

 

在这样的博弈条件下,写代码的人最终会不关心自己写的如何,审核的人也不关心审核的怎样,而负责任最后发现管不动、没效果却要负责任,很痛苦。有人就会说了,那些做的好的公司,也没有见其做了这些什么规定啊,不也做得很好吗?好吧,我讲一个很著名的故事,也许很多人都听过了:

 

有个生活压力很大的大城市,人们工作都很忙,经常很晚才下班。有个幼儿园的院长很苦恼,因为家长整天很晚才来接小孩,于是老师们只能陪着到很晚才下班,于是她需要付这些老师一笔不小的加班费。尽管家长们来的时候一脸歉意,但是老师们还是怨声载道的。于是她想了一个简单的办法,让家长们支付这笔加班费,按时间收费。这一个政策一实施立刻就乱套了:家长们觉得我付了费你就该替我看小孩,无论我多晚才来接。老师们没得到什么额外的好处,却要更晚下班了,于是纷纷提出抗议。院长一想也是,还是以前的日子好一些,于是又取消了收费。奇怪的是,几乎所有家长都没有向以前那样尽量早点来接,而且来接的时候也不感到愧疚。原因是,大家认为原来收费的服务现在免费了。这说明,尽管客观条件是一样的情况下,只要主观上有差异,就会导致不同的结论和结果。

 

那些做的好的公司没有什么严格的规定,是因为大家已然习惯了,认为做好代码质量的工作是一件理所当然的事情。而如果是一家原本根本不重视的这项任务,甚至压根就没有这项任务的公司,员工们一定会认为这是一件额外的、没有付我工资的、导致我要加班加点工作的任务,于是所有人都很消极。此时,这一个代码审查的任务安排就需要进行设计:

1、设计一套奖惩的规则;

2、赋予负责人依照规则奖惩的权利;

3、最后明确代码质量出问题,就是写代码的人的问题,而不是负责人的问题,而如果代码审核没有按预定的规则执行,则是审核人的问题。

 

你觉得呢? 

 

 

 

 

 

posted on   Sumtec  阅读(439)  评论(1编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
点击右上角即可分享
微信分享提示