Monday, May 19, 2008

Redmond Rewrite Time?

I think that Microsoft - Microsoft no less - is going to rewrite.

In her 
blog All About Microsoft, Mary-Jo Foley writes about "Midori", the code name for a new microkernel-based operating system, itself the offshoot of a project called "Singularity". Singularity is the Microsoft project that studies what a future, non-Windows based operating system might look like.

Microsoft notes that the Singularity project is strictly research-oriented, with no plans for commercialization. But Foley speculates that Midori might someday find the light of day, based on the level of talent and resources Microsoft is applying to the project.

What struck me the most about her article was the mission statement excerpt she quoted from the Singularity team, itself lifted from here. I've copied some of it below, with my emphasis added:
·                                 “The Singularity project started in 2003 to re-examine the design decisions and increasingly obvious shortcomings of existing systems and software stacks. These shortcomings include: widespread security vulnerabilities; unexpected interactions among applications; failures caused by errant extensions, plug-ins, and drivers, and a perceived lack of robustness. We believe thatmany of these problems are attributable to systems that have not evolved far beyond the computer architectures and programming languages of the 1960’s and 1970’s. The computing environment of that period was very different from today…."

The bold type above reminded me greatly of something that I wrote in the forward of our RPMS Version 7 User's Guide, back in December of 2001.
·                                 "Without a major rewrite of our software, we found that could not focus on our core purpose. Our growth was limited by support issues, our sales were limited by packaging and pricing issues, and our creativity was limited by a file structure designed for the 1980s."

I was trying to describe our decision to completely change the RPMS software from the architecture that served for Versions 1 through 6 to the new design in Version 7. I don't know that I fully captured it, but it seemed in those days that every single thing we tried to add to Version 6 was next to impossible.

Over and over, some new challenge we encountered had to do with inherent system design problems. Software designs that had been strengths for the mini-based service business and more strictly limited DOS operating systems became impediments. Memory and disk space were no longer dear, and there was no longer any reason to treat them as such at the expense of usability.

This growing frustration with the then current version of RPMS led to a meeting of the minds that took place in August of 1999. Murray Nolte, a long-time programmer for RPMS, Steve Goold, our most senior technical support specialist, and I all sat down together to make a list. In crass and probably typical form, I titled the list 10 Things that Suck About RPMS. After the meeting was over, I re-titled the list 15 Things that Suck About RPMS. (Looking back through the archives, I see that some politically correct marketing-type person has subsequently revised it and added sales-specific problems to it, so that in early 2000 it was re-titled 20 Difficult Issues with the RPMS Software Product. Which is what I meant of course, but nobody else has a sense of humor.)

Anyway, it was pretty clear to me that we needed to rewrite our product. And you really never, never want to do that. See this advice, then look at this advice, and if you're still not convinced that a rewrite is a bad idea, consider this. Bottom line - nobody recommends the rewrite pathway very much.

All that being said, all the money we spent, and all the pain we (and our customers!) went through, I guess I'd have to say that I'd do it again. Just better.

Because all through 1999 and 2000 we were selling so many rep software systems that it seemed as though the sky was the limit. Then along came January 2001, and it was, as Brent famously said, "like somebody turned out the light". The rep industry was simply battered by recession, imports, the Internet, 9/11 and more. In our view, it has never recovered in terms of number of agencies. Reps overall probably still do the volume they did in the twentieth century, or in many cases more - they're just paid less, and there are fewer rep firms.

The V7 rewrite turned out to be critical for us, because today we support a still very large installed base with a very small company. That never could have happened with the previous generation of software architecture. We would have died.

Which leads me back to Microsoft, and the cause of this post. I think they're going to rewrite. Microsoft today is still the fattest of cats - marketing and sales are pretty fine. But the tech types there are not indifferent to all the things that suck about Microsoft operating systems. They want to be the coolest. They want the kids to like them better than Apple. They want the IT types to like them better than Linux. I bet they have a really long list of Difficult Issues.

So when they rewrite this time, it will be an enormously different product that comes out. And if they have the guts to release it and to push it, everybody that wants to sell for this Microsoft OS will have to rewrite their software, or at the very least hope that their cross-platform application is what it claims.

Yesterday I bought my daughter a Linux operating system laptop (about $300 from Amazon) to take to college this fall. She'll use it (I hope) for taking notes in class, E-Mail, and wireless Internet. She's taking her Mac desktop to use in the dorm. When Microsoft's new, rewritten operating system appears in five years or more, they will find a vastly different audience than exists even today. It will be very, very interesting to see whether they can move the market one more time.