It all depends on where you want to end up.
If you see yourself being a Technical Architect, I feel product development experience is preferred.
If you see yourself being an independent contractor/consulting manager, client facing experience is very important.
IMHO, these two roles differ widely in how they work even though they might work on the same technologies.
In product development, your focus is to develop an optimal solution to some problem (atleast if you're working in a big product based company like Adobe, Oracle etc). You follow processes all the time. You would typically be associated with a particular module/functionality of a product.
On the other hand, in consulting, your main job is to generate revenue for your company by billing the client on an hourly basis. Deadlines are stringent and at times, people give a damn about software engineering principles. In all big consulting companies like Deloitte, Accenture etc, the mindset is, as long as it works within acceptable parameters, the solution is good. I believe this tends to happen because of the way projects are staffed. They'll just pick you up one day and assign you to a SAS project, for example, with minimal training. After that you're on your own. Implement it - or get fired!
Get the point?
No role is better than the other, it all depends on where you want to end up. I respect the product development guys for their deep knowledge of technology, algorithms, best practices etc. I respect the consulting guys for ability to learn and implement at the same time right in front of the client, understanding of business domain, presentation skills etc.
Fact is - you need both to run a successful software business.
2 cents..
Amit
[ December 12, 2006: Message edited by: Amit Saini ]
[ December 12, 2006: Message edited by: Amit Saini ]