I've seen "UX first" gone terribly bad, because when designing the UX in a vacuum it's easy to glance over a lot of requirements imposed by the domain. E.g.: it's common for UX designers to expect any action in the app to be synchronous, which is often an impossibility (not just technical but from a business domain perspective), leading to UIs that pretend things already happened and puzzling users when it turns out…
I generally agree. This is why I think the home construction analogy for software might do more harm than it does good. If you go with the building construction analogy then the UX is just as much the architecture as it is the paint, floorings, materials etc. Even in the housing market, the same building plan does not work for your entire market. It depends on if you're developing software that is more of a tool addr…
Some business apps do need to change every year. There's not any common sense for this situation (like house building) because you'd need to predict the future.
>UX first can work if it's iterated in small cycles continuously
Absolutely agreed, what I've generally seen is that the first iterations are there to get the UX grammar down with non-technical users. Then they can see what they like and don't like and their requirements become more coherent.