Avoiding the Top 43 Embedded Software Risks
This paper briefly distills the lessons learned from almost 100 reviews of industry embedded software projects. What I found was that even developers without formal training tend to get the basics right if they have spent time working their way through intro to embedded books and a few hands-on learning projects. There are a number of more advanced technical problems that tend to surface in embedded projects (for example, concurrency management). But, more of the risks stem from having a poor engineering process, cutting corners on quality assurance, or believing all you need is source code to succeed. As design engineers we might like to dwell on nitty-gritty technical aspects. But there is more to success than that. Embedded developers need to deal with the higher level risk areas I identify, and can benefit from the concrete best practices described.