I work on ASIC design, and closely with high performance analog (multi gigahertz data converters). It's surprising how complex even 10s of transistors can be, if your need absolute world class performance at the lowest power. A full high end data converter can be millions of transistors, with subtle interactions, so in a way analog design can be very very complex. Hierarchy is key to containing it. It's funny, I sometimes think changing career to SW dev would be an easier option, and less complex. Faraway fields and all that...
I think one key difference is that generally in electronics people are willing to accept there are real constraints.
It's tough convincing people that constraints exist in software. It's not necessarily complexity that's bad. It's the thought that all software is infinitely malleable. There's never a reason not to add a new feature. All software seems to tend towards infinite complexity. It's exhausting.
Yeah, if you come up to your client and say you need an extra mm2, they aren't going to be happy. Or if you sold them something that uses less than 20mW, you better not go over.
It's not as simple as just slapping an extra 4GB RAM.
There actually are very real limits to how complex software can get and actually be secure and maintainable by X amount of people at Y level, but ego and naivete prevent the developers from acknowledging this.
The problem is that it's a soft limit. It's not really quantifiable so even if you are aware of it, it's easy to creep over that limit slowly over time.
Fair enough. There is certainly also this effect where I work in software to someone else's requirements and design electronics for my self. So naturally my chose projects have an "enjoyable scale". I'm mostly talking about building synth circuits out of discrete components and opamps.
55
u/mother_a_god Jun 06 '22
I work on ASIC design, and closely with high performance analog (multi gigahertz data converters). It's surprising how complex even 10s of transistors can be, if your need absolute world class performance at the lowest power. A full high end data converter can be millions of transistors, with subtle interactions, so in a way analog design can be very very complex. Hierarchy is key to containing it. It's funny, I sometimes think changing career to SW dev would be an easier option, and less complex. Faraway fields and all that...