Don't confuse lack of hierarchy with flatter hierarchy.
> Don't a lot of traditional software companies have a sort of hierarchy?
Yes, see what kind of crap they produce.
Of course, not all software companies, but the ones that really innovate can't survive certain environments
> What about software makes it incompatible with hierarchy?
The sheer level of independence that every part needs.
In a hardware project you pick your parts (you have some requirements, some limitations in size, power, vendor, etc so it might be a choice between a handful of parts), then put it on a PCB, solve placing, routing, EM compatibility, etc. It's complicated, but you don't have too many people doing that. And more importantly, your boss knows more or less about everything and if he doesn't believe it there are hard constraints that serve as guiding (power consumption, EM emission, performance, etc)
Good? Now, you want to build the software for the iPhone. Or for the Macintosh, same thing
Development is separated in many areas (design, base system, user APIs, drivers, etc)
And the overlap between areas is significant. You need information flowing freely so you can come up with the best solutions (this is not 'design by committee')
You also need independence and not justify every tiny decision (and why didn't you go with the 'safe' solution).
This is the complete opposite of what happens in Japanese work culture
http://www.hierarchystructure.com/japanese-business-hierarch...