MDA, Software factories, etc., are imho the way to go, but unfortunately, there is strong resistance in the current generation to "ceremonial" architectures and methodologies (which are /unfortunately/ a requirement for that to happen, in my opinion).
A lot of the really bad practices that hit us with long-term costs come from this era... and a lot of the misconceptions we have about programmers being nerdy anti-social types come from those personality tests, because they didn't test whether you'd be a good programmer... they tested whether you would sit in a production line and push buttons repetitively without talking to others.
So... no, I don't think that a return to the factory model is the solution. It's been tried and it really did not work. I think that software is big enough of a shift that it warrants removing the traditional business hierarchies and ceremonies of authority, and to create a new model that is not the old factory model.