Why Microsoft Won’t/Can’t/Shouldn’t Lead

That’s a rather sensationalistic headline, I admit, but it’s true and here’s why:

Any sufficiently large service-based organization is a pure reflection upon its constituency. That is, any sub-optimization, moral bankruptcy, intellectual dishonesty, etc — either perceived or real — is due to those qualities being present in equal or greater measure in group of individuals that that organization services.

Examples:  Microsoft, [any large IT consulting firm -- IBM, etc], U.S. Congress or the entire FedGov as a whole, etc.

If the constituency will not hold its servicing organization accountable and to a higher standard, they can and should only expect lower, inferior service.

If you are angry with the way Microsoft, for example, behaves or operates, the only effective way of changing them is to get their constituency to expect more from them. Currently, Microsoft delivers only what is expected of them and they have no reason to do otherwise. Sometimes this results in spectacular successes, sometimes spectacular failures, but usually mediocrity. Mediocrity, incidentally, is the norm for most human endeavors — I’m not picking on MS particularly here.

Please note, in all of these organizations (Microsoft, Congress, FedGov, etc) there are great people (heroes? champions?) trying to change things for the better and rally from within to change without but whatever victory they may achieve will be only marginally effective and short lived at best if the constituency as a whole does not take hold of that victory and demand it repeatedly.

If you want to affect real change, call attention to a specific problem, raise awareness of it, generate interest in getting it changed, appeal to the organization to change and hold them accountable for it. So far, almost every time I’ve seen this tried (including and especially at Microsoft) it has worked. It may take time, but it does work. Case in point? ASP.NET MVC. Microsoft heard complaints, responded to them, made efforts, took feedback, and is making repeated efforts to produce a quality product. Continued involvement by the constituency to hold Microsoft accountable has resulted in Microsoft putting some really bright people on the project and working through the issues publicly to satisfy the demands of her constituents.

Hopefully, this can be used as a model going forward for encouraging Microsoft to focus on the products and services that provide real value in an honest and open way that have real benefit to the community beyond just its feature set.

About Chad Myers

Chad Myers is the Director of Development for Dovetail Software, in Austin, TX, where he leads a premiere software team building complex enterprise software products. Chad is a .NET software developer specializing in enterprise software designs and architectures. He has over 12 years of software development experience and a proven track record of Agile, test-driven project leadership using both Microsoft and open source tools. He is a community leader who speaks at the Austin .NET User's Group, the ADNUG Code Camp, and participates in various development communities and open source projects.
This entry was posted in ALT.NET, Misc, Self-examination. Bookmark the permalink. Follow any comments here with the RSS feed for this post.
  • I think the single biggest thing that distinguishes the process being used by MS to develop ASP.NET MVC isn’t that they are asking for and receiving input — every product MS develops (at least nearly all) have at least one CTP, private betas, and often public betas during which MS asks for and often recevives feedback (often both from select customers and from the community at-larage).

    What makes the ASP.NET MVC process so different is WHEN they are asking for feedback. WIth EntityFramework, for example, by the time they were interested in asking for feedback the overall architecture of the entire ball of mud was already long-past baked beyond where it could accept any fundamental changes based on any of the feedback. With MVC, feedback was solicited early enough that it was possible for the feedback to shape more than just the peripheral features of the product.

    I 100% agree that its the responsibility of MS customers everywhere to provide the feedback as to what we want to see, but there are practical limits to what an outsider can ‘comment’ on to them; if the software is cooked up under cloak of darkness and then delivered to us as an 85%-complete fait-acompli, then no amount of feedback at that late point will be of much value (unless they are willing to completely start again and push waaaay back planned release dates for the software in question).

    Contrast the interest around adopting ASP.NET MVC with the process that begat WCF and WF (two very mildly-adopted technologies that MS previously — remember way back! — considered to be ‘pillars’ of the .NET 3.0 release). Adoption of these technologies ‘designed in a vacuum to solve theoretical problems’ are technologically interesting but miss the target of actually solving real problems by a mile.

    Asking for feedback early is critical to ensuring the deliverd product actually solves a real problem rather than a hypothetical one (pretty sure this is somewhere in the Agile Manifesto ).

  • Well said, Chad. Thankfully, at least Microsoft is beginning to listen. I’m sure there are other companies where user feedback would have no affect at all.

  • Tim Tonnesen

    MS is a business and all businesses are driven by profits. I agree with you that customer input is important, but I would strongly suspect that MS’s main motivation for making MVC was concern about competition from the open source software that has been making inroads. They were concerned about profits and market share.

    If no one is threatening their market share, what do they care how much their customers complain? Before open source started making inroads they didn’t listen much at all. Now their profits are starting to depend on it.

    The best way to get MS to change is to compete with it.

  • Point of Order: ASP MVC team did not take community input well or seriously until the community burned down the house with applied humiliation guerrilla tactics during early previews. Only then did the team start to respond.

    Let’s not forget the necessary fighting that often has to happen before peaceable relations with Microsoft break out.

    It’s great when Microsoft participates like a good, functional member of society, but lets not Microsoft too many kudos for being open and receptive citizens of the reality that it has endeavored to create.

    You typically don’t get a chance to hold Microsoft accountable until you set it’s accounts on fire on its front porch and call the world’s attention to the blaze, and hopefully the reason for and context of the blaze.

  • @Scott

    I didn’t mean to imply that the MVC effort was initially receptive to criticism or that it didn’t take people ‘shaming them’ into listening for them to do so as you quite properly point out — merely that with MVC they at least DID show it to people before it was too-far gone to be effectively changed for V1 and its this aspect that distinguished it from other product initiatives in my mind. Rather than saying ‘nice comments, we’ll consider that for v2 because we’re already 90% done with the product’, they (in the end) did start to take some of the feedback to heart in time to have it positively affect the v1 release.

    My point was less about their level of listening and more about their at least offering the change for feedback before its too late for them to adopt any comments even if they want to.

  • Steve

    When MS ships Visual Studio for Linux then I’ll believe they are interested in the developer community :)

    I should be able to run and build my software on the environment I want to run it on.

    I think Vista has shown how badly MS can mess something up. What amazes me is how many companies are so locked into MS. They have shown their incompetance over and over again.

    And yes, Entity Framework’s lack of POCO and a ‘Repository’ DD model approach out of the box show how far away they are from what we need.

    Either that, or more open source developers need to realize that the only thing MS does better than you is provide good GUI tooling :) People use Linq to Sql because they can drag tables onto a designer, stored procs to a designer, and it creates it all for you – relieving you of typing up 50+ classes with hbm.xml files.

    Tooling :)

    I just want Ayende to show me how much better Boo can do MVC and I’ll switch over ;)