I hear you, but to me that's a difference of scale, albeit one that allows you a greater tolerance for risk during the engineering process.
I wouldn't argue that chip design is not an engineering process because because the risk/build profile differs from that of a bridge, nor would I make a similar argument for bridges versus cars or dams or spaceships. To me, engineering is a really broad term that encompasses software just as easily as it does physical components.
It's a massive difference though. A single software project might go through a few thousand iterations of a complete build, test, development cycle. Some projects probably go through that a week. That's completely different to the average engineering project.
I hate being called a 'software engineer', as it's pretty much nothing like what I do.
The only similarity is that we both "Build stuff".
I hate being called a 'software engineer', as it's pretty much nothing like what I do.
Ironically, having studied several engineering disciplines, I feel precisely opposite of this. I want people to understand that building reliable software is an engineering effort.
In my work, I try to balance competing forces and constraints to design reliable, elegant, modular, well-tested components at low cost. Just like practically every other kind of engineering I've ever seen.
And that's one way of doing it that resembles engineering.
Just as engineering can resemble programming, programming can resemble engineering. But trying to imitate what engineers do limits what you can do as a programmer. Programmers also work on multiple levels of abstraction in a way that I imagine to be somewhat different from engineers.
Abstract concepts are imperfect. Chip design isn't exactly programming because the final product requires fabrication, no matter how well you can fake it with simulators or FPGA's. (In situations where FPGA's are useful in deployment, I guess "chip design" would become "programming an FPGA" and you would get the benefits of quick building that programming gives you.) Likewise, we can design an airplane in CAD and put it through a computer simulator, which might allow a more programming-like design experience. But "engineering" implies that it's a separate step from manufacturing or assembly, whereas a programmer goes from idea to built parts within hours (not the whole system but definitely a subset of it).
I wouldn't argue that chip design is not an engineering process because because the risk/build profile differs from that of a bridge, nor would I make a similar argument for bridges versus cars or dams or spaceships. To me, engineering is a really broad term that encompasses software just as easily as it does physical components.