不要成为工具的奴隶

开发人员很容易迷恋上工具,因为工具通常比较实用,而且具备明确定义的行为,比起学习最佳实践或方法,学习工具更为简单。然而,工具仅仅为解决问题提供协助,他们并不能自行解决问题。

![]/14004175-eaa991ecfe12f86c.JPG?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

一位理解问题实质的开发人员能够使用工具提高生产率和质量,而拙劣的程序员从来不投入时间或精力去理解如何更好的编程和如何避免缺陷,他们会花时间学习如何使用工具,但这种学习方式脱离了对工具目标以及如何高效使用的正确理解。

在某种程度上说,这其中有一部分是工具供应商的错,他们嗅到了为一些普遍问题提供支持是一条财路,比如说:

*缺陷追踪器,帮助你进行缺陷追踪管理

*版本控制系统,管理源代码更改

*敏捷开发支持工具(Version One, JIRA)

*调试器,帮助你寻找缺陷

市面上有很多工具,但在这里我仅仅浏览一下下面的列表,同时指出在哪些地方开发人员和组织正在经受挑战。记住,以下所有的统计数据都来源于40多年间的超过15000个项目。

缺陷跟踪器

一些公司还没有用过缺陷跟踪软件,不管你信不信,我反正是信了,我遇到过这样几个奇葩公司,你一定觉得难以置信吧。没有缺陷跟踪软件的结果是相当杯具的,我们有证据证实。

  不充分的缺陷跟踪方法:生产率 -15%,质量 -21%

就此我们达成了高度共识,那就是我们需要进行缺陷跟踪,并且我们都清楚,离开了这类工具,管理大量缺陷是不可能的。

  自动化缺陷跟踪工具:生产率 +18%,质量 26%*

先说一个问题,开发人员总是爱争执哪个缺陷跟踪系统最好,这里的根本问题在于,几乎每个缺陷跟踪系统设置不好都会导致糟糕的结果。实际上,如果每个缺陷跟踪系统都能进行合理配置的话,结果都会大有裨益。这里最常见的误区是:

*在缺陷生命周期状态中引入了不相关属性,即创建诸如”延期“, ”无法解决“或 ”已设计的功能“这样的状态。

*无法指出问题是否已被修复。

*无法理解谁负责解决缺陷。

工具的供应商非常乐意继续提供这些缺陷跟踪器的新版本,然而要高效地使用缺陷跟踪器,更多的是取决于如何使用好这个工具,而非选择哪一种工具。

很多公司都在设法解决的一个最基本的问题是:如何定义缺陷?缺陷通常是指代码没有遵照规范工作,但是假设我们没有规范或规范很烂,那又会如何?你可以看一下《It’s not a bug, it’s…》获取更多信息。

聪明的公司知道,是否理解缺陷跟踪器的工作方式会带来很大不同,你可以在《Bug Tracker Hell and How to Get Out》中找到更多缺陷跟踪系统的周边知识。

另一个普遍的问题是,公司通常会尝试在缺陷跟踪系统中管理新功能和需求,毕竟无论是需求还是缺陷都会导致代码变动,那么为什么不将所有信息都放到缺陷跟踪器中呢?你可以在《Don’t manage enhancements in the bug tracker》中学到为什么在缺陷跟踪系统中管理需求和新功能是愚蠢的。

版本控制系统

和缺陷控制系统一样,大部分开发人员都将版本控制视为是一个必须的“保健”过程,如果离开它,你就可能换上严重疾病(在最不合适的时间)。

  不充分的变动控制:生产率 -11%,质量 -16%
其实,所有的程序员都不喜欢版本控制系统,并且他们会相当直言不讳地指出版本控制系统所不能做到的事情。如果你很不幸,需要拍板最后用哪个版本控制系统,那么就宽慰一下自己吧,你的背后一定会有成群结队的家伙在诅咒你。

版本控制只是个开始,与选择哪个版本控制系统相比,理解如何组织代码、集成持续构建技术、确保缺陷对应正确的版本,这些也同样重要。

敏捷开发支持工具

