This is why I always champion technical leadership. Many, many people seem to think this is unnecessary, but I think it's common sense. The layman might see building software like building a house. We know basically all the components of the house, we know we need to lay the foundation before raising walls and installing a roof. Software development is nothing like this. You can add a roof before the walls, you can dig an entire basement before providing any method of descending into it from the ground floor.
In my company we do have predominantly "technical" leadership, as in almost everyone has an engineering background, but we still run into problems. For software folks that's mainly because leadership either tends to come from other non-software domains (EE and ME mostly), or it tends to be people who honestly weren't very good at the actual engineering side of things to begin with.
Yeah... I think you've hit the nail on the head. Technical is probably too broad of a description. It's never made sense to me the amount of people leading software development in some capacity that have never developed any software, let alone any within the domain they "lead".