我们目前正在修改开发流程,我想知道我们是否应该尝试对100%的提交同行进行审查。
您在代码审查方面有什么经验?
- 您倾向于在它们上花费“大量”时间(例如每天1/2小时),还是只浏览最大5/10分钟?
- 您每天/每周/每个冲刺/项目是否有固定的时间花费?
- 最重要的是,您认为目标应该是对100%的代码进行同行评审还是不需要100%?
我们目前正在修改开发流程,我想知道我们是否应该尝试对100%的提交同行进行审查。
您在代码审查方面有什么经验?
Answers:
每个故事中都有一个“代码审查”任务。理想情况下,不参与该故事开发的人员将审查与该故事相关的所有代码更改。它运作良好。
很多时间?不是很多,取决于多少代码-我们正在寻找明显的错误,错别字,基本逻辑健全性检查,未捕获的异常等。
这是发现错误的质量步骤,因此具有一定的价值。分配时间可能不是最好的方法-如果某件事相当复杂,应该对其进行代码审查呢?
顺便说一句,其他人进行代码检查很重要。
复审覆盖代码的全部内容更重要的问题是复审的有效性。如果您的评论发现很少或没有问题,那么完全覆盖将毫无用处。
首先要使您的评论更具效果,然后再决定覆盖范围。
审查不仅应在代码上进行,而且还应在设计上进行。
此外,评论不能替代测试和工具:
尝试将每月(或每个冲刺)的预设时间专用于评论。使用试探法在下一个专用插槽中选择要查看的代码:
请记住,您正在查看代码(或设计或测试),而不是作者。
我推荐以下阅读材料:
在一个理想的世界中,作者的所有内容都将由作者明确阅读,并由至少另一个人进行同行评审,从需求规范到用户手册再到测试用例。但是评论甚至是简单的桌面检查都需要花费时间和金钱。这意味着您需要选择应该查看的内容以及何时查看。
我建议优先考虑要检查的事情,选择要如何检查它们,并尝试使用适当的详细程度进行尽可能多的检查。可以根据工件的类型来确定优先级,例如指出必须审查需求,应该审查设计和生产代码以及可以审查测试用例。在此范围内,您还可以指定高风险或高价值组件应优先接受审核,或者可能是更正式的审核。
就时间而言,一切都可以追溯到组件的优先级。有时候,我花了10到15分钟进行审核,有时又有多个人分别阅读代码,然后进入一个房间进行更正式的检查过程,该过程持续30-45分钟(取决于检查的大小)模块)。
最后,它是时间,成本,范围和质量之间的平衡。您不可能全部拥有它们,因此您需要优化自己可以使用的位置。
我每天预留一个小时进行同行评审,但并不总是需要它。我们的代码库在几十个产品中共享。我们的政策是,无需检查即可签入一种产品的唯一代码的小改动。更复杂的单产品更改需要进行审核,但可能非正式地打电话给同事到您的办公桌再进行一次。共享代码的更改需要更正式的审核,包括其他产品的开发人员。我认为与我工作过的其他公司相比,我们的政策取得了相当不错的平衡。
我每天花在审查上的时间要多于一些中心角色较少的同事,但我认为这不是不合理的时间,因为在执行审查策略之前,我可以轻松地花费比查找开发人员错误更多的时间在介绍的另一种产品上。
我们已经完成了100%的代码审查。它比测试便宜得多,尤其是100%代码覆盖率测试。我们不会花太多时间在它们上面,每天复查一个小时以上会降低工作效率。(30分钟不是很多)。
在调零过程中,请注意。你发现了什么?质量检查后来发现了什么?您的客户发现了什么?为什么这些虫子逃脱了您?
定期进行代码审查,主要用于团队建设和共享实施思想。您可以通过这种方式从同事那里学到很多东西。