I think the original piece makes a strong case that this isn't as true as we all think it is.
If you have a strong enough understanding of both the technology and the problem space, you really can judge the most likely bottlenecks as part of the design phase. Which can lead to radically different and better software.
You can always inform the design phase with some quick working prototypes that help validate some of the technical assumptions you are making.