我们的一个开发人员不断编写代码,并把它变成版本控制没有测试它。 我们的代码的质量而受到影响。
除了摆脱开发商的,我怎么能解决这个问题?
编辑
我已经跟他谈过这件事的次数,甚至给他书面警告
我们的一个开发人员不断编写代码,并把它变成版本控制没有测试它。 我们的代码的质量而受到影响。
除了摆脱开发商的,我怎么能解决这个问题?
编辑
我已经跟他谈过这件事的次数,甚至给他书面警告
如果系统允许开发者提交的代码之前执行代码审查 ,那么,你的问题主要是解决了。 但这似乎并没有被你的情况,所以这是我的建议:
如果你能做到代码审查 - 这就是抓住这一个完美的地方。
我们之前需要合并到主干迭代的评价,因此通常都被捕获即可。
(对任何人笑话谁不明白)
作为一个开发谁很少测试自己的代码,我可以告诉你一件事是让我慢慢改变我的行为......
能见度
如果环境允许推码出来,等待用户发现问题,然后基本上是问:“现在怎么样?” 在更改代码后,有没有真正的动力去测试自己的东西。
代码审查和协作鼓励你努力,使高品质的产品做更多的工作比,如果你只是提供“窗口小部件X”,而你的同事在“窗口小部件Y”和“小部件Z”工作
更可见你的工作,你就越有可能是去关心它如何运作。
代码审查。 每周一上午都坚持你的开发的在一间客房,并要求他们与前一周把自己最得意的基于代码的成就与他们一起参加会议。
让他们大显身手,并感到兴奋解释他们做了什么。 他们已经把代码副本,以便其他开发人员的可以看到他们在说些什么。
我们在几个月前开始这一进程,这是令人惊讶的看到潜意识的质量检查所发生的量。 毕竟,如果开发的是跟它谈论他们最兴奋,他们会无比期待向人们展示他们的代码。 接着,其他开发人员的会看到质量错误,并公开讨论他们为什么错了代码如何真正应该不是写。
如果这还不能让你的开发编写高质量的代码,他可能不是一个很好的适合你的团队。
让他的年度审查目标的一部分。 如果他没有实现它,没有加薪。
虽然有时你不得不接受,有人是不适合你的团队/环境,它应该是最后的手段,可能会很难处理,但如果你已经用尽了所有其他选项可能是从长远来看,最好的东西。
告诉开发者,你希望看到2个星期内他们的做法的改变,或者你会开始你的公司的纪律程序。 提供尽可能多的帮助,正如你所帮助,但如果你不能改变这个人,他不是适合你的公司。
使用巡航控制或类似的工具,你可以签入自动触发构建和单元测试。 你仍然需要确保有任何新功能,他补充说,你可以看看他的签做单元测试。 然而,这是一个人的问题,所以技术解决方案只能走这么远。
为什么不和他说话? 他很可能不会真的咬你。
让他“照看”的构建,并成为构建管理。 这将让他少来开发代码(从而提高每个人的表现),并教他为什么好身材是那么的必要时间。
执行测试用例 - 代码不能没有单元测试的情况下提交。 修改构建系统,这样,如果测试用例不进行编译和运行正确,或不存在,那么整个任务签被拒绝。
-亚当
发布于每个开发人员的测试代码覆盖率统计数据,这将是对他说话之后。
下面是从海棚户区的一些想法。
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!
等替换“喝醉的水手”与“马虎开发商”。
根据版本控制系统的类型,使用的是您可以设置签入策略,强制代码被允许办理登机手续前必须要经过一定的要求。 如果您使用的是像Team Foundation Server的一个系统正它可以让你指定检查插件代码覆盖和单元测试要求的能力。
要知道,这是为了避免挑出他出去(虽然我同意你需要与他交谈)和实施内部测试,第一工艺的绝佳机会。 如果规则不明确,期望是众所周知的,我发现你的描述是不是所有的少见。 我发现,做测试优先开发方案对我来说效果很好,提高了代码质量。
他们可能过于专注于速度,而不是质量。
这会诱使一些人进入过的问题急于明确自己的列表,请参阅错误报告后会发生什么了。
为了纠正这种平衡:
同行的编程是另一种可能性。 如果他是对球队的另一个技术开发谁死了符合质量标准和程序知道那么这有几个作用:
所有这一切当然,这需要公司和开发商愿意接受此过程中,他们可能不是。
人们似乎已经想出了很多想象力和迂回回答这个问题的。 但事实是,这是不是一个游戏。 制定精细的同侪压力系统“点名和羞辱”他是不会去的问题的根源,即。 他为什么不写测试?
我想你应该是直接的。 我知道你说你跟他谈过,但你试图找出为什么他不是写测试? 显然,在这一点上,他知道自己是应该的,所以肯定一定是有原因,他没有做什么,他被告知这样做。 难道是懒惰? 拖延? 程序员是著名的自负和强烈的意见 - 也许他相信由于某种原因,该测试是在浪费时间,或者说他的代码永远是完美的,不需要测试。 如果他是一个不成熟的程序员,他可能没有完全理解他的行为的影响。 如果他是“过于成熟”,他可能会在他的方式太设定。 不管什么原因,解决这个问题。
如果它归结为见仁见智,你需要让他明白,他需要留出自己的个人意见,只是遵循的规则。 要清楚,如果他不能信任遵循规则,那么他将被替换。 如果他仍然不,做到这一点。
最后一两件事 - 记录你所有的讨论与发生作为他的变化而产生的任何问题一起。 如果说到最糟糕的,你可能会被迫证明你的决定,在这种情况下,有书面证据肯定是无价的。
坚持他对自己的开发分支,只有把他的东西放进后备箱,当你知道它是彻底的测试。 这可能是在那里同样的GIT或水银的分布式源代码控制管理工具将擅长的地方。 虽然有增加的分支/ SVN中合并的支持,你可能不会有太多的麻烦管理它。
编辑
这是唯一的,如果你不能摆脱他或让他改变他的方式。 如果你根本无法得到这种行为停止(通过改变或射击),那么你可以做的最好的是从他的编码效果不好缓冲团队的其他成员。
如果你是在一个地方,你可以影响政策,做出一些改变。 签到之前执行代码审查,使开发周期的测试部分。
这似乎很简单。 使它成为一个要求,如果他不能做到这一点,代替他。 为什么你会留住他?
我一般不主张这一点,除非一切都失败了......
有时,一家公开显示的图表bug的计数由开发商能够施加足够的同龄人的压力得到有利的结果。
试试胡萝卜,使其成为一个有趣的游戏。
如持续集成游戏插件哈德森
http://wiki.hudson-ci.org/display/HUDSON/The+Continuous+Integration+Game+plugin
把你的开发人员的代码分支,基于某种逻辑一样,每个功能,每个bug修复,每个开发团队,等等。 再不济检查插件被隔离到这些分支。 当谈到时间做一个构建,合并到一个测试分支,发现问题,解决,然后合并你释放回主分支。
或删除提交针对开发商的权利,让他们自己的代码发送到年轻的开发者进行审查和测试,可以在提交之前。 这可能促使在过程的变化。
你可以放在一起,在与负责手中的软件程序员的名字代码中发现的错误的报告。
如果他是一个通情达理的人,与他讨论的报告。
如果他关心他的“名声”定期公布报告,并提供给他所有的同行。
如果他只听的“权威”,做报告和问题上报给他的经理。
无论如何,我经常看到,当人们意识到他们是如何坏似乎从外面,他们改变自己的行为。
嘿,这让我想起了一些我在阅读XKCD :)
你指的是编写自动化单元测试或手动单元测试之前办理登机手续?
如果你的店铺不写自动化测试,然后他的代码不工作检查是鲁莽的。 难道是影响球队? 你有一个正式的QA部门?
如果都创建自动化的单元测试,那么我建议你的代码审查过程的一部分包括单元测试也是如此。 这将成为明显的是,你的代码审查期间是不是按你的标准可以接受的。
你的问题是相当广泛的,但我希望我提供了一些方向。
我将与菲尔同意,第一步是单独跟他谈,解释质量的重要性。 质量差往往可以链接到团队,部门和公司的文化。
让执行测试用例的成果之一之前的东西被认为是“完成”。
如果你没有执行的测试用例,然后工作是不完整的,如果最后期限已过,你有记录的测试用例执行前,然后他没有按时交付,因为如果他的后果将是相同的未完成开发。
如果你的公司文化不会允许这样做,而且在精度值速度,那么这可能是问题的根源,而开发商只不过是屈从于已经到位的奖励 - 他被奖励做了很多的事半称职的,而不是正确地少的东西。
使人干净的厕所。 曾在军队。 如果你在一组工作,谁吃了很多的印度食物个人,它不会多久,他们一致下降。
但是,这只是我...
每次检查开发商在东西无法编译,放一些钱在一个罐子里。 你会在随后检查前三思。
不幸的是如果你已经和他说过话了很多次,给他书面警告我会说这是关于时间,以消除他从球队。
你可能会在这里找到一些有用的答案: 如何使初级程序员编写测试?