朋友,请待你的朋友——BUG好一点!
程序猿嘛,难免会被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好一点!的更多相关文章
- 最近修bug的一点感悟
写在前面话 项目从13年1月份,现场开发,4月中旬,项目开发接近尾声,三个开发,留两个在现场,我被调回公司,5月份现场一同事离职,只有一个同事在开发,结果PM想让这一个同事承担余下的开发和bug工作, ...
- 谈谈对bug的一点想法,说说做好日志记录的重要性
说起程序猿,总绕不开的一个话题就是bug,估计每个程序猿听到某某测试跑过来一脸淫笑的告诉你这个功能有个bug的时候,总有种恨不得掐死他的想法.其实程序猿跟bug的关系,感觉有点像父亲和儿子的关系,自己 ...
- ubuntu14.04下CPU的caffe配置,不成功的朋友请与我(lee)联系,后面附带邮箱
因广大朋友需求cpu的caffe配置.所以我(lee)在这份博客中对cpu配置caffe做出对应操作说明.希望能够解决大家对cpu配置caffe的困惑.少走弯路. 假设有安装不成功的朋友能够和我联系, ...
- 关于提BUG的一点思考以及工作中总结的规范
在测试的工作中,提BUG是日常工作. 以前自己为了省事,省时,仅仅是截图,在图片上注明一下问题,就放到BUG库中了. 现在发现这样会造成开发的时间的浪费,增加了沟通成本. 对于BUG,当发现了异常时, ...
- 调bug的一点感悟
出错时一定要先看错误日志,要知道出什么错了,所以平常在可能出错的地方都要输出错误日志. 不要根据脑中的设想去调bug,时间久了就没有耐心,一烦躁起来,思维定势了,就越调不出来了. 所以一般半小时还找不 ...
- 论 BUG调试与(程序猿)初学者
作为一枚程序猿,BUG调试是最基本的技能,对于初学者更是重中之重.个人而言,要想为自己的程序猿生涯更上一层楼,就得知道什么是BUG调试,而且还必须知道怎么调好BUG.那么BUG究竟是什么呢?在我之前的 ...
- iOS开发常见BUG和一些小技巧(ps:耐心看完,很实用)
[385][scrollView不接受点击事件,是因为事件传递失败] // // MyScrollView.m // Created by beyond on 15/6/6. // Copyright ...
- 海王星给你好看!FineUI v4.0公测版发布暨《你找BUG我送书》活动开始(活动已结束!)
<FineUI v4.0 你找BUG我送书>活动已结束,恭喜如下三位网友获得由 FineUI 作者亲自翻译的图书<jQuery实战 第二版>! 奋斗~ 吉吉﹑ purplebo ...
- SQL Server 优化器特性导致的内存授予相关BUG
我们有时会遇到一些坑,要不填平,要不绕过.这里为大家介绍一个相关SQL Server优化器方面的特性导致内存授予的相关BUG,及相关解决方式,也顺便回答下邹建同学的相关疑问. 问题描述 一个简单的查询 ...
随机推荐
- hihocoder-1080题解
一.题目链接 http://hihocoder.com/problemset/problem/1080 二.题意 一维区间,需要做区间增加和区间置值,以及对整个区间求和. 三.思路 显然线段树是个利器 ...
- pythonNet day07
信号 一个进程向另外一个进程通过信号的方式传递某种讯息,接收方在接收到信号后作出相应的处理 查看信号:kill -l kill -signum PID 给PID的进程发送一个信号 信号名称:信号的名字 ...
- 6.2笔记-DQL语句查询数据库
一.DQL语句 1.常量列 SELECT `StudentName` AS 姓名, `Address` AS 地址, '北京信息中心' AS 学校名称 FROM `student`; 2.常用函数 聚 ...
- Spring Boot实践——统一异常处理
注解说明 @ControllerAdvice,是Spring3.2提供的新注解,从名字上可以看出大体意思是控制器增强.让我们先看看@ControllerAdvice的实现: /** * Special ...
- 有单例模式 Singleton 涉及的一些防止类被继承的东西
c#中 : ------------------------------- 当对一个类应用 sealed 修饰符时,此修饰符会阻止其他类从该类继承. java中: ------------------ ...
- C#中DateTime详解
//2008年4月24日 System.DateTime.Now.ToString("D"); //2008-4-24 System.DateTime.Now.ToString(& ...
- 关于SQLServer2000中触发器的使用——多行数据提交
关于触发器的使用,有很多争议.触发器的好处不言而喻是增强了数据的校验能力,能够有效地实现复杂的业务逻辑.在一定程度上走的比约束和check走的更远.关于触发器的坏处,最典型的就是触发器的使用会导致系统 ...
- 迷你MVVM框架 avalonjs 1.3.3发布
大家可以在仓库中看到,多出了一个叫avalon.observe的东西,它是基于Object.observe,dataset, Promise等新API实现.其中,它也使用全新的静态收集依赖的机制,这个 ...
- LevelDB 整体架构
[LevelDB 整体架构] 从图中可以看出,构成LevelDb静态结构的包括六个主要部分:内存中的MemTable和Immutable MemTable以及磁盘上的几种主要文件:Curren ...
- JAVA - 守护线程(Daemon Thread)
转载自:http://www.cnblogs.com/luochengor/archive/2011/08/11/2134818.html 在Java中有两类线程:用户线程 (User Thread) ...