I think the problem here was time. Given enough time you can move the people (I think there's something like 2.4 million in Houston proper, closer to 6 with the whole metro). The logistics are staggering, would require a huge amount of manpower, clear communications between all groups, etc. Incident Command Structure (ICS) is how it's done, but time was the enemy here.
If they had attempted to implement an evacuation, but didn't get people off the highways by the time the flooding hit, the carnage would likely have been worse. Although, it's hard to say how bad it's going to get.
It's the fourth largest city. Harvey wasn't a hurricane until Thursday afternoon. I don't know how confident the models were by Wednesday, but I just can't see how they could have possibly gotten people out by Friday afternoon. Especially when you add in the coastal people who were told to get out.