Altough I agree with you, I still definitely think we are heading towards a future where in order for your code to ship, you will need to be a certified programmer, or have it validated by a certified programmer, at least in some industries.
Do you think it is safe, for say, a non certified (read: a guy with no CS degree) programmer to design and code software that runs on an MRI machine ? Or the one which controls airplaines ?
If airplaines start crashing because of a software fault, do you think we could and should blame the programmer for not having made the required tests ?
Software _development_ is a very young discipline, and as such has not yet been regulated. But I believe the day will come where it will.
The solution to this is testing and required design procedure. Comprehensive, detailed, expensive testing, and comprehensive, detailed, and expensive design documentation and documented procedure.
There are currently guidelines for software that goes on medical equipment and airplanes. Airplane software's testing and design procedure gets checked by the FAA. I also know there are comprehensive code coverage requirements. Replacing this with certified programmers means that the programmer WILL be personally liable if there is a fault in the design. I don't think this is a good idea.
What you just described is, put simply, to follow engineering principles. Some people would argue that Software Development is not an engineering discipline but a craftsmanship.
And anyways, it would still be a huge scandal if the FAA allowed someone, (or a team of someones) without a degree in CS, to check an airplaine's software. Does this need to be regulated as a law, and thus, recognition of the Software Development discipline as a profession ?
The way I understand it, the FAA checks to see if the software design was designed and tested according to documented procedure, which was approved beforehand. The procedure must follow some published guidelines, mainly [DO-178B](http://en.wikipedia.org/wiki/DO-178B). The FAA person probably doesn't need a CS degree to check this. They just need to be competent enough to review the documents generated during the DO-178B process, and see that they did what they said they did. The civil liability I think would come in if a company forged their documentation. And if the documentation is not good, then the software won't get approved by the FAA audit. At least that's how it's supposed to work.
Edit: There are third party or FAA technical experts involved, so I guess your point still stands. But I don't think certification can replace this kind of following engineering procedure. And yes, I consider software engineering for safety-critical applications an engineering discipline.
Do you think it is safe, for say, a non certified (read: a guy with no CS degree) programmer to design and code software that runs on an MRI machine ? Or the one which controls airplaines ? If airplaines start crashing because of a software fault, do you think we could and should blame the programmer for not having made the required tests ?
Software _development_ is a very young discipline, and as such has not yet been regulated. But I believe the day will come where it will.