点击上方蓝色字体,关注程序员zhenguo

好,我是zhenguo
程序员对bug再熟悉不过,就是再牛的程序员,代码写多了,必然也会写出bug。
问题来了,bug到底是怎么产生的?bug产生的原因难道一定是程序员们的锅吗?
这让我想起之前看过的一篇文章,对话形式,语言诙谐幽默,深刻反映出bug产生的重要一方面。
如果你是工作几年的程序员,看到这些对话应该会深有体会。
下面结合我的一些过往经验,和看过的这篇文章的基本思路,论述bug产生的内因。

项目第一阶段:敏捷开发

老板安排程序员小张去修个房子。小张马上开始打地基!
老板开始捉急,对小张说:“你看隔壁那木房子就没有打地基,不要在小事上浪费时间,一个月,水平面上什么都看不到,你的KPI不要了?”
这是"敏捷开发"。

项目第二阶段:高速版本迭代

一层房子修好后,领导对小张说:“我觉得两层楼的视野好,再加一层”。
小张对老板说:“可是我们没有地基,重新打地基要时间……”
老板对小张说一楼都修好了,照着再修个一模一样的二楼很难吗?还要很多时间吗?
二楼修好后,老板对小张说,天天走路累死了,你再修个电梯。小张说“可是……”

老板再次捉急,没什么可是的,地基不稳?就在房子边上搭个电梯就行嘛,不稳的话,拿根木棍撑一下,这都不懂吗?
电梯修好后。
老板又提需求:“我觉得顶楼再加个游泳池就好了”。小张急了,这个结构,行业翘楚的房子也不支持呀!
老板得意起来,那不正显得我们牛逼么?快去修,夏天要来了。
这是“高速版本迭代期

项目第三阶段:打补丁

一切功能都就绪后,小张却慌了,看着摇摇欲坠的房子,跑路了。
老板找来新人小王继续,并对他说:“我觉得游泳池水不够满,你得加点,一楼光线不好你在墙上打个窗户。”
小王“信心满满”:好的,没问题老板,我这就加一桶水,马上砸墙
这是打补丁

项目第四阶段:莫名崩溃

房子塌了,电梯倒了,游泳池垮了……
老板怒斥小王真是个废物,就让你加桶水,居然能把房子弄倒,你说这是多没用!
小王一脸懵逼,自言自语道,我TMD就加了桶水,我怎么知道为什么。
这是软件莫名崩溃的bug!!!

以上对话看似夸张了一点,但凡工作过几年的程序员或多或少都有感触,项目周期短,开发急的要命,需求还没摸头,就开始一顿开发,最后上线无法落地,锅还背到了程序员头上。
留言说说,你认为bug是怎么产生的?

zhenguo原创精华PDF,倾情奉献给你,后台回复对应关键词下载,给文章点个赞:
继续阅读
阅读原文