程序猿嘛,难免会被BUG缠身,我相信,没有一个程序猿在被BUG缠身时是感觉轻松的,消灭BUG一定是你最大的愿望。本周,我们团队的项目进入调试阶段,各种BUG层出不穷,眼看下个周就要进行项目答辩会,所以每个成员都绷紧了神经,与时间赛跑,一路过关斩将,解除一个一个的BUG。今天,我们就来简单谈一下,我们应该如何对待这位特殊的“朋友”——BUG:

  BUG,一种传说中的昆虫类爬行动物。形状多变,往往根据生存环境随意变换其外形特征。常常和一类叫做“程序猿”的灵长类动物共存。程序猿在工作之余,常以捕杀BUG作为消遣。当某些BUG演变成具有较大破坏性的时候,需要集体捕杀,或是替别人捕杀BUG的情况也时有发生。

  一个项目的推进,通常有四种情况:

  第一种,负责的程序猿,紧张的进度——这种情况往往是快速试错、快速迭代的开发流程,开发过程中,可能会出现一些BUG,但因为程序猿是负责的,项目收尾时会有自发的BUG清理;

  第二种,不负责的程序猿,紧张的进度——情况基本和第一种情况类似,但是在最后项目中会埋下很多未处理的BUG的蛹,给维护带来很多不便和负担;

  第三种,负责的程序猿,不那么紧张的进度——这种时候可以不满不慌的,三思而后行,这样一来BUG会很少,而且也不好留下BUG的蛹,甚至会出现BUG Free的情况,但是开发速度有点缓慢;

  第四种,不负责任的程序猿,进度是不是紧张,他们不管——做得越少,错得越少。这种情况下,BUG会大量滋生,最终可能会危及整个项目的人身安全,而且项目能不能如期完成,程序猿也高高挂起。

  不管在项目开发中,处于哪一种状态,在进度与责任之间,程序猿的平衡直接导致了BUG的滋生与否,但是还有一个原因,那就是上层管理者的态度。如果一个项目中有很多BUG,而且有一些因为寄生太久,已经搞不清是从哪里冒出来的,又要怎么捕杀这些BUG从而力求达到一个BUG Free的环境?

  团队很小的时候,可以自发指定一些规则,大家自觉维护代码的质量,BUG一抓一个准,抓一个修一个。。一些平时因为种种情况(懒、耍滑、太忙、不太懂······)从来对BUG都是连推带拖的人,找他抓BUG的人会很少,对这种人而言,系统了解不少,但是也省出了一些时间。所以从某种意义上来讲,不部分所有权明确的BUG很容易被处理,而一些三不管地带的BUG往往可以被一再忽视,成为千年老BUG,给项目的运营带来隐患。比如,这里有些某项目遗留的BUG,但是整个项目组的拆了;再比如,一个前员工留下的BUG,但是这个人已经离开很久了······而这样的BUG,如果没有从上层发起重视和方案,或者是几个真正把公司的事看成自己的事的能人,往往不论英雄多少用户,都不会被重视。这时,有人可能会说:可以通过一定的奖励机制来鼓励维修BUG。但是, 这种机制也会遭到质疑:1.奖励修BUG,必然有很多组投身修理更多的BUG,这会不会伤害到代码的质量呢?2.修理自己的BUG,该不该奖励?3.有人会过度热衷于修BUG而影响正常的开发工作?

  说到这里,我不禁想起了某公司的一位高管所说的一句话:很多BUG的道路,就好像在没有告诉公路上行驶的很多车辆。不论怎样,你都快不了。当有这样一个机制来鼓励清理BUG时,就好像是修了一条高速公路。这虽然不能保证所有的时候所有的车都可以畅通无阻,也不可避免所有的人开始飙车,引起别的问题。但至少,在这条路上,除非出了事故,否则你就有了最低限速,确保大部分时候,还是比没有这条路时,交通要好的多。你们说呢?

  清理BUG,奖励清理BUG,待BUG好一点,你的项目会绽放出更美丽的花朵!

