warning: this post is based on highly ignorant beliefs and huge generalizations. I know that there already is a Microsoft Consulting branch, but the one I'm speaking of is completely made up –since I know nothing about the existing one.
A company who seeks out a software consulting firm to help build [part of] a custom application likely has a simple incentive: to receive a functioning application at a fair cost. There are many reasons why a company might turn to a consulting firm - the main ones probably being lack of time and/or resources.
The problem with software consulting firms is that their incentives likely don't line up with their client's. A consulting firm's objective is to make money. The two goals aren't necessarily irreconcilable. A happy customer can certainly contribute to a consulting company's bottom line, through repeat business and word of month.
Of course, there are a lot of ways for a consulting company to achieve its goals that aren't in the client's best interest. A consulting company might produce low-quality code which may or may not be functional. They might charge to fix errors in their own code. They might charge unfair rates for more junior developers. They might share resources with other projects (which may or not have been agreed to). In fact, there are more ways that a consulting company can squeeze a dime out of a clients hand than I care to think about.
In my limited experience, large consulting companies are more likely to serve their own interest because they are (a) not as concerned with word of mouth (i.e. they have a world-wide recognized name) and (b) are interested in volume business. As a matter of fact, I know of one very large consulting company which rates its employees based on how well they represent the consulting company, but doesn't have 1 field in their review which recognizes their contribution to the clients goals.
This is far from a unique or new problem. For example, most of us are at our mechanics mercy when it comes to any car issues we might have. At a high level, the solution to any of these types of problems is to align both parties' goals as best as possible.
Enter Microsoft.
Assuming we are strictly talking about Microsoft technologies, Microsoft is best positioned to solve the problem. You see, Microsoft's incentive, like consulting companies, is to make money. What makes them different is that they make money by selling software – not services. Their service offering, in this case Microsoft Consulting, could be set up as a loss leader. They could offer consulting services at-cost, run the entire division as not-for-profit and completely transparent to clients, while increasing their product sales and client goodwill towards them.
In a recent project I was involved in, the client completely abandoned the Microsoft platform due to horrid execution by the contractor. I have no doubt that, by no fault of its own, Microsoft lost millions in software sales.
Running in non-profit mode, Microsoft Consulting would be able to offer stupidly better rates than any other major player. For $500/day, Microsoft Consulting could provide a consultant that others would easily charge $1500 for. The overall drive for quality would also be somewhat better aligned with the client's expectations.
Of course, there are flaws with my approach. First, it assumes that Microsoft Consulting is able to deliver quality products, hire quality developers and properly manage them. Secondly, since they make their money on software sale, they aren't likely to suggest MySQL or SQL Server Express – even if they happen to be the better choice in a particular case. Consultants would likely be pressured to push Microsoft technologies that really aren't necessary (i.e, build something for InfoPath and require the company to buy 3000 copies of the program).
Another solution would be for Microsoft to stop giving out partner points and certification like candy – actually make companies earn and prove their capabilities. My understanding of building an Xbox game is that Microsoft has to approve the game before it can ship. "Gold certified partners" or whatever should have to go through the same scrutiny and go through it often. I'd be the first to apply for such a job. Not doing so just hurts them in the long run.
Something needs to be done to solve the issue. There are small companies out there which specialize in architecture review – which I think anyone spending a fair chunk of change on custom software should consider doing. Independent reviews are key – else you'll get screwed big time. And Microsoft's responsibility doesn't stop once VS.NET is shipped – they owe it to their own brand to ensure their tools are responsibly and properly used.
