simple -- maintainability. TDD gives you the ability to make changes, and see where those changes affect the rest of the code. The larger the code base, the more imperative it is that there be tests to validate any new changes.
correctness. Although tests can themselves be broken, eventually they reach a point where they make sure the components are doing what they are supposed to. The better the developer, the faster that is.
another advantage is that TDD informs the design of the components in the system. If you are trying to test something, and the test is too complicated, it probably means you need to break the problem down into smaller parts...
to sell it to people, you say that in the long run it makes adding new features cheaper, and reduces the risk of breaking existing functionality. So it reduces cost.
For the hesitant teammate, be patient, wait for an opportunity, then pounce. In software development there will undoubtedly be an problem where TDD would have prevented or mitigated the problem. Be on the lookout for such an opportunity. Work with him/her to create a test(s) that should have been developed from the beginning. However, make sure you craft your message in such a way to not embarrass your teammate.
I agree with S. Lott, you can't "sell" them you need to show the value.
One of the most effective ways to do that is with pair programming. Granted you have another "sell" problem convincing people that pairing is an effective approach, but after some time you may convince/convert a developer or too.
TDD was a tough concept for me initially, but now I can't imaging programming any other way.
发布评论
评论(6)
你不能。不要浪费时间“推销”。
相反,投入时间来“证明”。
去做就对了。取得成功。当人们问你成功的秘诀是什么时,请透露 TDD。以前没有。
You can't. Don't waste time "selling".
Instead, invest time in "proving".
Just do it. Be successful. When people ask what the secret of your success is, then reveal the TDD. Not before.
简单——可维护性。 TDD 使您能够进行更改,并查看这些更改对其余代码的影响。代码库越大,就越有必要进行测试来验证任何新的更改。
正确性。尽管测试本身可能会被破坏,但最终他们会达到确保组件执行其预期功能的程度。开发人员越好,速度就越快。
另一个优点是 TDD 可以指导系统中组件的设计。如果你试图测试某些东西,并且测试太复杂,这可能意味着你需要将问题分解成更小的部分......
将其卖给人们,你说从长远来看,它使得添加新功能更便宜,并降低破坏现有功能的风险。所以它降低了成本。
simple -- maintainability. TDD gives you the ability to make changes, and see where those changes affect the rest of the code. The larger the code base, the more imperative it is that there be tests to validate any new changes.
correctness. Although tests can themselves be broken, eventually they reach a point where they make sure the components are doing what they are supposed to. The better the developer, the faster that is.
another advantage is that TDD informs the design of the components in the system. If you are trying to test something, and the test is too complicated, it probably means you need to break the problem down into smaller parts...
to sell it to people, you say that in the long run it makes adding new features cheaper, and reduces the risk of breaking existing functionality. So it reduces cost.
对于犹豫不决的队友,要有耐心,等待机会,然后猛扑。在软件开发中,毫无疑问会存在一个问题,而 TDD 本来可以预防或缓解这个问题。留意这样的机会。与他/她一起创建一个应该从一开始就开发的测试。但是,请确保您所传达的信息不会让您的队友感到尴尬。
For the hesitant teammate, be patient, wait for an opportunity, then pounce. In software development there will undoubtedly be an problem where TDD would have prevented or mitigated the problem. Be on the lookout for such an opportunity. Work with him/her to create a test(s) that should have been developed from the beginning. However, make sure you craft your message in such a way to not embarrass your teammate.
我同意S。 Lott,你不能“出售”它们,你需要展示其价值。
最有效的方法之一就是结对编程。假设您还有另一个“销售”问题,让人们相信结对是一种有效的方法,但一段时间后,您可能会说服/转换开发人员。
TDD 最初对我来说是一个很难的概念,但现在我无法以任何其他方式想象编程。
I agree with S. Lott, you can't "sell" them you need to show the value.
One of the most effective ways to do that is with pair programming. Granted you have another "sell" problem convincing people that pairing is an effective approach, but after some time you may convince/convert a developer or too.
TDD was a tough concept for me initially, but now I can't imaging programming any other way.
我认为 Joel 的帖子很好地解释了为什么测试是一件好事™。
我认为他从未使用过“TDD”这个词,但它提供了一些很好的信息。
I think Joel's post explains very well why testing is A Good Thing™.
I don't think he ever uses the phrase "TDD", but it's got some great info.
向他们展示此网站:WeDoTDD.com - 实际的公司团队用例。那些在现实公司中成功实践 TDD 的人。
Show them this site: WeDoTDD.com - actual company team use cases. Those who are successfully practicing TDD in real companies.