“Their talents did not quite run to scholarship.”
This was Susanna Clarke’s polite way of describing a pack of idiots. Or more charitably, people who were perhaps in over their heads. Swimming out of their depth, one might say.
We’ve all encountered this type of person at work. Conveniently, they often wear neckties so that we can spot them from a long way off. But even credentialed engineers can wade in over their heads, meddling in technical areas where their aptitude does not entirely correlate with their ambition.
The classic case is software guys messing around with hardware. Or is it the hardware weenies fiddling with software? I can never remember. Regardless, there’s definitely an Us-versus-Them dichotomy in most engineering departments. (And that’s not even counting the marketing dweebs, management bozos, purchasing drones, et al.) Hardware people stay on this side of the partition; software types stay over there. It is the natural order of things. It is written. So say we all.
Except… heresy is creeping into our little priesthood, my brothers. More and more, engineers are crossing over the line. You know, the line: The line that separates hardware from software. That separates real engineering (fill in your chosen specialty here) from pretend engineering (all others).
They’re not really firmware engineers—we’ve already defined that term to mean something else—but they’re definitely treading in an area somewhere between hardware and software. It’s… squishware.
I’m talking, of course, about configurable or software-defined hardware. FPGAs are the easiest example but they’re not really the appropriate one here. FPGAs are still designed largely by hardware designers using hardware-design tools. No, today’s engineer is “softer” than that. He’s designing, creating, and configuring hardware devices merely by programming, not writing RTL or drawing schematics. It’s point-and-click hardware design; configuration by the numbers. And it’s threatening to affect our productivity—by improving it.
Examples of this are Microsemi’s SmartFusion chips or Cypress Semiconductor’s pSOC. These are microcontrollers that are programmable in two senses: you program the on-chip CPU and you also “program” the on-chip peripherals to create the I/O mix and pinout you want. Specifically, both pSOC and SmartFusion allow you to create analog circuits just by programming and configuring. It’s like IKEA flat-pack furniture for circuit designers: just screw together the supplied pieces, no skill necessary. We’ll even provide the tool(s).
Programmable analog circuits? What’s the world coming to? Next thing you know, they’ll have cars without clutch pedals and coffee will cost $4.25. In a paper cup.
But this programmable-analog thing is catching on, and it’s largely because today’s young, fresh-faced engineers don’t know how to design analog circuitry. Oh, sure, there are some analog-qualified designers. I don’t mean to say they’re entirely extinct. It’s just that they’re vastly outnumbered by their peers who’ve been taught Java, binary arithmetic, and Shannon’s Law. That scarcity creates a market opportunity, and a handful of chip companies have responded by dumbing down the analog-design process.
Any old-school electrical engineer will tell you that even digital circuits are analog. Physics is all analog; we just choose to ignore those effects in most computer circuits. But as wireless connectivity and RF interfaces become de rigueur in embedded devices, we find ourselves coming face-to-face with the creepy world of analog electronics, whether we like it or not. And we are not amused. Our talents do not quite run to analog design.
We’re pretty good at programming, though. As a global group of talented technophiles, we tend to spawn more programmers than hardware engineers. Programming is easier to learn. It’s also cheaper to learn. Any kid can take up programming on his family PC or on the Web. In contrast, hardware engineering requires actual tools and lab equipment. Thus, we have a lot of self-taught programmers in addition to the traditionally trained ones coming out of universities.
Nothing wrong with that. It’s a normal market response to environmental conditions, and the semiconductor market is responding with an equal but opposite reaction: more programmable chips.
Programmability (or if you prefer, configurability) is also a useful response to Moore’s Law. With ever more transistors at our disposal, we need a way to consume them: a way that provides value. There’s no point in conserving a plentiful resource (transistors) at the expense of scarce resources (time and talent). So if chip companies can throw transistors at a problem and thereby make the chip easier to use, it’s a good tradeoff. And if said tradeoff appeals mostly to software developers instead of hardware developers, so much the better.
So configurable hardware is here to stay. Its presence may hasten the demise of “real” analog engineering, but most employers and universities don’t care. There will always be a dedicated cadre of engineers who truly understand low-level analog circuitry, but fewer developers will need to hire people with such talent. Instead, they’ll hire programmers, sit them down in front of configurable chips, and get their products to market that much faster.
In the meantime, we’re in a funny situation. Configurable chips like pSOC and SmartFusion are, well, chips. You hold them in your hand, they have mass, and they cast a shadow. But they’re programmed and defined primarily by programmers. So who decides which chip to use, the software team or the hardware team? Our customary us/them division of labor makes selecting these chips a bit tricky. The hardware guys might prefer Chip A while the software group wants Chip B. Who makes the call?
That’s a question for management. Who are probably in over their heads.
10 thoughts on “When Programmers Rule the World”
Ah, yes. This is the seductive idea that we do not have to know how it works, just how to work it. Similar to the idea that you do not have to know what you are managing, just how to manage.
But you made a significant statement: “Physics is all analog (…)”. Many new, major applications have physics at their core. Examples are robotics, green power control (solar, etc., kilowatts to gigawatts) and hybrid automobiles. In these cases, the development and design is centered in physics. That is where the value is. The “analog” is not on the chip, it is distributed in the mechatronic system.
Software for configurable logic (whether MCU, FPGA etc.) depends on standardized, stable hardware. If your product value add is centered in physics, the hardware keeps changing. You will have to keep up with the ongoing system hardware changes that use physics to increase performance and value.
In physics based applications, software is no longer separate from the design. It is one component in the design, and typically not the most critical one. Physics and analog are key to a lot of the value provided. Programmers will need to learn the physics of the product applications to be able to do their jobs.
“Real analog” as in on-chip analog circuitry may well decline to a maintenance level, as the analog designers move on to physical system design – where the money will be.
As George Philbrick famously said, “Digital is a special case of analog.”