Every engineer should do a stint in consulting
Here in Mexico we have an opposite view of this: The majority of developers have spent their professional life doing "consulting" jobs in outsourcing firms. Few devs have experience developing a product and taking care of it 2 or 3 years later.<p>The difference shows in the type of code they do, the "ownership" and engagement they have: Those with a consulting mind will do something and then have the notion that once its "done" they don't have to care about it. Those that have been  bitten by their own code from the past have a better notion on how to write maintainable code.