Tuesday, January 2, 2007

Microsoft: Please come back

I'm a Microsoft fan. I started my professional career as a software developer in the early '90s. I was hired into a Apple Macintosh-biased company and I was one of the new programmers tasked to bring the company's very successful Mac product to Windows 3.1. It was a great time, but one of the key takeaways was that Windows OS 3.1 -- while uglier that the Mac OS 7.x -- was actually more powerful. Windows had protected memory. It had better documentation. It had more machines running it; and it was a harder problem to satisfy all the diverse vendors. It had better development tools. It had better connectivity.

Then Windows 95 came and and it was completely clear the Windows was the superior OS. The new Visual C++ editor + debugger made debugging complex problems easier than on the Mac. And the PC games were typically better (and much more common).

I then joined Microsoft as -- ironically -- a Mac developer in the mid-late 90s. I disliked working on the Mac. Originally the Mac group developed and debugged using Visual C++. Then we switched to CodeWarrior. It wasn't a total disaster, but developing on the Mac "operating environment" (as opposed to an "operating system") was always aggravating. I recall a ".plan" that John Carmack posted about the frustrations of developing on pre-Mac OS X. He said something to the effect that you had to enter a Zen-like state of tranquility to endure the frequent reboots.

Then Steve Jobs came back to Apple. He brought with him the coolest/best technology at the time -- NeXTStep (aka OpenStep) and, most importantly, his vision and eye for quality and elegance. At first I was cynical of Steve's supposed ability, but after seeing him at various Apple Conferences I saw his genius.

And then Microsoft slipped. Windows 98 wasn't bad, but integrating the browser into the OS was a poor move. To this say I still don't intermix web browsing with file browsing (and isn't it bizarre that we still don't have a completely easy was to get to documents from the Web? -- Windows should do this out of the box). Windows Millennium was actually a downgrade in some respects (it had poor performance). It seemed that it was only made to make money -- not innovations.

Thankfully Windows XP shipped. The new Luna UI was a breath of fresh air. It had the stability of NT with a nice new UI. It wasn't the best UI, but it was a refreshing change. What further impressed me was the MS was able to keep the lid on the Luna UI until the last minute.

Then MSFT stock went stagnant. At first it was fine; at like MSFT hadn't cratered like the rest of the tech stocks. Surely MSFT would bounce back. Unfortunately it wasn't clear that with Ballmer taking over a few years before that, the technical leadership that Gates had wasn't as clear. Microsoft sunk money into MSW -- which never really paid off. The rumors were that the threat was AOL taking over the "last mile" of the internet and Microsoft being squeezed, but that never came to pass. ISPs weren't where the money was. The money was in quality content + advertising. And Google was just getting big as the "cool new search engine."

Then a series of failures beset Microsoft. Hailstorm. Passport. and to an extent .Net. None of these seemed to take off as expected. The loss of Hailstorm was really bad as it affected the release of Office 2003 which was originally intended to have strong web interoperability. As a result Office 2003 was just another Office release.

Around that time Microsoft took away one of it's key employee incentive tools: stock options. True, it replaced then with Stock Awards, but they never had nearly the allure of options. What made things worse was the Google and Apple were still giving options and their employees were doing quite well. I was still proud to be a Microsoft employee, but the was the Stock Awards were "sold" to the employees as a "great thing" still leaves a bad taste in my mouth.

Also around that time it seemed that Microsoft wasn't hiring as good-quality employees. Working with other teams was more difficult; there seemed to be a lack of follow-through with groups as developers seem to become more of a commodity that could be outsourced. Thankfully my local work group didn't seem to suffer from these problems too badly, but I had associates whose work environment became much less challenging and enjoyable because of outsourced "talent."

More recently the news seems to be a bit better. Morale is on the uptick thanks to a great HR leader (Lisa) and some good products (Xbox 360, Zune, and Office 2007). Unfortunately the flagship of Microsoft -- Vista -- is underwhelming. It still truly amazed me how little progress was made in Vista given that two long cycles of Office have shipped in that time. And the developer tools are now bloatware (and MSDN is truly starting to suck -- it needs to be written and/or reviewed by veteran developers who understand what they are documenting!) And the stock still hasn't kept up with Apple, Adobe, or (needless to say) Google.

I still believe that Microsoft is a very good company to work for. They have great benefits (like 20/20 Lifestyles) and still treat their employees with respect. But I still worry. It seems like there is a lot of employee cruft still around in the company. There are certain groups that seem to need to be dissolved. Thankfully with the shakeups in the Windows org it looks like that is happening. But management can do only so much, there still need to be great employees that are unfettered by bureaucracy. Microsoft needs to pull out all the stops and hire away key Google employees into a new, freer "greenhouse-like" Microsoft without too many cooks in the kitchen (i.e. program managers). A great program manger is one that is sharp and scarce. And ultimately respectful of developers. Basically a program manger needs to be a developer first (and they must choose to be a PM),

It is still great to indirectly support Bill Gates -- the biggest philanthropist of our time -- and make great software for millions of people. But Microsoft needs to empower it's employees overall more by making them the best-paid and most responsible employees in the software business. Microsoft needs to be tough and generous at the same time.

Here's to the continued rebound of Microsoft (and MSFT) for 2007 and beyond!

Friday, December 15, 2006

The Lost Room: Great Computer Game material

Been enjoying watching the The Lost Room lately. It's a fine program whose plot driver is an alternate reality in which various sundry objects have unexpected powers. Most recently the program introduced "the scissors" as an object that can flip things at a distance.

It struck me that an appealing aspect of this show is that the multiple possibilities of each object's use and the permutations available by combining them. It reminded me of the better RPGs I've played where the world in which you're placed is not "run on rails" but is simply a set of objects to manipulate and interact with.

Such games are not guaranteed successes. Some, like Trespasser, have failed terribly. But when done well, can make great results.

Imagine a RPG world based on TLR. One of the great aspects of computer gaming is that physics can be altered at will. Such games as Armed and Dangerous and Marble Blast have show that reference frame changes (e.g. "which way is up") can be effective. More compelling is the ability to make non-Euclidian space via portal technology, as first seen in Descent and more recently in Half-Life 2.

The TLR world would initially appear "normal." However by use of different objects different aspects of the physics engine could be altered. Of course this also brings up all sorts of gameplay design problems, for example if this were a multiplayer would it make sense that a single player could flip gravity for the entire playspace? Ultimately it seems wide to limit the effective range of such objects, but doing so in a linear, connected manner would be challenging.