如何与不喜欢代码审查想法的人打交道?


26

显然,如果管理层愿意花时间进行代码审查,那么每个人都必须这样做。

但是总会有一些人(或女孩)对自己的每一分都抵抗。

当您作为同行审阅者处理此方案时,您如何有效管理该方案?


19
与对待与其他事项(例如着装,及时性,病假等)有问题的人打交道的方式大致相同。
Josh K

呵呵。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
ozz 2011年

3
老实说:告诉他们闭嘴并做。这是为了自己的利益。
史蒂文·埃弗斯

1
抵抗什么?让您查看他们的代码还是他们查看您的代码?他们可能会避免冲突,他们会期望发生冲突吗?你知道他们为什么犹豫吗?
马丁·马特

Answers:


46

他因为恐惧而抗拒。造成这种状况的原因可能是以前在小时候,在学校,在工作甚至在您目前的团队中接受复习的不良经验造成的。在我们的现代社会中,将某人的工作成果与他作为人的价值相混淆是很常见的。这就是为什么不能很好地进行工作审查的原因。这就是为什么在公开恐惧心理(恐惧恐惧症)之一中公开演讲的原因。

为了避免这种行为,您将需要一些心理学。您必须通过使他对代码审查不敏感来向他的蜥蜴大脑证明这不会发生(不会被审判,侮辱,杀害……)。

我发现解除阻止某人的最有效方法之一是,在要求查看他的代码之前,请他查看您的代码。

一段时间后,建议他阅读其代码以从中学习,以及为什么不建议改进。当您发现需要更改的内容时,请注意所写内容。他将了解没有什么可害怕的,并且他将只参与审阅过程的积极部分:学习并增加自己的知识


3
您可能想为不熟悉它的人添加“蜥蜴脑”的定义。
亚当李尔

@Anna:我只是将链接添加到定义中。

太棒了,皮埃尔!现在投票代替最终答案。
ozz 2011年

1
@Aaron:我指的是问题中提到的“某人”。是的,像我们大多数人一样,由于孩子和成人生活中的病情,我仍然有非理性的恐惧。例子:我对高点有非理性的恐惧。我会在可能的时候使自己不敏感。上周末,我参观了一座城堡(由于法国人和德国人之间的连续战争,在我国非常普遍),不得不乘电车。

1
像往常一样,皮埃尔是一个很好的答案。
Josh K

5

我会尝试成对工作-与讨厌这个想法的人和一个喜欢这个想法的人组成团队,让他们互相检查几个星期的代码。显然,这可能有所帮助,也可能无济于事,但在评审的两端,至少将使该过程更为全面。在一起工作可以使他们熟悉彼此的风格和常见的错误,并让他们有时间实际帮助彼此变得更好,而不是橡皮戳。这也可以帮助您在工作环境中促进结对编程,因为我认为您可能会看到越来越多的趋势,不仅要进行审查,而且要从头开始重新编码甚至计划和编码。

只要无私的政党愿意尝试,这可能会有所帮助。如果他们拒绝考虑,只要他们在团队中,您将无能为力。


结对编程是另外一个完整的主题,但建议不多!
ozz 2011年

您的评论使我对PP有了更多的思考,于是我开始了另一个问题- 程序员 。stackexchange.com/ questions / 39878 /…谢谢!
ozz 2011年

4

对于担心进行代码审查的人,@ Pierre的答案是正确的。我可以想象另一种情况。感到代码审查的明星程序员会浪费时间,因为那里的代码达到了可接受的质量和正确性标准。在这种情况下,他们可能会觉得代码审查既浪费时间又是猎巫。(这是在不存在问题的情况下进行的搜索。)

在这种情况下,我将重新定位审查的目标。代码审查不是要在代码中查找“问题”,而应将其视为对重构目标或潜在的未来增强功能或其他设计功能的搜索。这样,编码人员和审阅者都参与了该过程,希望这个有能力的编码人员会觉得有时间可以利用。


5
与这类人一起,您可以尝试让他们知道您很高兴阅读他们的代码,因为您认为自己将从他们那里学习很多东西。代码审查不仅涉及代码的改进,还涉及使团队中的其他人接触更好的代码,这将有助于他们将来的开发。
HLGEM 2011年

2

坦白说,如果您拥有一家经营得当的商店,那么这个问题毫无意义:

1)如果这是工作的一部分,则必须这样做,否则您将处于下属地位。坚决拒绝做他们被要求做的部分工作的人应该被罐头。编程是一种技巧,也是一种职业-审阅者和经理在那里帮助完成工作,而不是与(任何年龄的)变坏的孩子打交道。

2)如果您拥有一个管理良好的源代码控制系统(在任何专业软件商店中都是必须的),则可以检查他们的代码,无论是否喜欢。因此,请查看他们的代码:

  • 如果情况良好,请通知他们并拍打他们的背部-这会鼓励他们参与。

  • 如果不好,也请告知他们。这应具有激励他们参与进来以捍卫自己的作用。如果不是这样,则可以使用惩罚措施:罚款,降级等。如果尽管这名员工努力工作,但IMO仍然不行,您的员工状况不佳,应向他们展示。


那是完全没有希望的建议,我预见到一家“商店”对您来说真的是糟糕的工作环境。啊!
干邑2016年

