
Ask HN: What prominent and high profile companies use TDD? - ailideex
When adopting a practice I think it is important to look at experiences with it. So far I have found a paper (https:&#x2F;&#x2F;collaboration.csc.ncsu.edu&#x2F;laurie&#x2F;Papers&#x2F;TDDpaperv8.pdf)[An Initial Investigation of Test Driven Development in Industry]<p>From abstract:<p>&gt; In our research, we ran a set of structured experiments with 24 professional pair programmers. One group developed code using TDD while the other a waterfall-like approach. Both groups developed a small Java program. We found that the TDD developers produced higher quality code, which passed 18% more functional black box test cases. However, TDD developer pairs took 16% more time for development.<p>Referring to this as &quot;industry&quot; seems a bit contrived and wrong.<p>What I am looking for is some details of companies&#x2F;teams&#x2F;organizations (not individual developers at companies) that use TDD with some significant consistency for production software with real users. That means &gt; 50% of the time, said entities use TDD for some code base. And I would like this to be somewhat verifiable and well documented - not just some person on Quora saying &quot;Some How Yes !!! All major products are following TDD, And if few are not following then they are probably busy to create unit cases&#x2F;integration tests for existing code and want to  adapt TDD in near future as soon as possible !&quot;<p>With TDD I mean:<p>- From Kent Beck: Never write a single line of code unless you have a failing automated test. Eliminate duplication.<p>- From Wikipedia: 1. Add a test, 2. Run all tests and see if the new test fails, 3. Write the code, 4. Run tests, 5. Refactor code, Repeat<p>What TDD is not:<p>- Existence of automated tests<p>- Existence of test coverage metric mandates
======
PaulHoule
I think any place that mandates TDD will have a lot of "normalization of
deviance".

Often the unknowns in software development aren't the kind of things you can
test in a unit test.

As for Kent Beck, he's like Tony Robbins. Kent Beck might have been a software
developer but now his business is giving talks.

My experience is that "TDD" works best in a "plan it all ahead of time"
scenario. For instance if you wanted to write a C compiler you know what the
syntax and behavior is ahead of time and you can start with an extensive test
suite.

------
tmaly
I try to encourage TDD within my group, but in a world of short deadlines you
get a non ideal result.

I think it is important to understand the concept and to strive to have a good
test suite that helps you enhance and maintain projects.

~~~
ailideex
Are you sure you are not conflating TDD with the presence of automated test
suite?

~~~
tmaly
Yes, you can go the dogmatic route with TDD or you can sometimes still write
the tests just after you finished a function and achieve similar results.

------
sidcool
At ThoughtWorks, TDD is the default way of starting things. Only if there are
good reasons do devs deviate from it.

~~~
ailideex
I'm not sure I buy this. Quote from Martin Fowler:

[https://youtu.be/z9quxZsLcfo?t=1447](https://youtu.be/z9quxZsLcfo?t=1447)

> I share with with David and Kent, there are problems where TDD doesn't work
> terribly well, and sadly most of the programming I do these days is not
> conducive to TDD and I miss it because actually I really like the TDD flow
> that really works for me just as it works the Kent.

