Hacker News new | ask | show | jobs
by rthomas6 4884 days ago
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.

1 comments

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.