software code

Software has brought us huge technological advances. The world can commerce, communicate and connect like we could never have imagined 50 years ago. We have been living through the software age, yet the firmware age is upon us as things by the billions become 'smart' and 'connected'.

Firmware, as all of us techies know, has software as it's backbone. But the non-techie frames everything through the lens of what they know, software. As a result most folks don't understand this distinction and just refer to it as 'software'. Yet it is not 'just software' and those doing the work our not computer scientists by and large. See the below survey I conducted a few years back for an article I wrote for Embedded Systems Magazine.

Computer Scientists are not writing firmware! Electrical Engineers and Computer Engineers are designing the bulk of it. I have written a number of blogs and articles on this issue.

Note that Firmware controls engineered systems. Primarily electrical, but also mechanical and even chemical. In all cases the interface between firmware and 'the world' is electrical engineered circuitry. This world, electronics, is foreign to the computer science college curriculum.

So who knows electronics? To your left is what the output of an Electrical Engineer looks like. Does this look like something a Computer Scientist would create or know at a professional level? Electrical Engineers know electronics and are trained in engineering. Not well trained in computer science! The curriculum of an electrical engineering student contains some 'programming' but nothing even close to professional software. I've seen college software programs and programming examples from electrical engineering classes. It's not pretty, other than pretty bad and pretty ugly.

So who knows software? To your left is what the output of a Computer Scientist looks like. Does this look like something an Electrical Engineer would create or know at a professional level?
So I am here to alert the masses.

IoT is about smart things connected to the internet. The only way to control a thing or get data out of a thing is through electronics yet computer scientists are not trained as Electrical Engineers! Electrical Engineers are not trained in computer science! See the problem? So now IoT is here. We see it in our organization. It's coming in spades. Imagine billions of things needing firmware...and having not nearly enough firmware engineers. Let's make this even more concerning. The majority of firmware engineers today have never been educated in professional level software design, let alone solid encryption and security to keep the bad guys out.

Heck it is even hard for the software guys to keep the bad guys out!
We need another boom of new talent. It was software. Now it's firmware. But we don't have a degree for firmware! Not in the US at least. You learn software as an Electrical Engineer via OTJT (On The Job Training).

So the take away.

  • Stop calling firmware software and let's start training firmware engineers in computer science or computer scientists in electrical engineering and soon.
  • Billions of billions of things connected wirelessly using not so solid software principals is coming to a store near you.
  • Software crashes lock your computer up. Firmware crashes are real, physical crashes.

Bad Firmware? Think Galaxy Note 7 on steroids.

Welcome to the Firmware Invasion. Let's find a way to take it from an Invasion to a Golden Age.

About the author:
Bob Scaccia is President and CEO USA Firmware.