我所在组织中的软件开发团队(负责开发API中间件)正准备一次至少采用一种最佳实践。以下是列表中的内容:
单元测试(真正意义上的),自动化单元测试,测试驱动的设计和开发,静态代码分析,持续集成能力,等等。
谁能给我指出一项研究,该研究表明,哪些“最佳”实践在采用时具有更好的ROI,并更快地提高软件质量。外面有研究吗?这应该有助于我(支持我的主张)确定这些实践的实现的优先级。
发布于 2008-11-27 02:47:21
“一项研究表明,哪些‘最佳’实践在采用时具有更好的ROI,并更快地提高软件质量。”
那不是很棒吗?如果真有这样的事情,我们都会这么做,你只需要在DDJ上读到它就行了。
既然没有,你就得做出痛苦的判断。
没有“投资回报率为8%的do X”。其中一些技术需要大量投资。其他的可以免费启动。
你不可能知道投资回报率。所以你只能优先考虑投资。有些东西比其他东西更容易被人们采用。你必须考虑到你的团队是否愿意接受这项技术。
编辑。单元测试是免费的。
战争故事
本周,我不得不完成一个批量数据加载器;它验证并加载了我们从客户那里接受的30,000个行文件。我们有一个很好的库,用来上传一些内部开发的文件。我想将该模块用于客户文件。但是客户文件有很大的不同,我可以看出库模块API并不是真正合适的。
因此,我重写了API,重新运行测试,并将更改签入。这是一个重大的API变化。很多破损。找到每一个引用并修复它们的源码。
在运行相关测试后,我将其签入。然后,我重新运行了一个我认为不是紧密相关的测试。哦哦。它失败了。它正在测试的东西不是API的一部分,它也崩溃了。已修复。再次签到(晚了一个小时)。
如果没有基本的单元测试,这将破坏QA,需要错误报告,需要调试和返工。看一下工作量:1小时的QA人员找到并报告bug +2小时的开发人员时间来重建QA场景并定位问题+1小时来确定要修复的内容。
使用单元测试:1小时来意识到测试没有通过,并修复代码。
底线。我写测试花了3个小时吗?不是的。但是这个项目从我写测试的投资中得到了三个小时的回报。
发布于 2008-11-27 02:50:18
你在找这样的东西吗?
发布于 2008-11-27 12:14:58
您假设您所呈现的列表构成了一组“最佳实践”(尽管我同意这一点,顺便说一句)
与其试图挑选一个流程变更,为什么不检查一下您当前的实践呢?
问问你自己:
你觉得哪里最痛?您可能会更改哪些内容来减少/消除它?
重复以上步骤直到不痛为止。
https://stackoverflow.com/questions/322807
复制相似问题