向团队销售TDD

问题描述:

过去3年我一直在做TDD。我们是一家小公司,我们对管理层的敏捷过程的大部分方面提供了非常坚实的支持。开发团队中的每个人都在这个过程中出售。因此,他们通常需要制造固定装置的前期投资才能被接受,因为他们知道这将会带来回报。 (启动http服务器的代码,在测试之前填充sql数据库的代码等)。文档主要发生在测试中,帮助请求通常以失败的测试形式呈现。向团队销售TDD

现在我搬到了一家更大的公司,虽然管理层支持敏捷过程,但是队友是一个混合包,有些人认为它很有用,有些人是因为管理而做的,有些没有看到值。要说服人们花时间建设灯具或说服团队成员最好的方式来帮助他,这是一个挑战,如果他花时间写出失败的测试。

那么您认为将TDD卖给犹豫不决的队友的最好方法是什么?反对意见通常是:'这是一个不必要的成本','我们总是可以在事实上写出重要部分的测试','这是一个热门词汇,团队把它捡起来,然后随着重磨开始落到一边'等。

+0

重复其中很多这些:http://stackoverflow.com/search?q=tdd+roi – 2010-07-23 17:24:05

+3

你已经触及了自从我开始团队工作以来一直困扰着我的东西。为什么我们有时需要向开发者推销良好实践?当然,他们从来没有得到他们糟糕,浪费的习惯的许可。 – 2010-07-23 17:34:00

+0

[如何鼓励实施TDD?](http://stackoverflow.com/questions/428691/how-to-encourage-implementation-of-tdd)和其他许多方面可能存在重复。 – 2010-07-24 22:49:00

你不能 “卖TDD的犹豫队友的最好方式”。不要浪费时间“销售”。

相反,投入时间“证明”。

只要做到这一点。成功的。当人们问你的成功秘诀是什么时,然后揭示TDD。之前没有。

+0

这也不错。有些人你不能说服。 – hvgotcodes 2010-07-23 17:16:10

+0

行动说话比话语响亮得多。这绝对是怀疑者需要被示范说服的情况。 – DOK 2010-07-23 17:16:19

+0

我可以尝试一下,继续在共享代码上工作会很痛苦,而回到这就像访问一个外国... – shipmaster 2010-07-23 17:57:40

简单 - 可维护性。 TDD使您能够进行更改,并查看这些更改影响其余代码的位置。代码基数越大,就越有必要进行测试来验证任何新的更改。

正确性。虽然测试本身可能会被破坏,但最终他们会达到确保组件正在按照预期做的事情。开发者越好,速度就越快。

另一个优点是TDD通知系统中组件的设计。如果你试图测试某些东西,而且测试过于复杂,这可能意味着你需要将问题分解成更小的部分...

将它卖给人们,你说从长远来看它使得增加更便宜的新功能,并降低打破现有功能的风险。所以它降低了成本。

+0

那么以上所有内容都是关于做测试的好处,而不是先用测试作为编码的一种方式。我的团队已经得到了他们为什么需要用测试覆盖代码(至少是显着部分)的原因。 – shipmaster 2010-07-23 17:59:38

+0

是的,但你可以卖出好处。 – hvgotcodes 2010-07-23 20:20:02

我认为Joel's post很好地解释了为什么测试是一件好事™。

我不认为他曾经使用“TDD”一词,但它有一些很好的信息。

+0

测试与tdd不一样。每个人都会同意测试的重要性。 tdd的发展理念是另一回事,尽管op假设它必定是一个真正的道路。 – frankc 2010-07-23 17:51:59

+0

我绝对同意。然而,从我所了解的TDD中,Joel的帖子接近(渐近地)TDD – 2010-07-23 18:21:18

+1

@ user275455的一个论点:它不一定是唯一真实的方式,它仅仅在我的情况下(并且在我看来)比hodge更有效率目前存在于我的环境中的小鸟。 – shipmaster 2010-07-23 21:31:43

对于犹豫的队友,耐心等待机会,然后扑面而来。在软件开发中,TDD预防或减轻问题无疑是一个问题。请留意这样的机会。与他/她一起创建一个本来应该从一开始就开发的测试。但是,请确保您以这种方式制作您的信息,以免让您的队友难堪。

我同意S. Lott,你不能“出售”他们,你需要显示的价值。

最有效的方法之一是配对编程。假设你有另一个“卖”问题,说服人们配对是一种有效的方法,但是过了一段时间你可能会说服/转换开发者。

对于我来说,TDD对我来说是一个艰难的概念,但现在我无法用其他方式编程。

让他们看看这个网站:WeDoTDD.com - 公司的实际团队使用案例。那些在真正的公司中成功实践TDD的人。