Why the MISRA standard is a means to an end, not a goal in itself
Dear European Automotive Industry,
With this letter I would like you to stop using the MISRA standard. The reason why I am asking this is because this standard is insufficiently focusing on improving the quality of automotive software. MISRA is very good in making sure C/C++ types are used correctly and unspecified behavior is identified. That’s true. But it lacks any notion of what real good software code quality is about. MISRA is written to be checked by old-fashioned classic code checkers, but the world has moved on. We have deep flow checkers that can find real problems in software code, such as null pointer exceptions and array out of bounds. Moreover, the MISRA standard is revised only once in about 8 years, which is not acceptable in this fast moving world.
Large car OEMs demand their suppliers and the suppliers of their suppliers etc ad infinitum (we are talking about thousands of companies) to adhere to the MISRA standard. This is done in such a way that any deviation, any violation that is not solved in the release, should be justified in writing. I have seen these suppliers creating 100,000+ reports just to prove that innocent conversions of types that are flagged by MISRA are justified, thus burning 100+ man-years every release to get their software accepted. If only MISRA was enforcing the right rules, the 100+ man-years could have helped your industry.
I have talked to these suppliers and their clerks. They blindly follow what the OEMs have told them and they even demand tool vendors to create MISRA code checkers. In other words, the MISRA ghost trickles down to everybody. Once a supplier is MISRA compliant, they are happy because they can put a quality stamp on their release. They are not interested in delivering good software, they are interested in being compliant with “regulations”. Please, stop with this bureaucracy and make sure real bugs are found instead in your code. Let’s deliver good software and make sure your industry can grow instead of imploding due to its heavy procedures.
With best regards,
Paul Jansen – CEO TIOBE Software