很抱歉,对于Version One和JIRA,至简的真理是,使用敏捷开发工具并不能让你变得敏捷,看这里

当你真正理解敏捷开发的时候,你才能将这些工具的作用最大化,我有一个最高效的敏捷开发实现仅仅用到了Google Docs而已。

毋庸赘言。

调试器

我已经写了大量的文章,说明为什么调试器不是跟踪缺陷的最好工具,所以这里我会换一种说法!

在软件工程领域,最经久不衰的比率是1:10:100。也就是说,如果在测试前就能跟踪缺陷(即QA前)的成本为1的话,那么在QA阶段发现缺陷的成本就是10倍,如果在部署的时候被你的客户发现了,成本就是100倍,而大部分调试器在整个过程的10倍至100倍阶段才会被使用。

这并不是说我不喜欢调试器,我只是相信所谓的预先测试消除缺陷策略,因为它的成本很低,又能保证高质量,预先测试消除缺陷策略包括:

  规划代码,即PSP

测试驱动开发,TDD

契约式设计,DbC

代码审查

对复杂代码段进行结对编程

你可以在下面找到更多信息:

Defects are for Losers

Not planning is for Losers

Debuggers are for Losers

Are debuggers crutches

很少用到的工具

以下这些工具能够带来巨大的不同,但是很多开发人员却不用它们:

  自动化静态分析:生产率 +21%,质量 +31%

自动化单元测试:生产率 +17%,质量 +24%

自动化单元测试经常在测试驱动开发(TDD)或数据驱动开发中引入,同时伴随着持续开发技术。

  自动化功能点分级:生产率 +17%,质量 +24%

自动化质量与风险预测:生产率 +16%,质量 +23%

自动化测试覆盖率分析:生产率 +15%,质量 +21%

自动化部署支持:生产率 +15%,质量 +20%

自动化圈复杂度计算:生产率 +15%,质量 +20%

还没有工具支持的一些重要技术

我们还有一些软件开发的重要技术存在,但是那些工具供应商还没有找到赚钱的方式。这些技术往往被大多数开发人员忽略,即便它们能在生产率和质量上带来巨大改变。

个人软件过程和团队软件过程是由Watts Humphrey建立的,他是致力于构建高质量软件产品的先驱。

  个人软件过程:生产率 +21%,质量 +31%

团队软件过程:生产率 +21%,质量 +31%

代码审查的重要性可以在下面两篇文章中找到:

Inspections are not Optional

Software Professionals do Inspections

  代码审查:生产率 +21%,质量 +31%

需求审查:生产率 +18%,质量 +27%

正式的测试计划:生产率 +17%,质量 +24%

功能点分析(IFPUG):生产率 +16%,质量 +22%

总结

肯定是一大群开发人员认为使用工具能够使他们变得更给力。

但现实是,如果你脱离了对所要解决问题的实质的学习,仅仅去学一门工具的话,那就像你觉得你能够在篮球场上赢下乔丹,仅仅因为你拥有一双好的跑鞋。
学习工具并不能取代学习如何把一件事情做好。

真正给力的开发人员会持续学习那些能带来更高生产率和质量的技术,无论这门技术是不是有工具支持。

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

推荐阅读更多精彩内容

  • 1、通过CocoaPods安装项目名称项目信息 AFNetworking网络请求组件 FMDB本地数据库组件 SD...
    阳明先生_X自主阅读 15,975评论 3 119
  • 心态爆炸的一晚。
    李翕阅读 151评论 0 0
  • 每年的今天是我国法定的植树节,在我小区旁边看到了好多园艺工人在忙碌。让我想起了我的童年时代,那时在小学和初中的时候...
    TA77吴忠全阅读 139评论 0 1
  • 万事皆有因果,你种下了一个冒险的种子,就必会有日后受乱的可能,不要心怀侥幸。 你享受了其中的幸福快乐,就必要付出一...
    菜菜子Yonan阅读 245评论 0 4
  • 万物复苏,花开叶茂的4月,慢慢走远了。她为这个世界大部分地区带来了生机勃勃的绿色,眼看着书房窗外一对野生喜鹊的家,...
    袁春楠阅读 202评论 0 0