“What are the other guys doing – and how can I learn?” are two of the important questions that any developer or manager should ask himself regularly.
On the main page of this site I refer to a survey done by Stackoverflow. An even more relevant survey – if you work within the embedded world – is the “2017 Embedded Markets Study” from Aspencore, presented by “EETimes” and “embedded”. This is a survey that has been done yearly in 20 years, so it is great at showing trends. 2016 was skipped, so this years survey compares itself to the one from 2015 and the years before.
With 1234 respondents this year it has a pretty good confidence for our small niche. In the following, I will be looking at key take-away’s, adding my comments.
- When asked about technical capabilities included in the current embedded project, the high-scores are:
- 59% Real-Time capability
- 56% Digital Signal Processing
- 54% Networking Capability
- 50% Analog Signal Processing
- 40% Wireless capability
- 36% GUI
- 34% Project Rugged
- Comment: I find it interesting that the need for DSP is so high.
- Among those projects that use wireless technologies, they fall in:
- 65% Wi-Fi
- 49% Bluetooth
- 25% Cellular
- Comment: The rest fall among other technologies – but in overlapping categories – e.g. LoRa and SigFox.
- The average embedded team consists of 14.8 engineers:
- 61% work with software
- 39% with hardware
- 81% primarily build or subcontract their own boards. The remaining 19% use 3’rd party boards.
Comment: This is to me the biggest surprise in the survey. I would have thought that many more projects would be using 3’rd party boards. It may be related to the fact that the average company size among respondents is 3452. It is likely that the smaller companies will be more prone to go for 3’rd party solutions. In Denmark where I live, we do not have many companies with 3000+ employees.
- 44% started development using a “development board” from a vendor or e.g. a Raspberry Pi.
Comment: This is a low number, but may be related to the fact that most projects are not run from scratch, but based on earlier projects. Thus hardware is available as a starting platform.
- When it comes to programming language, C and C++ are the major winners with respectively 56% (66% in 2015) and 22% (19% in 2015). There is no explanation for the decline in the use of C – no other language is popping up.
- Reuse of code:
- 13% says all code is new
- 81% are reusing old in-house code
- 27% are using open-source code
- 13% are using purchased code
- Comment: The above numbers are surprisingly consistent over the years.
- When asked about what percentage of their time spent on what, the developers report – in “phase” order:
- 14% System Specs
- 11% Conceptual Design
- 32% Detailed Design
- 6% Simulation
- 20% Test & Debug
- 9% Prototyping
- 7% Sending to Production
- When asked which activity they would like improved, the top three are:
- 19% Debugging Tools
- 17% Schedule
- 15% Skill Level
- Looking forward, the top 3 challenges are:
- 19% Managing increasing size and complexity of code
- 18% Integrating new technology or tools
- 17% Security concerns
- Comment: I think that “Security Concerns” deserves a higher place on the list. Apart from that I believe that its a good list.
- Regarding operating systems there is – as expected – a trend from Commercial to Open Source. Since 2012 commercial RTOS’es have gone from 40% to 30%. In the same period Open Source RTOS have gone from 31% to 41%. The remaining designs are either not using an RTOS, or make their own. The favorite argument for a commercial RTOS is Real-Time Capability – something that the standard unix-derivatives do NOT have. Likewise, the main reason for staying on a non-commercial system is that it works.
- My very short interpretation of the lengthy material on CPU’s is that most use a single-chip, 32-bit one – sometimes with multiple cores. Comment: This makes a lot of sense. If you have an SMP-OS like Linux, it is not a big step to have more than one core. On the other hand it IS a big step to have multiple CPU’s.
- 70% says that the main parameter for choice of CPU is Software Development Tools available. Comment: Amen to that.
- The trend of using FPGA’s is downwards:
- 35% in 2012 to
- 30% in 2017
- Only 25% plan to use FPGA’s in their next project. The argument is that the cost as well as the power-consumption is too high
- Comment: I think many R&D-departments are realizing that FPGA requires a special set of skills, that needs a certain “critical mass” of developers to stay competitive. In e.g. medical scanners that require heavy number-crunching, but have all the necessary power, FPGA may be an advantage. On the other hand we see IoT bringing a renewed power-awareness. Here developers have more than enough to do to cope with all the new wireless stuff. FPGA’s are complicating matters now, but future chips with integrated CPU’s may be the answer to the high-end of security requirements.
- Graphical User Interfaces are slowly gaining ground – up from 41% in 2013 to 49% in 2017. Comment: This may create more attention to “Operating Systems” like Android that have a Linux core – but also a GUI-platform on top.
- Version Control Systems: Recently Git (38%) has surpassed Subversion (33%). Comment: If you want Open Source, there is no way around git. Nevertheless this may be one of the most painful parts of the transition to Open Source.
- Project Management:
- 44% Excel
- 38% MS-Project
- Comment: Further down the list we see tools such as Visio! It all shows that the embedded community is still struggling with finding a way to describe and predict projects.
The full survey, with nice graphics is found at http://embedded.com. It is definitely worth studying. There is much more on various vendors of OS’es and CPU’s as well as insight into where developers seek information. Enjoy!