程序猿嘛,难免会被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. java的文件上传和下载 抄袭别人的.在底部有说明.

    =======后续 这里采用的是输出流的方式,我电脑装的是windows系统,测试没有问题,但是当把项目放到Linux系统上跑时,就会出现保存位置错误的情况, 指定的路径就会被当做文件名的一部分保存了 ...

  2. javascript使用bind指定接收者

    var json = { jArray: [], jPush: function (c) { this.jArray.push(c); } } var examp = ["123" ...

  3. 第7课 Qt中的坐标系统

    1. 坐标系统 (1)GUI操作系统都有特定的坐标系统 (2)图形界面程序在坐标系统中进行窗口和部件的定位 (3)定位类型 ①顶级窗口部件的定位 ②窗口内部件的定位 ③窗口部件的大小设置 (4)QWi ...

  4. 安装配置Android开发环境SDK

    引言: 好搞事情,搞点移动端测试高大尚的东西,首先先得把环境搭建起来: 1.下载 握了个草,很多网站都直接推荐到android官网去下载,叔不知google官网早就被我大天朝给墙了,对于不喜欢FQ的天 ...

  5. bootstrap的datetimepicker.js的结束时间大于开始时间,当前日期之前的代码

    感觉不错的代码,贴出来,以后接着用 <link href="__ROOT__static/css/bootstrap-datetimepicker.min.css " rel ...

  6. 阻止后续事件的发生 onclick 双return 事件绑定(..$).click一个return

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  7. vlc相关命令行设置

    1:改变VLC模块参数   http://tianxiaoma.blog.51cto.com/1501174/309519 ====================================== ...

  8. UNITY 接讯飞语音过程总结

    11:13 2017/3/141,安装问题:JDK与ECLIPSE位数一定要对应,32位对64位会出现 java was returned ....code 13的弹框错误.版本号可以不一致.2,EC ...

  9. 创建maven版的java工程

    步骤如下: 1.第一步 2.第二步: 3.第三步:

  10. A*—java代码

    import java.util.ArrayList; // A*算法寻路 public class AStar2 { public static final int[][] maps = { {0, ...