Hardware engineers are . . . different.
Okay, I’ve done my share of soldering stuff together, then applying power in a burst of enthusiasm and seeing expensive smoke go curling up because I’d been a little hasty. (Best show: A poor little 555 timer that had been socketed backwards; it gave a “pop!” as it blew the top of its plastic case off, which shot across the room and bonked my office mate in the back). Frankly, the out-of-pocket expense of my hardware mistakes are what drove me to prefer writing software over screwing chips together. Also, if you think about it, you can do a lot more damage with software.
But a lot of my interactions with hardware engineers follow the three steps: (A) agreeing on a set of registers and functionality, (B) waiting around for the hardware (occasionally checking in to see that what we’d agreed on hasn’t changed), and (C) finally getting the stupid thing and having to figure out what the heck it that Joe Hardware Guy actually designed.
“Uh, Joe? This thing doesn’t have any interrupts.”
“Well, I thought you could poll it for completion.”
“No, we were all agreed on interrupt mask registers, resets and enables, all that stuff, right?”
“Well, it’s all finished, so I’ll have to go tell my boss you need interrupts now and the schedule is going to slip and turning the chip again is going to cost…”
And now you know the real reason that hardware guys all hang out together in a lab, surrounded by hot soldering irons, heavy desks, and many, many sharp tools, it’s because when the software guys scream and leap, the hardware team can mount a defense.
“Christ, it’s the OS guys again. They must have found out what the memory system latency really was. Joe, see if you can make it to the parts drawers; I’ll cover you.”
“Fibgy! Get that smoke generator working again!”
“Everybody, I want your scopes on Auto, and prepare to fix high impedance probes. Now MOVE!”
I’ve only seen one hardware lab that didn’t have a back way out. The bastards, the poor, unlucky bastards had to raise the white flag and give us an error status register after all.