不要成为工具的奴隶

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

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

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

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

  一些公司还没有用过缺陷跟踪软件,不管你信不信,我反正是信了,我遇到过这样几个奇葩公司,你一定觉得难以置信吧。没有缺陷跟踪软件的结果是相当杯具的,我们有证据证实。 欢迎加入全栈开发交流划水交流圈:582735936
面向划水1-3年前端人员
帮助突破划水瓶颈,提升思维能力

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

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

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

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

  不充分的变动控制:生产率 -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%

 总结

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

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

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

相关资源:MinionProfitsTracker:随着市场价格波动,轻松识别最赚钱的奴才[在…

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2018年11月1日
下一篇 2018年11月1日

相关推荐