【问题标题】:Selling TDD to the team [closed]向团队出售 TDD [关闭]
【发布时间】:2010-07-23 17:09:34
【问题描述】:

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

现在我搬到了一家更大的公司,虽然管理层支持敏捷流程,但团队成员却鱼龙混杂,有些人认为它有用,有些人这样做是因为管理,有些人没有看到它的价值.如果他花时间编写一个失败的测试,说服人们花一些时间构建固定装置或说服团队成员最好的方式来帮助他是一个挑战。

那么您认为向犹豫不决的队友推销 TDD 的最佳方式是什么?反对意见通常是:“这是一个不必要的成本”,“我们总是可以在事后为重要的部分编写测试”,“这是一个流行词,团队把它捡起来,然后随着繁重的工作开始它就掉到一边'等等。

【问题讨论】:

标签: tdd agile


【解决方案1】:

“向犹豫不决的队友推销 TDD 的最佳方式”

你不能。不要浪费时间“推销”。

相反,花时间在“证明”上。

就去做吧。成功的。当人们问你成功的秘诀是什么时,请揭示 TDD。以前没有。

【讨论】:

  • 这也不错。有些人是你无法说服的。
  • 行动胜于雄辩。这绝对是需要通过演示说服怀疑者的情况。
  • 我可以试试,同时继续做共享代码会很痛苦,回到这里就像访问外国......
  • @shipmaster:“继续处理共享代码会很痛苦”为什么?
  • @S.Lott:你进去了,你通过创建一个解决该案例的测试来修复一个错误,以及一个稍微复杂的模拟和固定装置,只是在其他人修复错误时忽略它/ 稍后在同一代码中添加一个功能,并使测试中断...
【解决方案2】:

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

正确性。尽管测试本身可能会被破坏,但最终它们会确保组件正在执行它们应该做的事情。开发人员越好,速度越快。

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

为了把它卖给人们,你说从长远来看,它可以降低添加新功能的成本,并降低破坏现有功能的风险。所以它降低了成本。

【讨论】:

  • 以上都是关于进行测试的好处,而不是使用测试优先作为编码方式。我的团队已经明白为什么他们需要用测试覆盖(至少是突出部分)他们的代码。
  • 可以,但是你可以卖掉这些好处。
【解决方案3】:

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

【讨论】:

    【解决方案4】:

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

    最有效的方法之一是结对编程。诚然,您在说服人们结对是一种有效的方法时遇到了另一个“推销”问题,但一段时间后,您也可能说服/转变开发人员。

    TDD 最初对我来说是一个艰难的概念,但现在我无法以任何其他方式进行编程。

    【讨论】:

      【解决方案5】:

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

      我认为他从未使用过“TDD”这个词,但它有一些很棒的信息。

      【讨论】:

      • 测试和tdd不一样。每个人都会同意测试的重要性。 tdd 的开发理念是另一回事,尽管 op 假设它必然是 One True Way。
      • 我绝对同意。然而,据我对 TDD 的了解,Joel 的帖子接近(渐近地?)一个 TDD 的论点
      • @user275455:这不一定是正确的方法,就我而言(而且在我看来)它比我目前环境中存在的大杂烩更有效率。
      【解决方案6】:

      向他们展示这个网站:WeDoTDD.com - 实际的公司团队用例。那些在真实公司中成功实践 TDD 的人。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-09-06
        • 1970-01-01
        相关资源
        最近更新 更多