他拒绝听取团队的意见,最近他停止了代码审查,单元测试,共享实施细节...
代码审查不一定要求编码者将工作提交审查。
跟踪他的工作的一种简单方法是关注VCS历史,寻找他的签到位置。如果您担心他的代码,这是找到它的简便方法。获取比较历史记录,查看他的内容,看看是否有任何危险的信号跳到你身上。赶紧赶快签入他的签到,如果发现问题,可以回退提交并通过电子邮件将其发送给他。当您发现明显不对劲的地方时,即使是初级编码员,也可以叫出您的团队成员。
是的,他可以快速“编码”,但是他的代码只是一个错误生成器。我和其他团队成员都处于“错误修复阶段”,其中80%的错误来自他的代码。我不想修复他的错误。管理层是盲目的,或者不想看到这一点,或者他们喜欢他的“速度”。
代码来自需求。需求会导致可运行的测试,以验证是否满足需求。这些测试可以进一步细分,并且可以在进行更改以确认更改满足要求之前进行编写(红绿色重构; TDD的本质)。
向团队的构建服务器添加“代码覆盖率”指标(希望您有一个);如果没有,这是您的第一个问题。只需检查单元测试是否通过,就不会发现他的新非TDDed代码在没有单元测试的区域中出现的问题。在运行所有单元测试之后,理想情况下,构建服务器应该已经执行了每一行代码,但是实际上有些事情您无法进行单元测试。实际上,您仍然应该能够达到95%或更高的覆盖率(或从覆盖率中排除某些库或文件类型)。牛仔迟早会签入一些破坏构建的内容,因为他已将覆盖范围降低到阈值以下,然后您将他召唤出去。
就“速度”而言,速度是事物“完成”的速度,在正确完成之前才“完成”。您可以通过这种方式将其提交给经理。考虑一个汽车修理工,当经理带他的宝马去换油时,却忘了重新装上油底壳塞,结果所有新油都倒出来了,甚至还没有开车出车库。当然,换油只用了五分钟,但是当他的汽车发动机在回家的路上被抓住时,经理就不会在乎。他会担心技工错过了一步,这将花费他很多额外的时间和金钱来修理。现在,他要付钱给一位牛仔以真正快地完成工作,然后他 向团队的其他成员支付更大的款项,以正确完成工作。确实,继续让牛仔做他的事情的好处是什么?
我(作为他年龄较小的同事,而不是老板)可以采取任何措施吗?
叫他出去 当您发现他搞砸了的东西时,请向他展示他的代码是如何失败的,首先他是如何避免问题的(包括正确的设计,TDD,代码审查)以及结果是您将被要求或将被要求做什么修复他的破解代码。
我觉得我是最后一个真正关心这个项目的人。
响亮的喇叭声,指示灯闪烁,警报器哀号 -如果您确实确实是唯一一个在乎团队产生的代码质量的人,那么这里就有一个严重的问题。如果您感觉到您正在试图将整个团队踢着大喊大叫,进入良好编码的时代,那实在是太重了以至于无法承受,然后放弃它。如果公司中有另一个团队做得很好,请要求调动,否则就该死了。