关于说服老板代码审查是一件好事的提示[关闭]


20

假设一个假设的公司中有一个工作,该公司中有几个开发人员很少在项目上一起工作,而Boss认为代码审查不值得花费时间和成本。

在此方案中可以提出哪些各种参数,这些参数将说明代码审查的好处?此外,这里反对代码审查的潜在论点是什么?如何应对?

Answers:


25

如果您必须为此类基本内容辩护,那么您会遇到更大的问题。

您是专家,您的团队应决定使用哪种做法。也许您应该开始说服老板相信这一非常重要的原则。

您的老板应该决定要做什么,更重要的是为什么要这样做。您应该注意如何构建它

(这当然并不意味着您不能建议您在公司中做什么以及为什么要这样做)。一位出色的老板应鼓励其员工参与企业战略)

但是,这是我如何查看对等代码的评论:

因为编程是一项非常密集的智力工作,所以一个人无法确保所有内容都是完美的。因此,代码检查可确保:

  • 在发布应用程序之前发现漏洞或错误
  • 开发人员之间不断进行相互教育(几乎免费)
  • 代码方面的标准,可简化应用程序维护
  • 代码符合要求

每个人都从中直接受益:

  • 开发人员可以增加自己的知识并可以将自己的知识传递给队友
  • 错误少,维护支出少的客户/用户
  • 拥有更满意的客户/用户并且花费更少的培训的老板

1
您可以提到它平均捕获了65%的缺陷,不仅如此,而且还捕获了许多单元测试通常没有的缺陷。
Spudd86

您有共享该研究的链接,以便将来使用吗?

2
在格雷格·威尔逊(Greg Wilson)的演讲“证据的点点滴滴”的幻灯片21中,他声称“严格的检查可以消除在进行第一次测试之前的60-90%的错误。(Fagan 1975)”他引用了很多文章。:)
Scott Whitlock

7

代码审查可以使多个开发人员熟悉相同的代码。这是一件好事。如果原始作者决定退出或更糟的情况,那么他会遇到不好的事情。如果定期进行代码审查,其他人可以迅速接管。

同行也许可以在代码审查期间发现潜在的错误或性能问题。这样可以减少质量检查和开发工作。这可以补偿代码审查中涉及的额外费用。

代码审查可促进知识共享。同行可以说出更好的方法或做事的替代方法。我自己已经通过代码审查从同行那里学到了很多东西。

代码审查有助于加强团队遵循的编码准则。如果团队没有成员,则需要纠正。代码只能编写一次并读取多次。编码准则是迈向可读代码的一步。代码意味着对等体可以读取。有什么比进行代码审查来确保可读性更好的方法呢?


4

这里有很多很棒的答案。我会添加一些内容:

当您不得不向其他人解释代码时,通常在解释过程中,开发人员可能会突然意识到他有错误。我已经看到它一次又一次地发生,开发人员停在他的轨道上,并在审阅者足够了解该错误之前说“哦,这是错误的”。

知道您的代码将被其他人检查可以使您更有动力使用编码标准(使维护更加容易)或使用更少的“牛仔”方法,只有您自己(有时甚至您自己)都无法理解。当您向他人展示您的代码时,您不想感到尴尬,因此首先您可以在代码上做得更好。由于尴尬的原因,它很少用以下代码注释:“我不知道为什么这样做,但不要弄乱它。” 在代码库中。

容易确定需要更广泛的监督或培训的开发人员。彻底的无能也是如此。您越早发现并解决性能问题,整个团队的工作就会越好,应用程序的质量也会越高。在选拔需要培训的新手之前,先找出这些信息,然后将其分配给应用程序中最困难,最关键的部分。

有时,只是纠正错误的看法而已,这可以避免在其他许多地方犯同样的错误。例如,我们最近正在审查一些复杂报表的SQL,发现我们的一些新开发人员对在数据库中何处查找特定信息存在相同的误解(诚然,他们选择的位置似乎合乎逻辑,这是我们在数据库设计中遇到的问题)还需要修复),这对于正确编写所有报告至关重要。通过发现问题并在他们编写的第一份报告中予以纠正,它避免了其余报告中发生的相同错误。某些较老的(过去在这里工作而不是年龄的)开发人员已经习惯了,他们认为不需要解释。

大三学生可以从大四学生编写的更复杂的代码中学习(例如,他们倾向于更好地理解错误陷阱和边缘情况),大四学生可以从大三学生使用的尚未接触过的新技术中学习。

有时,在应用程序不同但相关的部分上工作的人们意识到,他们朝着两个不同且互斥的方向前进。糟糕,现在更容易修复。

潜入硬编码的值并不是一件容易的事,这些值会随着时间的流逝而改变,以使事情立即生效。这样可以防止将来出现许多错误,例如在每个会计年度开始时发生更改的错误。

有时,我一直被困在如何做某事上,并学到了一种新技术,正是我希望通过代码审查别人的东西来获得的。

如果您熟悉团队其他成员的想法(哪种代码审查有助于您了解),那么以后解决问题将变得更加容易,因为您将从了解Joe如何处理此类问题开始。问题。


2

以及其他人提到的知识共享,找到在代码审查中发现的错误的示例,并衡量其修复所需的时间-这包括花在研究问题和发布补丁版本上的时间以及修复错误的实际时间。

承担这笔费用,这可能至少要花费几天的时间,并将其与您在代码审查和对结果进行操作上所花费的时间进行对比。

这将向您的老板表明代码审查值得花费。


2

代码审查可以:

  • 导致开发可以共享的代码库
  • 为变量,常量,数据库表提供统一的命名约定
  • 帮助简化流程
  • 还可导致对发现过程和需求收集的审查
  • 导致小部件的开发,我们可以将其作为应用程序的附件出售。(每次实施时,一旦获得付款,请构建它
  • 导致新产品

缺点

  • 我们没有时间

如果这是事实,那么我们似乎总是有时间为同一位客户做两三遍,但我们却没有足够的时间在第一时间做对。


0

如果您需要参考文档,那么我将敬请期待的“代码完成”。在本书中,该书描述了单元测试和同行评审所捕获的错误数量。太惊人了 单元测试,如果我的记忆力对的话,只能捕获大约30%的所有错误,而正式的同行评审则可以捕获大约70%的错误。

获取这些信息,在书中给他看,然后诉诸财务。与早发现漏洞相比,允许漏洞通过的时间更长,成本也更高。


0

如何运行由两个团队并行执行的演示(一个为期一周的“米老鼠”式项目),一个团队使用代码审查,而另一个则没有。

在一周结束时,评估每个团队的工作质量,我很确定代码审查员会变得更好。


每个团队4人= 8人= 2个月的工资。在许多组织中,这将需要大量熟练的说服力:)
Michael Durrant 2014年


0

展示时,请专注于更大的图片。

列出好处(更好的代码,更少的错误,更少的重写等),并提及代码审查作为您推荐的技术之一

我会把它作为做软件技巧的大局的一部分

  • 代码审查
  • 测试
  • 回顾性
  • 知识共享
  • 教育
  • 书评
  • 午餐时间讲座

准备自己做很多工作来推广这些原则。
大多数人都不希望说服力成为“一次会议并完成”。
您应该随着时间的流逝保持冷静和一致。当您对本来可以通过更好的技术解决的错误感到最恼火时,通常是最糟糕的时机,因为您更有可能过于情绪化,缺乏理性。这似乎有点反感,但这是我在30多年的编程中学到的。显然是ymmv。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.