你怎么处理谁不测试他的代码开发人员吗? [关闭](What do you do with a d

2019-08-04 05:56发布

我们的一个开发人员不断编写代码,并把它变成版本控制没有测试它。 我们的代码的质量而受到影响。

除了摆脱开发商的,我怎么能解决这个问题?

编辑

我已经跟他谈过这件事的次数,甚至给他书面警告

Answer 1:

如果系统允许开发者提交的代码之前执行代码审查 ,那么,你的问题主要是解决了。 但这似乎并没有被你的情况,所以这是我的建议:

  • 聊到开发商。 讨论别人在球队的后果。 大多数开发人员希望通过同行的认可,所以这可能是不够的。 还指出,这是很容易修复的bug这是新鲜的在你的心中比周龄的代码。 这部分是有道理的,如果你有在地方某种形式的代码owneship的。
  • 如果不经过一段时间的工作,尝试建立一个政策,这将使commiting bug的代码不愉快的作者。 一种流行的方式是让谁打破负责创建下一个的琐事构建的人。 如果您的构建过程是全自动的,寻找另一个卑微的任务采取替代治疗。 这种方法还没有查明具体的人,使之成为大家比较容易接受的好处。
  • 使用惩戒措施 。 根据您的团队的大小和你的公司,这些可以采取多种形式。
  • 火开发商。 有一个与保持烂苹果相关的成本。 当你走这么远,开发商不关心他的同胞开发商,和你有你的手是人的问题了。 如果工作环境变得中毒了,你可能会失去远 - 生产力明智和以人明智的 - 比这单坏开发商。


Answer 2:

如果你能做到代码审查 - 这就是抓住这一个完美的地方。

我们之前需要合并到主干迭代的评价,因此通常都被捕获即可。



Answer 3:

仪式殴打! 对于每一个错误,鞭鞭打一个!

(对任何人笑话谁不明白)



Answer 4:

作为一个开发谁很少测试自己的代码,我可以告诉你一件事是让我慢慢改变我的行为......

能见度

如果环境允许推码出来,等待用户发现问题,然后基本上是问:“现在怎么样?” 在更改代码后,有没有真正的动力去测试自己的东西。

代码审查和协作鼓励你努力,使高品质的产品做更多的工作比,如果你只是提供“窗口小部件X”,而你的同事在“窗口小部件Y”和“小部件Z”工作

更可见你的工作,你就越有可能是去关心它如何运作。



Answer 5:

代码审查。 每周一上午都坚持你的开发的在一间客房,并要求他们与前一周把自己最得意的基于代码的成就与他们一起参加会议。

让他们大显身手,并感到兴奋解释他们做了什么。 他们已经把代码副本,以便其他开发人员的可以看到他们在说些什么。

我们在几个月前开始这一进程,这是令人惊讶的看到潜意识的质量检查所发生的量。 毕竟,如果开发的是跟它谈论他们最兴奋,他们会无比期待向人们展示他们的代码。 接着,其他开发人员的会看到质量错误,并公开讨论他们为什么错了代码如何真正应该不是写。

如果这还不能让你的开发编写高质量的代码,他可能不是一个很好的适合你的团队。



Answer 6:

让他的年度审查目标的一部分。 如果他没有实现它,没有加薪。

虽然有时你不得不接受,有人是不适合你的团队/环境,它应该是最后的手段,可能会很难处理,但如果你已经用尽了所有其他选项可能是从长远来看,最好的东西。



Answer 7:

告诉开发者,你希望看到2个星期内他们的做法的改变,或者你会开始你的公司的纪律程序。 提供尽可能多的帮助,正如你所帮助,但如果你不能改变这个人,他不是适合你的公司。



Answer 8:

使用巡航控制或类似的工具,你可以签入自动触发构建和单元测试。 你仍然需要确保有任何新功能,他补充说,你可以看看他的签做单元测试。 然而,这是一个人的问题,所以技术解决方案只能走这么远。



Answer 9:

为什么不和他说话? 他很可能不会真的咬你。



Answer 10:

  • 让他“照看”的构建,并成为构建管理。 这将让他少来开发代码(从而提高每个人的表现),并教他为什么好身材是那么的必要时间。

  • 执行测试用例 - 代码不能没有单元测试的情况下提交。 修改构建系统,这样,如果测试用例不进行编译和运行正确,或不存在,那么整个任务签被拒绝。

-亚当



Answer 11:

发布于每个开发人员的测试代码覆盖率统计数据,这将是对他说话之后。



Answer 12:

下面是从海棚户区的一些想法。

Intro
   What shall we do with a drunken sailor, (3×)
   Early in the morning?
Chorus
   Wey–hey and up she rises, (3×)
   Early in the morning!
Verses
   Stick him in a bag and beat him senseless, (3×)
   Early in the morning!
   Put him in the longboat till he’s sober, (3×)
   Early in the morning!

等替换“喝醉的水手”与“马虎开发商”。



Answer 13:

根据版本控制系统的类型,使用的是您可以设置签入策略,强制代码被允许办理登机手续前必须要经过一定的要求。 如果您使用的是像Team Foundation Server的一个系统正它可以让你指定检查插件代码覆盖和单元测试要求的能力。



Answer 14:

要知道,这是为了避免挑出他出去(虽然我同意你需要与他交谈)和实施内部测试,第一工艺的绝佳机会。 如果规则不明确,期望是众所周知的,我发现你的描述是不是所有的少见。 我发现,做测试优先开发方案对我来说效果很好,提高了代码质量。



Answer 15:

他们可能过于专注于速度,而不是质量。

这会诱使一些人进入过的问题急于明确自己的列表,请参阅错误报告后会发生什么了。

为了纠正这种平衡:

  1. 在您的问题跟踪系统分配的时间只有几个项目,
  2. 代码审查,并尽快所以它会回来与他们立即如果有任何问题,测试任何东西他们已经“完成”
  3. 跟他们谈你对一个项目需要多长时间做正确的期望


Answer 16:

同行的编程是另一种可能性。 如果他是对球队的另一个技术开发谁死了符合质量标准和程序知道那么这有几个作用:

  1. 随着他的肩膀,他将了解什么是对他的期望,并看到他的代码和代码符合预期之间的差异有经验的开发
  2. 其他开发人员可以执行测试第一政策:不允许写入代码,直到测试已经为它写
  3. 同样,其他开发人员可以验证代码是达到标准前检查,在reduicing坏签入的nmber

所有这一切当然,这需要公司和开发商愿意接受此过程中,他们可能不是。



Answer 17:

人们似乎已经想出了很多想象力和迂回回答这个问题的。 但事实是,这是不是一个游戏。 制定精细的同侪压力系统“点名和羞辱”他是不会去的问题的根源,即。 他为什么不写测试?

我想你应该是直接的。 我知道你说你跟他谈过,但你试图找出为什么他不是写测试? 显然,在这一点上,他知道自己是应该的,所以肯定一定是有原因,他没有做什么,他被告知这样做。 难道是懒惰? 拖延? 程序员是著名的自负和强烈的意见 - 也许他相信由于某种原因,该测试是在浪费时间,或者说他的代码永远是完美的,不需要测试。 如果他是一个不成熟的程序员,他可能没有完全理解他的行为的影响。 如果他是“过于成熟”,他可能会在他的方式太设定。 不管什么原因,解决这个问题。

如果它归结为见仁见智,你需要让他明白,他需要留出自己的个人意见,只是遵循的规则。 要清楚,如果他不能信任遵循规则,那么他将被替换。 如果他仍然不,做到这一点。

最后一两件事 - 记录你所有的讨论与发生作为他的变化而产生的任何问题一起。 如果说到最糟糕的,你可能会被迫证明你的决定,在这种情况下,有书面证据肯定是无价的。



Answer 18:

坚持他对自己的开发分支,只有把他的东西放进后备箱,当你知道它是彻底的测试。 这可能是在那里同样的GIT或水银的分布式源代码控制管理工具将擅长的地方。 虽然有增加的分支/ SVN中合并的支持,你可能不会有太多的麻烦管理它。

编辑

这是唯一的,如果你不能摆脱他或让他改变他的方式。 如果你根本无法得到这种行为停止(通过改变或射击),那么你可以做的最好的是从他的编码效果不好缓冲团队的其他成员。



Answer 19:

如果你是在一个地方,你可以影响政策,做出一些改变。 签到之前执行代码审查,使开发周期的测试部分。



Answer 20:

这似乎很简单。 使它成为一个要求,如果他不能做到这一点,代替他。 为什么你会留住他?



Answer 21:

我一般不主张这一点,除非一切都失败了......

有时,一家公开显示的图表bug的计数由开发商能够施加足够的同龄人的压力得到有利的结果。



Answer 22:

试试胡萝卜,使其成为一个有趣的游戏。
如持续集成游戏插件哈德森
http://wiki.hudson-ci.org/display/HUDSON/The+Continuous+Integration+Game+plugin



Answer 23:

把你的开发人员的代码分支,基于某种逻辑一样,每个功能,每个bug修复,每个开发团队,等等。 再不济检查插件被隔离到这些分支。 当谈到时间做一个构建,合并到一个测试分支,发现问题,解决,然后合并你释放回主分支。

或删除提交针对开发商的权利,让他们自己的代码发送到年轻的开发者进行审查和测试,可以在提交之前。 这可能促使在过程的变化。



Answer 24:

你可以放在一起,在与负责手中的软件程序员的名字代码中发现的错误的报告。

如果他是一个通情达理的人,与他讨论的报告。

如果他关心他的“名声”定期公布报告,并提供给他所有的同行。

如果他只听的“权威”,做报告和问题上报给他的经理。

无论如何,我经常看到,当人们意识到他们是如何坏似乎从外面,他们改变自己的行为。

嘿,这让我想起了一些我在阅读XKCD :)



