Open Source, Microsoft, and the Future

Last week, I read a great blog post (and even better comments), and then this week I read something else that made me think more about Microsoft, open source, and Microsoft’s direction going into the future.

By way of disclaimer, I’m indifferent to Microsoft. I don’t use their products if I don’t have to, but I understand why they still exist and understand their place in the “technological landscape”. I’m heavily involved in various aspects of various open source communities. I’ve contributed code to a good number of open source projects, I’ve started my own open source projects, and I’ve worked to publish two magazines about two different open source programming languages. I also consult, and stipulate in my contracts that tools developed which contain no site-specific logic are owned by me, and released as open source software on one of my web sites (where I also document some of what I do/have done for anyone who finds it useful). I also wrote a book about a certain open source operating system, and frequently write articles about open source technologies for various web outlets and magazines.

With that out of the way (and so much for “Anonymous Geek” eh?)…

In the comments section of Hal McLeod’s blog post, “how does a software company make money, if all software is free?”, Hal himself asks the question:

“What has got to happen at MSFT if it wishes to remain a relatively happy, successful, interesting company for the next thirty or so years?”

I think that’s a fantastically interesting question. Some in the anti-Microsoft crowd are quick to point out steps they could take that are either disingenuous or naive, or both. If you get past all of that and really try to put yourself in the shoes of a Microsoft executive, it becomes much, much more interesting, and really, quite hard. This is a company that is publicly held. This means that Microsoft has a fiduciary responsibility to their shareholders to grow the company. Maybe putting ourselves in the shoes of a Microsoft exec is to abstract. Let’s try this:

Imagine that your total net worth in life is completely invested in Microsoft’s stock. You now have a vested interest in what Microsoft does going forward. How would you like them to proceed, keeping in mind that the result of their actions has a direct and dramatic effect on your life, and the welfare of your family?

It’s just not a simple question. Anyone who claims to have some silver-bullet, “it’s as simple as x” solution is kidding themselves into thinking that they have anywhere near enough information to make such a call. It’s not likely that their net worth is tied to Microsoft’s stock price 😉

Certainly, some notion of open source is floating around the minds of the Microsoft brass. I say “some notion” because when you read what people at Microsoft say about open source, the only thing that’s clear is that “open source” in their minds is, at best, some nebulous term that seems to change meaning depending on who the speaker is. Certainly, it doesn’t seem to match what people in the open source community would call “open source”. Which brings me to this post I read from Todd Bishop’s Microsoft Blog, where Ray Ozzie (new chief software architect of Microsoft, taking the reigns from Bill Gates) is quoted (by Todd) as saying:

My position toward open source generally is that it’s a part of the environment. It’s very useful for developers to be able to get the source code to certain things, to modify them. Microsoft fundamentally, as a whole, has changed dramatically as a result of open-source as people have been using it more and more. The nature of interoperability between our systems and other systems has increased. I can tell you from an inside perspective … when you build a new product, immediately you start thinking, how shall this product expose its APIs.

…Open source is a reality. We have a software business that is based on proprietary software. We tactically or strategically, depending on how you look at it, will take certain aspects of what we do and we will open-source them where we believe there is a real benefit to the community and to the nature of the growth of that technology in open-sourcing it. … The bottom line is we believe very much in the quality of Microsoft products and we are an (intellectual-property) based business. But we live in a world together with open-source, and we have to make it possible for you to build solutions, or customers to build solutions, that incorporate aspects of that.

The first thing that stands out to me is that the guy either doesn’t “get” open source, or he’s purposely dumbing down the concept because maybe the audience consists of shareholders or some other group that doesn’t “get” open source. In short, developers are not the only people who benefit from having access to the source code, and developers inspecting source code may have absolutely zero interest in modifying it. But this is not the important part of what Ozzie is saying.

What he’s saying is:

  • We have no choice but to accept the reality that is open source software, and the open source community (to a lesser extent)
  • We’d love to find a way to embrace more of these philosophies if we could find a way to do it without being sued out of existence by our shareholders in a flood of class action suits.
  • That said, where we can add value to a product or technology by opening it up (where that term is defined by MSFT), we’ll do that.
  • Short of that, it looks like we’ll at least have to make it possible to integrate/interface with open solutions to keep from being sued out of existence by other parties in a flood of anti-competition suits.

That’s how it sounded to me, anyway. So how does this speak to the question of what Microsoft needs to do to remain healthy and prosper over the next 30 years? It says a good bit by saying little, and unfortunately, the main answer to the question this leaves us with is this:

MIcrosoft needs to engage more, and more directly, with various communities, including the open source communities around various projects, and understand the people and processes, so that it can at least understand how the processes can help them succeed, even if they are to remain a 100% IP-based, proprietary company — because right now, it seems clear that they don’t understand, and they haven’t asked the right questions of the right people to help them over the hump.

Say what you want about Microsoft, they tend to hire smart people. However, if their product line is any indicator, their internal culture is geared toward production, and creative energy is channeled toward increasing productivity and adding value to the bottom line in as efficient a manner as possible. Can’t land that big client? Well, if we just add a random, arbitrary feature to Word, they’ll upgrade all of their desktops and Office installs. A couple of day’s work, and we land millions of dollars. Great.

I have to believe morale at Microsoft is pretty low. I have to believe that there are a lot of employees who, when asked what they do for a living, used to say, proudly, “I work for Microsoft”, who now say “I’m a programmer”, or worse, “I work for the machine”. Both are sentiments from someone who feels like there’s no creativity left in what they do. They’re just workhorses.

If I had to pick a place to focus on within the internals of Microsoft to help them achieve happiness in 30 years, I’d say focus on the people. Make your people happy in what they do, set their imaginations free to change processes, let them be in charge of how they channel their creativity, and I think Microsoft will be completely floored by the results.

Of course, that’s idealistic, and somewhat disingenuous as well. You can’t just let people do whatever they want whenever they want, but what about a Google-like plan to give workers some designated time to work on personal projects? Maybe it wouldn’t be 20% to start, or maybe it wouldn’t work as a % of time at all, but find some way to allow workers to drive, and to work on things independent of the huge project teams and managerial hierarchies they’re chained to on a daily basis. I’m not talking about hiring more people to work in the research group, I’m talking about parallelizing the research effort and harvesting creative cycles from the entirety of the corporation instead of filtering ideas up through people you hope have some clue what a good idea is. Let the ideas bear themselves out and grow a life of their own. Set up internal communities where people can share their ideas and work together on them regardless of what cell block they’re in.

The business is about software, but the people make the software, so the business is really about the people. Channel some of that creative talent at the top of the managerial tree to figure out how to manage less and give people more freedom. I can’t imagine it wouldn’t pay off.