@cognacc-您不需要“预见”任何东西。我已经在小组中工作了25年,在这个小组中,我们拥有一个非常好的工作环境:我们都是成年人,并且了解专业知识和对我们的工作负责的要求。
矢量

1
我必须同意Vector。如果这是该过程的一部分,那么每个人都会这样做,我敢肯定,他们很快就会看到“它不会咬人”。当然,总有一些人在代码审查中的注释中有“不礼貌”的风险,但是这时需要与这些人打交道-就像如果对自己的同事不礼貌一样。
MetalMikester,2016年

我同意科涅克白兰地,这是无用的建议,因为它没有建议策略或解决方案。它只是说“他们必须因为他们必须”。咄。问题是如何应对它们,以及如何扭转困境。仅仅让人们违背自己的意愿(或其他方式)做某事并不能解决问题,它可能会创造出新的问题。您必须首先了解阻力的起源。
马丁·马特

您错过了我所说的管理得井井有条的商店, 以及随之而来的一切:这意味着您要与成年人打交道:知道他们的工作含义和意义的人。您没有理解我的明确答案。
矢量

1

他们在代码审查未正确完成的地方是否有负面经历?他们可能有合理的顾虑。

如果他们绝对不认为这样做有什么好处,请让他们耐心等待,看看他们的代码,特别是其他代码(如果他们认为是完美的)会发生什么。

代码审查“应该”改善开发,但是在您拥有一个切实可行的系统之前,为什么有人要这么做?


谢谢杰夫,同意,如果这个过程不好,那将是困难的,而解决任何人的非理性恐惧可能会很困难-有些人不会改变!
ozz 2011年

1
但是,除非您拥有一个切实可行的系统,否则为什么有人要这么做呢? 让我对此大加刺耳:这样做可以弄清楚为什么系统无法正常工作吗?
矢量

1
@Vector-如果您是程序员,不知道如何使其工作,那么他们可能会遇到更大的问题。我还认为管理层必须承担一些责任,并明确定义质量代码。如果要发布的代码没有太多错误,则可能有充分的理由不进行代码审查。对于任何复杂程度的项目,我都怀疑这种情况是在没有质量代码审查或开发时间和成本不成比例的情况下发生的。
JeffO

@JeffO-好的,我明白你的意思:如果系统确实无法正常工作,这不是“代码审查”的问题,而是程序员的能力,所以简单的“代码审查”不是解决方案。我同意这一点。
矢量

1

我个人认为,有些战斗是100%人口无法赢得的。

我可以看到足够的原因,当有人被迫做配对编程时,配对编程不起作用。

但是代码审查是不同的-它们会改变您的工作效率,不一定会改变您的工作习惯。

管理层可以采取以下几项措施来降低由于生产力引起的阻力:1)接受所有开发人员的速度降低。2)提供适当的工具来处理由于审阅周期而导致的多个版本的管理和合并(例如,允许开发人员拥有本地git存储库)3)施加某种社交或其他形式的压力,以确保负载分配,质量和及时性的评论。

如果他们这样做,请允许所有人,恕我直言,这是合法的。我现在工作的公司在全球范围内发挥着作用-未经所有者批准,您根本无法提交。虽然这使事情变慢,但可以防止很多事故。


完全同意Uri ...有些人您无法赢得胜利。也许他们已经习惯了自己的方式,懒惰,认为自己的方式正确,或者只是不在乎!
ozz 2011年

0

我们使用了技术措施来强制进行代码审查。

我们引入代码审查的方式是,在源代码控制中,不可能合并未被其他人(然后是推入者)签署的代码。


-1

解雇他们

就是这么简单-他们要么获得一个孤独的项目,要么必须离开。让他们离开您的团队。他们不仅没有发挥自己的作用,而且削弱了团队的士气和实践。

现在,如果您似乎必须解雇50%的团队,那么...

了解

为什么有些拒绝?他们没有时间吗?他们被烧死了吗?是否评论了他们没有经验的东西?他们是否认为这是浪费时间?

敏捷方法将在这里有所帮助-我假设您一直在反对孤岛(即减少总线系数),并且您团队中的每个人都在参与其他人的工作。

确保单个合并请求很小。如果更改屏幕不止1个,则需要站起来或闪电般的谈话来说明正在执行的操作。如果是10页,则需要一个带有幻灯片和体系结构图的演示文稿。

有问题的每个人都在同一个项目上吗?

该项目是否已经被技术债务掩盖了?

他们相信这个项目并不断改进吗?


1
嗯。。。所以不相信代码审查会比成本提供更多的好处,这意味着一个人没有尽自己的本分,削弱了团队的士气,以至于他们应该被解雇?这是一个相当大胆的立场,因为没有证据明确支持该主张。
邓肯

@Dunk,您是反审查员吗?那你就不会加入我的团队了。您是专业评论者吗?那么您已经知道支持我的主张了。你还没决定吗 请下定决心;-)
Dima Tisnek

我不是反审查员,但我也认识到什么时候相对于成本没有提供合理的收益。一些项目/团队绝对需要官方代码审核,而其他项目/团队仅在认为有好处时才进行审核。您认为始终需要进行代码审查的假设告诉我,您甚至都不知道真正的好处和局限性。所以你是对的。我不会加入您的团队,这对您来说是巨大的损失。
邓肯
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.