Answer 25:

你指的是编写自动化单元测试或手动单元测试之前办理登机手续?

如果你的店铺不写自动化测试,然后他的代码不工作检查是鲁莽的。 难道是影响球队? 你有一个正式的QA部门?

如果都创建自动化的单元测试,那么我建议你的代码审查过程的一部分包括单元测试也是如此。 这将成为明显的是,你的代码审查期间是不是按你的标准可以接受的。

你的问题是相当广泛的,但我希望我提供了一些方向。

我将与菲尔同意,第一步是单独跟他谈,解释质量的重要性。 质量差往往可以链接到团队,部门和公司的文化。



Answer 26:

让执行测试用例的成果之一之前的东西被认为是“完成”。

如果你没有执行的测试用例,然后工作是不完整的,如果最后期限已过,你有记录的测试用例执行前,然后他没有按时交付,因为如果他的后果将是相同的未完成开发。

如果你的公司文化不会允许这样做,而且在精度值速度,那么这可能是问题的根源,而开发商只不过是屈从于已经到位的奖励 - 他被奖励做了很多的事半称职的,而不是正确地少的东西。



Answer 27:

使人干净的厕所。 曾在军队。 如果你在一组工作,谁吃了很多的印度食物个人,它不会多久,他们一致下降。

但是,这只是我...



Answer 28:

每次检查开发商在东西无法编译,放一些钱在一个罐子里。 你会在随后检查前三思。



Answer 29:

不幸的是如果你已经和他说过话了很多次,给他书面警告我会说这是关于时间,以消除他从球队。



Answer 30:

你可能会在这里找到一些有用的答案: 如何使初级程序员编写测试?



文章来源: What do you do with a developer who does not test his code? [closed]