如何鼓励初级开发人员参与代码审查?


13

我目前是一名高级开发人员,下面有3个初级人员,并介绍了一个代码审查过程来帮助管理进入生产阶段的代码的质量。

我觉得这对我们所有人互相审查工作非常有益,但是在大约5周的过程中,我是唯一在工具(BitBucket)中发表评论的人。

我认为工作中存在部分文化问题,如果他们的评论有误,也许会自然而然地不情愿,但是有什么办法,我可以帮助下辈们更加自在地批判我和彼此的工作吗?


2
我想知道这是否对Workplace.SE来说不是一个更好的问题,但是我作为初级开发人员要付出2美分。在实习期间,出于以下几个原因,我对参加代码审查感到非常紧张:缺乏技能,对代码库缺乏了解等。我很快发现,参与代码审查对这两个方面都起到了帮助(特别是熟悉程度),并且通过使我觉得自己的代码库是我既得利益而对我有所帮助的,因此也非常有帮助,因此我想做出贡献。我绝对不会总是留下很好的评论,但是直到我(续)我才知道
Dannnno

2
(续)进行了尝试,它帮助我更好地与整个团队合作。我认为,即使他们的评论有误,您也可以尝试解释为什么这对您,团队和代码库对他们的参与有帮助吗?如果他们的评论是错误的,那几乎更好,因为他们可以从中学到东西。
Dannnno '16

Answers:


15

对我来说,这里的问题是“您在寻找什么初级开发人员来摆脱代码审查?”。对我而言,潜在的最重要的事情是让初级开发人员通过查看什么是好的代码来学习。如果他们碰巧也在您的代码中发现问题,那是一个好处。

如果您正在寻找初级员工从代码审查中学习,那么最重要的事情就是创建一个重视学习的环境,而不是浪费时间。这意味着很多事情:

  • 没有什么愚蠢的问题。如果某人不懂一些代码,为什么您使用某种模式或其他方式,则他们需要随意询问,而又不会觉得自己在浪费您或其他开发人员的时间。
  • 花时间学习是花时间。您希望初级开发人员花时间研究代码并从中学习,因为这将使他们将来变得更好,更高效。除非它是现在需要进行审查的关键修复程序,否则鼓励他们在代码审查上花费更多而不是更少的时间。
  • 高级员工并不总是正确的。仅仅因为您已经进行了较长时间并不意味着您是对的。如果他们认为发现了错误,则可能是正确的。如果他们认为另一种设计模式适合此段代码,那么他们需要随意声明而不会得到负面反馈。

非常感谢您的投入,我将对此进行思考,并在明天的站立会议中进行讨论
Graham S

1
我要补充:成为专家的方法是犯错并从中吸取教训。实际上,这可能对sr有帮助。开发人员讲述他们过去的搞砸故事的一些战争故事。

5

每周在规定的时间亲自举行代码审查会议。我像这样把它卖给了我的队友(我们实际上都是两位资深开发者,但无论如何):

“代码审查的部分目的是让我更好地了解您的代码,并了解事情的进展,以防万一您一天被卡车撞到,我被命令完成您的冲刺。但主要是在那里您可以向其他人解释您的代码,因为这样做时,它会占用您大脑的不同部分,并且经常向您解释对他们的解释和/或他们的问题或评论,可能会使您记住一些您忘记的东西编写代码,或者可能使您意识到一种更好的方法来使其更具可读性或更好地进行架构。这将导致代码更漂亮。”

我喜欢将其视为表演秀。人们可以向同龄人炫耀他们的工作。这并不是关于您的同事发现您的工作中出现了错误,而没人会喜欢这种感觉。这是关于用您每个人都喜欢的很棒的代码打动您的同伴的。

但是,我认为在没有人与人之间的互动,没有会议室的会议,没有白板的情况下使用代码审查工具,这只是另一个令人讨厌的“事情”。并不是说不应该有这样的工具,但是如果在代码审查会议上意识到有必要对特定代码部分进行更深入的审查,那么应该使用这些工具。然后,您可以分配一个初级开发人员来查看特定区域中另一个人的代码。


+1使您的大脑不同部位参与其中。根据我的经验,尤其是当我还是一名初级开发人员时,仅知道我的代码将要进行同行评审,这使我注意到了我可能忽略的细节。
Laconic Droid

0

您可以通过树立榜样来提供帮助。当有人指出您的错误时,您将无法防御。对您自己的代码进行代码审查,并指出需要改进的地方。与团队分享。最终,他们将了解到这是值得鼓励的,而且没人会因为代码中的错误而受到殴打。

有工作意味着对工作负有责任感和自豪感。如果代码审查是其中的一部分,则评估中应包括参与代码审查。我参加了在线课程,其中参加在线讨论是该年级的一部分。需要详细说明。“我同意”是不可接受的。

代码审查应改进代码。如果您编写供内部使用的代码,则可以根据销售情况,用户投诉或其他一些等级来衡量,具体取决于您的情况。现实情况是您的代码可以达到一定的目的,而您的团队应该通过他们为达到该目的的能力来衡量。您确定的那些人将为成功做出贡献,并按比例分享回报。

专注于发布质量代码。我们的目标不是让每个人都避开错误让自己感觉良好。我写不好的代码;我必须修复错误的代码。那就是工作和生活。我讨厌修复错误,所以我尽量避免它们。我为自己的工作感到自豪,因此当我的代码不起作用时,这会困扰我。对于用户或任何需要花时间指出这些问题的人,我感到很不舒服,这促使我想对其进行修复。

附带说明一下,如果您所处的环境中没有人可以给出或接受建设性批评,那么您就会遇到问题。


-3

过程:有人想要提交更改。有人被指定为审阅者并审阅更改。然后,已检查并固定的更改将进行测试。

如果测试发现更改中引入了错误,那么作者和审阅者也应受到谴责。

因此,除非代码完美,否则进行任何评论都将给您带来麻烦。


5
1)为错误分配“责备”是导致员工离职的好方法。2)为初级员工分配未能发现高级职员写的错误的责备是双重的。
菲利普·肯德尔

2
@PhilipKendall如果我的代码有错误,那么没有人需要怪我。我是一名专业人士,对我的工作负有真正的自豪感和责任感。这是一种新时代的事物,没有人做错任何事,每个人都获得了参与的奖杯?
JeffO

@PhilipKendall:我不知道你在哪里工作...我在哪里工作,我会说“我犯了一个愚蠢的错误”,而审稿人说“我也很想念”,然后我们都笑了。“责备”是指承担责任,而不是戴着笨拙的帽子站在角落。
gnasher729

1
@ gnasher729是的。但是没有人为此感到“麻烦”。
菲利普·肯德尔
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.