Wednesday, 25 November 2009

Google Wave invites

The other day I signed up for Google Wave, and I've now been sent a load of invites. I've tried to give them away on Twitter but no-one seems to be interested right now!

I've still got 13 left as at right now, so if you'd like one, please leave your email address in the comments below and I'll send you one, subject to availability. Naturally, for your own sake I'd urge you to obscure it in some way, such as bob(AT)example(DOT)com instead of, to help stop it being harvested by spammers.

Saturday, 21 November 2009

What would you do if you ran Microsoft?

Here's a little thought experiment for you. Microsoft has been a phenomenally successful company, with a market share of nearly 90% of the desktop computer operating system market, a not insignificant chunk of the server market, near-domination of the office suite market, and fingers in many other pies, including mobile phone operating systems, the console and portable music player markets. Its founder became obscenely rich, and the company has come to represent for many people the sheer potential to make money in the computer industry.

On the other hand, the company has also been no stranger to controversy. It has been subject to a number of investigations as a result of its near-monopolicy in the operating systems market, and has a reputation for anti-competitive practices. Also, it's never been a company people like the way they like Apple or Google - mostly people are ambivalent about them. Windows has attracted a lot of criticism in the past for its vulnerability to malware when compared to other operating systems (some of which can be attributed to its greater market share, but certainly not all), and Windows Vista was widely regarded by many as a flop. Windows 7 may have marked a turnaround in the company's fortunes, but at present it's probably too early to say.

So, what if you had the chance to run it? Say Steve Ballmer threw one too many chairs across the room and had to be escorted from the building? What if they picked you to succeed him (let's ignore the slight issue of most of us not being qualified to run a company that size, I know I'm not)? What changes would you make?

Here's a few suggestions of my own:

Contribute to WINE development:

I'll probably take a LOT of criticism for this, but stick with it, I promise, there is a logical reason for this!

The WINE project could be seen as a thorn in Microsoft's side in that it's trying to deprive Microsoft of sales of Windows by allowing other platforms to run Windows applications. That's a very negative view, but it seems to be the view Microsoft hold at the moment. I've even heard rumours that Microsoft have used Windows Genuine Advantage to prevent Microsoft software working on WINE.

But, there's an alternative viewpoint, and that's this:

"Users like Microsoft's software so much that they want to run it on other operating systems"

In other words, Microsoft need not invest their own time and monies in porting their software to another platform because someone else is prepared to create software that will allow it to run on this platform. So thanks to the work of the WINE developers, Microsoft can sell its own desktop applications to users of other operating systems, at no cost! Okay, that's a VERY positive spin on it, but that doesn't make it wrong.

After all, the margins are much higher on a copy of MS Office than on a copy of Windows, yet Office is probably a simpler product to create. So it makes sense to help people who want to run Office on Linux, for example. By shutting themselves out of that market, they may be shooting themselves in the foot because they are ceding that market to competitors such as OpenOffice and StarOffice.

Any contribution need not be terribly substantial - perhaps changing a few licensing terms and providing the developers with copies of documentation that isn't normally provided to the public, thus eliminating the need for time-consuming reverse-engineering, would alone provide a massive boost to the project. More active participation, such as having Microsoft engineers contribute, bringing their knowledge to the project, would be of huge benefit.

Do more to assist the Mono project, including taking further steps to assuage the fears of free software advocates

The Mono project has never been far from controversy, ever since its inception. By reimplementing the .NET framework and the C# programming language, among others, it has allowed developers to use their existing skills with Windows for developing on other platforms. But there are a lot of concerns that Microsoft could one day launch a patent suit, preventing the use of software created using Mono.

In all honesty I don't think there's any one way that Microsoft could calm these fears, but there's plenty of scope to improve the situation. They've already done quite a lot to help (the community promise, and open-sourcing the .NET Micro Framework), and just need to continue down the same path, open-sourcing as much as they can and ensuring that developers need not worry about the threat of patent infringement hangin over their heads.

Mono allows developers to use their existing skills in Windows development to create cross-platform applications quickly and easily. By ensuring the future health and wider adoption of Mono, Microsoft would be encouraging developers to use .NET technologies instead of competing cross-platform development frameworks such as Qt.

Make heavy use of open-source software

That is bound to be another controversial one, but it's logical. Apple have shown that a hybrid approach, with some open-source code and some closed-source, can work well. It allows them to leverage the power of the open-source community and avoid reinventing the wheel.

For instance, what if Microsoft switched Internet Explorer to a Webkit base? Webkit is a mature, fast and stable open source technology, and also complies with current web standards. Doing so would greatly simplify the job of maintaining Internet Explorer, and would make web developer's jobs easier too. You can make similar arguments in favour of GCC in the form of MinGW, and I'm sure plenty of other people can suggest other software that's ripe for replacement by an open-source alternative.

Open-source software may not always have the polish of its closed-source counterparts, but there's no denying it does sterling work behind the scenes. By leveraging its strengths, Microsoft could lighten their own workload while also contributing to the open-source community. Bugs and vulnerabilites would be fixed quicker, and we'd all get better quality software.

So, that's my suggestions. What about you? If you took control of Microsoft, what changes would you make? Creative and inventive answers are great, but nothing too outlandish - remember, you would still be accountable to the board, so things like "give the shareholders their money back" would be turned down flat!