6 ms·
I disagree. Among the things that I listed was TDD. If one practices that consistently one can create highly reliable software. In fact one might argue that usi
by cjfd 5y ago
I disagree. Among the things that I listed was TDD. If one practices that consistently one can create highly reliable software. In fact one might argue that using TDD for the new landing page for the company website might be overkill. Maybe you do need a bit more planning for your 'mission critical system' in order to perhaps attain performance goals. However, I will tell you here and now that if you just do TDD for your mission critical system and you do it well you will already be better than most programming going on for so-called missions critical systems in many, many places.
- iratewizard 5y agoTDD is cargo cult.
- cjfd 5y agoIt really is not. TDD is for highly competent programmers.
- aaaaaaaaaaab 5y agoLol, not really: http://ravimohan.blogspot.com/2007/04/learning-from-sudoku-solvers.html http://ravimohan.blogspot.com/2007/04/learning-from-sudoku-s...
- dragonwriter 5y ago> TDD is cargo cult. No, but like any practice that becomes known of outside a narrow group of highly-competent, highly-motivated experts in the relevant area, TDD can be (and often is) cargo culted. It is thus often the case that people's only practical contact with “TDD” is with a cargo cult application of it.
- cjfd 5y agoThis is true. The most important way in which TDD can turn into a cargo cult practice is to test every class and every method separately. This then turns into the testing of implementation details that are very much subject to change. It can also lead to the testing of trivialities, like 'can the standard library of my language still add elements to a container'. One should in most cases write tests about somewhat higher level properties of a system where the user might actually recognize the tests as being about stuff that they value. In most cases one would write tests about a small set of closely related classes. There should also be tests about somewhat larger clusters but there should be fewer of them because they tend to be more brittle and have worse performance.
- mbrodersen 5y agoAgree. Automatic system/user level testing is awesome. Automatic unit/module/class testing is a waste of time.
- iratewizard 5y agoAnd here come the cultists to tell me it's not a cult. TDD is at best training wheels for an incompetent junior developer. All of the TDD cultists I've worked with in the past have needed a lot of extra hand holding in how to properly design architecture, how to write more legible code and have never been allowed to go anywhere near interface design or development.
- mbrodersen 5y agoAnything taken to extreme is a problem. Too much water will kill you. Not enough water will kill you. System level automatic testing has saved me hundreds of hours of work. And years of enjoying zero bugs in production. However I achieved that with zero unit testing. System level testing only.