3 ms·
Yet real system design is usually so complex that no single technique can cover it. I shudder when I hear TDD proponents claiming that this technique can even b
by pzh 10y ago
Yet real system design is usually so complex that no single technique can cover it. I shudder when I hear TDD proponents claiming that this technique can even be used for emergent design. An amusing example is Ron Jeffries's Sudoku solver attempt:
http://ravimohan.blogspot.com/2007/04/learning-from-sudoku-solvers.html?m=1 http://ravimohan.blogspot.com/2007/04/learning-from-sudoku-s...
- taeric 10y agoYes, that is a particularly poignant set of posts. I am still fond of dancing links to solve Sudoku, and I can't easily see how I would have found that through TDD. And yet, among the most agreed ideas you can ever make in popular programming circles is that you are fond of TDD...
- kybernetikos 10y agoIn my experience tdd is useless for discovering algorithms. It is however very useful for implementing them. I've implemented dancing links and i absolutely used tdd for significant parts of the design.
- spc476 10y agoIf I didn't know who Ron Jeffrie was (one of the creators of Test Driven Design) I would have said that those articles were a brilliant piece of satire on test driven design.
- crdoconnor 10y agoThere's a lot of people out there doing unit test driven development that ought to be doing integration/acceptance test driven development. Unit test driven development only really works on "algorithmic" style code. Stuff that's mostly linking disparate systems together - if you try writing unit tests for it you'll end up with a mess of mocks that aren't actually testing if your code works.
- waterlink 10y agoI definitely am using these techniques on real projects with huge complexities to them. Quite successfully. Without bugs. Continuously Integrating and Continuously Deploying to Production. I'm pretty sure, that the case study of such project will take up the whole book, not just 3 blog posts ;)