不重视TDD与Code Review的代价

业界资讯 来源:SDK.cn 发布:2016-12-19 浏览:3822

摘要: 近些年来,越来越多的人开始向我咨询测试驱动开发(TDD)的好处。所谓TDD,就是在将代码进行部署之前,利用各种自动化测试来确保代码能够正常工作。在进行测试的时候,你需要寻找测试失败的地方,然后不断修改,必要的时候还需要对代码进行重写。实践证明,TDD是软件开发过程中必不可少的一环。而且它还能够帮助企业和员工节省大量的时间。

 近些年来,越来越多的人开始向我咨询测试驱动开发(TDD)的好处。所谓TDD,就是在将代码进行部署之前,利用各种自动化测试来确保代码能够正常工作。在进行测试的时候,你需要寻找测试失败的地方,然后不断修改,必要的时候还需要对代码进行重写。

实践证明,TDD是软件开发过程中必不可少的一环。而且它还能够帮助企业和员工节省大量的时间。

你需要知道的是,TDD能帮你减少40-80%的代码错误修复时间。要知道,生产代码中的bug越多,你所需要付出的维护成本就越高。

BM System Sciences Institute的研究显示,在生产阶段修复代码的时间,是在设计阶段修复代码时间的100倍以上,是部署阶段修复代码世界的15倍以上。

 

利用这组数据,我们来看看如果不使用TDD,我们需要多花多少时间成本。如果没有TDD,你的项目在部署阶段就需要花费1000个小时的时间,其中还没有包括维护时间成本:

 

也就是说,TDD能够帮你省下623个小时的时间,假如你的工程团队有4个人,这意味着能帮你省下1一个月的开发时间。美国开发者的平均年薪为9.5万美元,再算上这些人的福利,TDD能帮你省下3.7万美元。

当然,这只是粗略的计算,TDD能帮你省下多少成本,还应取决于很多其他因素。

但是TDD的重要程度依然可见一斑,它的确能够帮你节省下大量的时间和经济成本。

Code Review的作用

TDD一样,Code Review也有着类似的作用。事实上,一些研究显示,Code Review甚至比TDD更能帮你节省成本。1988年的一项研究显示,一小时的Code Review,能帮你在后期节省33个小时的代码维护时间。

这个数字看上去很惊人吧?但是我个人认为,在寻找bug方面,Code Review并没有自动化工具好用。那么Code Review究竟有什么用处呢?

知识分享。在引入Code Review之后,你的团队会自动开始在彼此之间分享各自的知识、经验和工作方式。这样一来团队中的每个人都会开始更快的成长,初期工程师不断的向高级工程师进行学习,同时团队也开始不断成长。对于企业来说,拥有一个优秀的工程团队,是企业最重要的资产之一。

开发者最怕打扰

修复bug需要我们付出什么样的成本?在生产阶段修复代码,实际上其成本要远高于在开发阶段修复bug,而且会让开发者非常头疼。

在生产阶段发现bug之后,开发者必须要放下手头的工作,去解决这个bug。换句话说,开发者本来正沉浸于一项工作当中,但是不得不跳出当下的情境 ,进入bug修复情境 。在修复了bug了之后,再跳回到之前的情境 中。

切换一次情境大约需要20分钟的时间。而且更糟的是,在发现了一个bug之后,很多时候意味着开发者此前做的工作都会受到这个bug的影响,他们很多的工作都需要推到重来。Microsoft Research的研究显示,在受到打扰之后,开发者需要花费预期中双倍的时间来完成这个任务,而且出错的几率也会加倍

让开发者去处理多任务,这绝对不是一个好主意。要想提高他们的工作效率,那就应该让他们专注于一件事情。

总结

如果有人对你说他们没有时间或是预算使用TDDCode Review的时候,你不妨给他讲讲TDDCode Review能帮他省下多少时间和经济成本。

qrcode_for_gh_9de197bcc61b_258.jpg

原    文:The Outrageous Cost of Skipping TDD & Code Reviews
译    文:SDK.cn
作    者:鲁行云(编译)

免责声明:

  1. SDK.cn遵循行业规范,所有转载文章均征得作者同意授权并明确标注来源和链接。
  2. 我们十分尊重原创作者的付出,本站禁止二次转载如需转载请与原作者取得联系。
  3. 转载SDK.cn的原创文章需注明文章作者、链接和"来源:SDK.cn"并保留文章及标题完整性未经作者同意不得擅自修改。
  4. 作者投稿可能会经SDK.cn适当编辑修改或补充。
推荐工具 意见反馈