程序员debug三大定律

debug

声明

首先声明,本文其实是写给管理程序员的人看的。如果你是程序员,看了以后可能会对你的职业生涯产生负面影响,慎入!

至于其他闲杂人等,可以了解一下码农的工作状态,看个乐子。

什么是debug?

程序员的debug,即除虫、把没有按照预期方式正常运行的代码块修正。

这个过程分为3个步骤:

  1. 找到它
  2. 想办法解决它
  3. 确认它已经被解决(并且没有引入其它问题)
很多时候找到bug并不难
但很多时候,真的很难!
即使找到了,也通常不容易解决
最糟糕的莫过于,有时候难以验证是否已解决

如上,Debug并不是那么容易的事。

值得庆幸的是,大多数的bug都和上面图示的那样简单。因此,虽然海量的bug填满了程序员的工作时间,但软件项目仍然能跑。

至于能不能按时跑完,那就要看程序员的效率了。

一个程序员,效率的最大因变量,毫无疑问是个人能力。

如何提高自己的能力?这是程序员职业生涯中永恒的追求。本文避而不谈,只说程序员自己不能改变的一些外部环境因素。

注:本节的漫画图,来自于微信文章《当我们在谈论bug时我们谈论的其实是》。

第一定律:效率并不是时间的均匀分布

对于有正常生活规律的人来说,这条可以这么描述:

  • 早上debug,解决一个大于一个
  • 下午debug,解决一个等于一个
  • 晚上debug,解决一个小于一个(注:可以小于零)

毫无疑问,debug是一项智力活动。头脑清醒的时候,效率最高;头脑不清醒的时候……嘿嘿……我们喜欢称之为埋雷。会不会在下一次以另一种形式,炸到自己或后面的人,这就管不了了,至少当前的这坑填了。

很多bug,不好好解决,就是这样

当今码农界,弹性工作制(免费加班)已经蔚然成风,996已成做项目的常态。
但是,朝九晚九,甚至到凌晨,真的能解决?请看上图。
晚上搞到精疲力尽,第二天的状态真的正常?请看上图。
周末仅休息一天,真的能不影响下周的状态?请看上图。

996,强行把早上变成了“晚上”,把晚上变成了“下午”。短期来看也许效果不错,但是长期下来,如果人员不流动,或者项目与项目之间有足够的间隙,那么必然整个团队都效率低下。并不是说解决的bug少了、慢了,而是让bug总量增多了

八小时工作制不仅仅是曾经的人文追求,也具备生物学上的合理。人,毕竟是一种周期性的生物。

第二定律:效率和程序员的心情正相关

一直以来,在文学和影视作品中,都宣称着:

  • 诗人的心情,会影响诗歌的意境(语文试卷上不知写过多少遍)
  • 乐手的心情,会影响音乐的内涵(“高山流水”的典故)
  • 厨师的心情,会影响食物的味道(还记得那碗“黯然销魂饭”?)
    ……
星爷英姿时瞻仰

一首诗,同一个开头,可以有不同的结尾;同一个意思,可以用不同方式表达——这是语言赋予的高自由度所致。而诗歌无论是叙事的、咏志的、还是抒情的,都是智力创造的结果。从脑中创造的东西,很难不受当时脑中充斥的“心情”的影响。

对debug来说也是一样。

编程语言的自由度虽然比自然语言低多了,但是还是非常高。同一个小功能,让不同的人来从零开始实现,一定会有不同的代码。也许实现同一功能的软件,没有什么好坏之分,但编译之前的代码,一定有高下之别。

找bug时,看到整洁的代码,和看到乱七八糟的代码,效率是完全不同的;解bug时,是写整洁的代码,还是写乱七八糟的代码,心情真的很重要。

这就是为什么很多新兴互联网公司要效仿Google那样的顶级企业:水果随便吃、饮料随便和、甜点随便拿——开心就好。这也是为什么最近在炒作一个职业,叫程序员鼓励师……

当然了,前面说的是程序员认真负责debug的情况,不包括携程那小哥儿

在内部搞技术破坏,真的很简单
携程对那个程序员干了什么?

第三定律:效率和分配时间的自由度正相关

debug是,程序员把既有代码加载到大脑中模拟执行并且找出其中错漏,的一个过程。

如果有多个bug,那么解决它们的过程,类似于操作系统的进程调度。程序员需要根据bug的优先级、难易度、相关性、重要性等,自行分配处理问题的顺序以及时间,以达到最高的总体解决效率。

