Ask HN: What prominent and high profile companies use TDD?

9 points by ailideex ↗ HN
When adopting a practice I think it is important to look at experiences with it. So far I have found a paper (https://collaboration.csc.ncsu.edu/laurie/Papers/TDDpaperv8.pdf)[An Initial Investigation of Test Driven Development in Industry]

From abstract:

> 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.

Referring to this as "industry" seems a bit contrived and wrong.

What I am looking for is some details of companies/teams/organizations (not individual developers at companies) that use TDD with some significant consistency for production software with real users. That means > 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 "Some How Yes !!! All major products are following TDD, And if few are not following then they are probably busy to create unit cases/integration tests for existing code and want to adapt TDD in near future as soon as possible !"

With TDD I mean:

- From Kent Beck: Never write a single line of code unless you have a failing automated test. Eliminate duplication.

- 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

What TDD is not:

- Existence of automated tests

- Existence of test coverage metric mandates

6 comments

[ 4.5 ms ] story [ 24.1 ms ] thread
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.

At ThoughtWorks, TDD is the default way of starting things. Only if there are good reasons do devs deviate from it.
I'm not sure I buy this. Quote from Martin Fowler:

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.

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.

Are you sure you are not conflating TDD with the presence of automated test suite?
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.