I'd argue that software is the lowest end of the foodchain. Pretty much anyone can write software, anywhere in the world, it's pretty much the first step to understanding how electronics work. Designing hardware is a much more difficult task and needs the kind of ecosystem described in the post.
As a software engineer in industrial automation, I'd have to agree. Writing code for a robot is definitely the simplest step in building robots. Designing hardware, drawing up electrical diagrams, and actually building the damn thing are where the real challenges lie.
I used to think that, but recently I've come to think that if that were true, than software would be way better than it currently is, and hardware way worse.
My impression is that it tends to be way easier to create a lot of moving parts in software where physics isn't there to act as a guide. In essence, it's way easier to make shitty software organically than it is with hardware.
Your impression is true, and there's a good explanation for it. In my experience, the cost of software failure is much smaller than the cost of hardware failure.
If your software fails, your robot might behave erratically. No problem, just revert to the last stable version and try again. OTOH if there's a mistake in the hardware spec, you will have to replace that $5000 sensor, or worse, your robot might electrocute someone.
End result is you can get away with shitty software, but you can't get away with shitty hardware.
The Therac 25 medical radiation accidents are an illustration of this point. The 25 had low-quality software running a robot with too few hardware safeties built in, and caused injuries and deaths. Previous Therac models had similarly defective software as the 25, but killed nobody due to having hardware safety features independent from software.