3 ms·
There's as many definitions of engineering as there are jurisdictions. Someone joked at some point that designing a PCB is real engineering (solidly into EE ter
by 908B64B197 5y ago
There's as many definitions of engineering as there are jurisdictions. Someone joked at some point that designing a PCB is real engineering (solidly into EE territory). Chip design as well (designing an ASIC is indeed generally considered to be EE). But replace that ASIC with a microcontroller and firmware and suddenly the firmware writer is no longer an engineer, despite the part having the same spec as the ASIC it replaces. Misplace one of these microcontrollers with the correct firmware on it in the wrong bin and it might even end-up on the same board the ASIC was supposed to go. And nobody would notice a thing.
> If we software peeps fully understood our deliverables, we wouldn't have bugs, or at least, we'd always know what bugs are there.
In the embedded world that's more true than in "general purpose software" as the problem space is often better defined. There are also Realtime OSs that offer hard guarantees in terms of execution time and memory consumptions (or at least will have a hard cap on the upper bounds). It is possible to develop software that’s extremely predictable and has runtime measured in years. But it’s costly and takes time.
> so we clearly have a tolerance for delivering work that we don't fully understand.
Yes, when non-critical. You'll see it too with "silent upgrades" of physical products over their lifetime. Some of them are to correct non-critical flaws discovered over time.
This tolerance has increased a lot over time as the cost of update has lowered (keep in mind not that long ago OS updates shipped as physical media!). And the cost of shipping bad (non-critical) software isn't the same as shipping defective products (think about the costs of a physical product recall). That allows a level of acceptable risk that’s alien to most other engineering disciplines.
From the article:
> In Canada you can't even call yourself a Software Engineer unless you're accredited!
How much of that is the licensing body trying to squeeze a few dollars here and there? Do they actually enforce those rules? Would it be enforceable (if you can't define it properly, first amendment should apply...).