朋友,请待你的朋友——BUG好一点!的更多相关文章

  1. 最近修bug的一点感悟

    写在前面话 项目从13年1月份,现场开发,4月中旬,项目开发接近尾声,三个开发,留两个在现场,我被调回公司,5月份现场一同事离职,只有一个同事在开发,结果PM想让这一个同事承担余下的开发和bug工作, ...

  2. 谈谈对bug的一点想法,说说做好日志记录的重要性

    说起程序猿,总绕不开的一个话题就是bug,估计每个程序猿听到某某测试跑过来一脸淫笑的告诉你这个功能有个bug的时候,总有种恨不得掐死他的想法.其实程序猿跟bug的关系,感觉有点像父亲和儿子的关系,自己 ...

  3. ubuntu14.04下CPU的caffe配置,不成功的朋友请与我(lee)联系,后面附带邮箱

    因广大朋友需求cpu的caffe配置.所以我(lee)在这份博客中对cpu配置caffe做出对应操作说明.希望能够解决大家对cpu配置caffe的困惑.少走弯路. 假设有安装不成功的朋友能够和我联系, ...

  4. 关于提BUG的一点思考以及工作中总结的规范

    在测试的工作中,提BUG是日常工作. 以前自己为了省事,省时,仅仅是截图,在图片上注明一下问题,就放到BUG库中了. 现在发现这样会造成开发的时间的浪费,增加了沟通成本. 对于BUG,当发现了异常时, ...

  5. 调bug的一点感悟

    出错时一定要先看错误日志,要知道出什么错了,所以平常在可能出错的地方都要输出错误日志. 不要根据脑中的设想去调bug,时间久了就没有耐心,一烦躁起来,思维定势了,就越调不出来了. 所以一般半小时还找不 ...

  6. 论 BUG调试与(程序猿)初学者

    作为一枚程序猿,BUG调试是最基本的技能,对于初学者更是重中之重.个人而言,要想为自己的程序猿生涯更上一层楼,就得知道什么是BUG调试,而且还必须知道怎么调好BUG.那么BUG究竟是什么呢?在我之前的 ...

  7. iOS开发常见BUG和一些小技巧(ps:耐心看完,很实用)

    [385][scrollView不接受点击事件,是因为事件传递失败] // // MyScrollView.m // Created by beyond on 15/6/6. // Copyright ...

  8. 海王星给你好看!FineUI v4.0公测版发布暨《你找BUG我送书》活动开始(活动已结束!)

    <FineUI v4.0 你找BUG我送书>活动已结束,恭喜如下三位网友获得由 FineUI 作者亲自翻译的图书<jQuery实战 第二版>! 奋斗~ 吉吉﹑ purplebo ...

  9. SQL Server 优化器特性导致的内存授予相关BUG

    我们有时会遇到一些坑,要不填平,要不绕过.这里为大家介绍一个相关SQL Server优化器方面的特性导致内存授予的相关BUG,及相关解决方式,也顺便回答下邹建同学的相关疑问. 问题描述 一个简单的查询 ...

随机推荐

  1. 0002_20190328_Centos修改系统时间

    一.   设置修改时间: 查看当前时区: [root@localhost bin]# date -R Thu, Mar :: + 2. 查看时间和日期: [root@localhost bin]# d ...

  2. 第1课 GUI程序原理分析

    1. 命令行应用程序 (1)命令行应用程序的特点 ①是一种基于顺序执行结构的可执行程序 ②程序执行过程中不需要与用户产生交互 ③程序执行后给出最终的运行结果 (2)命令行应用程序的运行模式——程序运行 ...

  3. 【BZOJ】1801 [Ahoi2009]chess 中国象棋(dp)

    题目 传送门:QWQ 分析 发现我们关心的不是棋子的位置,我们只关心棋子数量就ok. 首先每行每列最多两个棋子.这是显然的. 然后我觉得本题最难的部分就是对行进行讨论,蒟蒻我一直被限制在了对格点讨论. ...

  4. OpenCL 三种内存对象的使用

    ▶ 包括带有 CL_MEM_READ_ONLY,CL_MEM_WRITE_ONLY,CL_MEM_READ_WRITE 标识的显示拷贝(函数 clEnqueueWriteBuffer 和 clEnqu ...

  5. PHP 成长规划

    PHP程序员的技术成长规划 作者:黑夜路人(2014/10/15) 转:http://blog.csdn.net/heiyeshuwu/article/details/40098043 按照了解的很多 ...

  6. autocomplete.js的使用(2):自动输入时,出现下拉选择框

    <!--自动输入文本值所需的jquery文件--><script src="/js/jquery-1.8.3.min.js" type="text/Ja ...

  7. 启动tomcat报:No Spring WebApplicationInitializer types detected on classpath

    提示找不到web容器,有可能是未加载到spring配置文件,可能是配置文件所在的文件夹未发布或者发布的路径不对导致无法找到 右键web项目,选择properties 查看Deployment Asse ...

  8. 自制精排 ePub 集、不定期更新(UPDATA-2015-8-2)

    说明 排版不说最好,上乘是必须的. 段落空行 首行缩进 具备清爽元数据 包含高清封面.目录 图片居中,图片标题以下标形式居中位于图片下* 支持多看/Kindle原生系统弹出注释,其他软件跳转注释* 各 ...

  9. for 续9

    -------siwuxie095                 for 拾遗:         一: for 语句里,do 后面一般会有括号,有括号就是复合语句, 假如需要用到括号里的变量,就需要 ...

  10. Ubuntu使用ttyS*(如mincom)时不需root权限的方法

    很久很久以前,我们在Ubuntu下使用软件(如minicom.screen等)访问串口时,是不需要任何超级权限的(使用minicom时,只有使用-s选项时需要root权限):不知道从哪个版本(12.0 ...