We have enough housing for the number of people we have.
What we have is a complete lack of top-down management to allocate it efficiently.
If we combined Soviet economics and modern Big Data, we could solve this easily-- mandate that economic engines are sited where housing gluts exist, and assign out housing to optimize things like average commute length.