而这时候,就怕有个人站出来,说那个bug必须先解决;更怕有一群人依次站出来,各自指出一个bug要求先解决。

每当从一个bug切换到另一个时,代码会在大脑中重新加载。遗憾的是,人的大脑在这件事上,比电脑差太多,会异常耗时。因此,bug顺序的外在调整,必然带来效率的损失;而长期如此,待解bug的队列,只会越来越长。

当程序员在大脑中重新加载一段程序,你知道他要死多少脑细胞吗?
当程序员在大脑中重新加载一段程序,你知道他要死多少脑细胞吗?

debug并不是一件越给压力、越催促就越能越快速完成的工作。需要被鞭子撵着干活的,是驴、是牛,不是脑力劳动者。

最高效的办法,就是让程序员自己分配自己的时间,只注重结果。

第零定律

短期高效,往往是长期低效;长期高效,往往是短期低效——以上三条“定律”,都不过是这一条的具现。人的脑力劳动,就是这么样一种活动,不可能长短兼得。

既希望得到短期高效,又希望收获长期高效,强行违背规律的结果,就是徒劳无功。

今天给你10万,或者一年内,分批给你200万,怎么选?
一年内给你200万,和十年内给你5000万,怎么选?
十年内给你5000万,和百年内给你20亿,怎么选?

人不可能在职场工作百年,而时间也一定会带来货币贬值。但是,最值钱的资产,不会是当前的存款,而是未来稳定的现金流

只要不是临时的开发Team,那么长期而稳定的高效,才是真正的高效。

不仅仅是debug,coding的工作也有类似规律。debug是在既有代码的基础上,依次解决一些被打包为bug的问题。而coding则是,把一件较大的开发任务,拆分为一个个小的task,然后逐一去完成。

也不仅仅是写代码,所有脑力劳动,都有类似规律。

我到底在表达什么

如果你是管理程序员的人,读完了并且不认同,我建议多想想。

这不是什么新鲜的论调,三十年前的《人月神话》《人件》,都提到过类似的思想。直到今天,很多管理者都承认这俩的地位,但仍然对压榨员工的生命力奉行不悖——因为这样有最好看的短期成果可以呈现给上级。

而今,整个中国互联网都构建在对程序员的压榨上,好像没有什么不合理。似乎加班是王道,主动加班才是上进。

但是,任何强行达到短期高效的手段,最终都将损失更多的长期利益。要么欲速则不达,要么降低软件的质量,要么留不住优秀的员工。

加班、高压、催逼,这些手段,可以做好一个产品,不能做好一个系列;可以做一个品牌,不能做好一个品牌。

如果不能尊重自己手下的脑力劳动者,那么你作为管理者,一生成就也就那样了。


如果你是程序员,呃……我建议你当没看见,继续“上进”去吧。

屁股决定脑袋,屁股应该决定脑袋。在其位谋其政,不在其位不谋其政。

没事像我一样看技术以外的书,想技术以外的事,结果就是对老板的诸多做法不以为然,反驳起来还头头是道。最终……

人就应该知足。脑力劳动者往往有智商上的优越感,这已经是难以根治的劣根性了。如果再加上情商上的过度自信,那真是可以目中无人了。

请虚怀若谷,假装不知道吧。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,233评论 6 495
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,357评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,831评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,313评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,417评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,470评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,482评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,265评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,708评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,997评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,176评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,827评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,503评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,150评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,391评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,034评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,063评论 2 352

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,955评论 25 707
  • 2016年国庆假期终于把此书过完,整理笔记和体会于此。 关于书名 书名源于俄罗斯的演员斯坦尼斯拉夫斯基创作的《演员...
    李剑飞的简书阅读 7,229评论 2 65
  • 踏上西去的列车...... 人在桥上走,水在桥下流...... 人总是这样的,认为自己是万物之灵长,有权阻止任何东...
    逍遥逸仕阅读 497评论 1 14
  • 打开朋友圈,看到发得都是暑假结束,又步入小朋友开学的时间,家长围绕开学各种各样的忙,看到小朋友为新学校,新环境,期...
    書雅阅读 171评论 3 1
  • 17岁了吧,时间真快啊,都准备要成人了呢。 过得好吗,或许你是个天生的乐观派,但你也有过不了的坎。想想以后会有更多...
    四喜樱桃阅读 171评论 0 1