> we do need some quality assurance which is more reliable than "this piece of software passes all the tests which guided its development"
We do not necessarily need even that. The web site for the little antique bookstore in downtown Padova really doesn't - it doesn't even handle money. They're happy to get something that mostly works and fix the rare bug that does come up when it's noticed. The software responsible for safely guiding a 747 full of people into an airport at night, on the other hand, probably does something more in terms of tests/QA/provable correctness/whatever else makes it safer, even if it makes it significantly more expensive.
There's no contradiction, and I wasn't talking about TDD. My point is merely that you have to consider the economics of these things, and software projects vary to the extremes in terms of their importance and impact on our lives.
I completely agree. This also applies to engineering, though. If you are making a gingerbread house with your child for a school project, you are not going to need any kind of certification. If you are building a shed in your backyard, you may need a permit, but you do not need extensive approval from quality assurance teams on each step of the process. Software is the same way. Large systems require more extensive testing. A space shuttle needs software and engineering with extensive testing. A bridge and software for medical devices needs quality assurance beyond the usual scope. However, quick hacks exist in engineering and software, and it makes no sense to 'trust your code with your life' or 'trust your engineering skills with your life' when all you are making is a popsicle stick house.
If it only took you a night to do it, then I guess so. However, it sounds like you are making a shed or garage instead. Still, you are not sending anyone to the moon, I suppose.
If the scope of your statement was that narrow, I will agree with you. Though, the article does point out that eventually, code you've written and perhaps released without claiming any responsibility whatsoever might be used in something more important than what was originally intended.
If someone takes something of mine that's not been built for 'safety critical' use, and wants to use it there, the onus is on them to put the extra effort/money/time in. Same as if I built a one story house and someone wanted to add 5 floors to it - it's not really my fault if it doesn't work out.
We do not necessarily need even that. The web site for the little antique bookstore in downtown Padova really doesn't - it doesn't even handle money. They're happy to get something that mostly works and fix the rare bug that does come up when it's noticed. The software responsible for safely guiding a 747 full of people into an airport at night, on the other hand, probably does something more in terms of tests/QA/provable correctness/whatever else makes it safer, even if it makes it significantly more expensive.
There's no contradiction, and I wasn't talking about TDD. My point is merely that you have to consider the economics of these things, and software projects vary to the extremes in terms of their importance and impact on our lives.