I know it is really premature to even start discussing this, but I would like to ask the question: “Will Longhorn still be Longhorn”? Although the official announcement isn't slated until later today, there has already been some musings about the subject over at Microsoft Watch. How do I feel about this? Mostly, I feel a great sadness (and I remind you: I know this is premature).
[DrasticallyPrematureDiscussion]
It is starting to look like Longhorn will become “Windows XP version 2“ rather than the revolutionary OS all of us were hoping for. While this possibility of course disappoints me, I think there is perhaps a deeper issue to be discovered here. From what has been said, the majority of cuts expected in Longhorn is for the purpose of getting the product out the door sooner. While I would like to ask the question “Does Microsoft really need to push Longhorn out the door quicker to satisfy it's customers?”, I think there is a better question to ask. In order for Microsoft to keep its customers happy, does a new operating system need to be released every five years?
The Apparent Problem
The apparent problem to me is that it appears that Microsoft does feel that it needs to release a new operating system every couple of years. It is no secret that end users don't like change. How much does an end sure appreciate having to upgrade their operating system every five years? Not much, in my opinion. Well, if we are in the software industry “to best satisfy our customers needs”, then why is our approach to product time-lines so contrary to what our customers desires are? Even as a developer, we have to be adapting new technology every couple of years in order to stay “on top of our game.“ To me, this is a problem with the industry as a whole.
The end user wants their computer to be like an appliance, or perhaps like a car. When you buy a car, you fully expect that car to last a long time. You do not expect to be forced to buy a new car every 7 years in order for it be fixed by mechanics. What if your car broke down but the mechanic couldn't fix it because it was “no longer supported“. I don't know about you, but I would be rightfully upset. However, I will admit this analogy breaks down when comparing an operating system to a car because of the level of investment required in a car compared to an operating system. When you buy an oven, you expect that oven to not only work for a long time, but for it to be supported so that you can get it fixed for a long time. While an oven is still cheaper than a car, the analogy still breaks down when comparing directly to an operating system. However, what if you count the amount of investment required for buying applications and the continued support of those applications? The analogy becomes a lot closer. As much as I'm excited about all the new innovations in the computer industry as a developer (I *am* a geek after all), as a consumer I will admit that I am frustrated from time to time.
As much as we claim to be in a “customer-driven“ industry, we are not. The customers do not drive the computer industry, the computer industry drives the customers. We force customers into a never-ending upgrade cycle where if you want to remain “productive“, you must upgrade, upgrade, upgrade. I believe that if you compare the lifetime of applications developed in 1960 to the lifetime of applications developed today, you will find that the lifetime of applications developed today is much shorter than their 1960 counterparts. I highly doubt that I will find a classic ASP site still running and being supported in 40 years. Why? Because it will have been upgraded to the “latest technology“ 36 years prior to that date.
Now, one can argue that this development of shorter lifetimes was necessary with the improvements in technology that have taken place. The question is when we will get to the point that computers are productive enough in order to remain stable for a set length of time. However, are remaining stable and continuing innovation necessarily mutually exclusive areas? No, not at all. Is there a potential solution that we could see start today to combat this problem. Absolutely.
The Possible Solution
I think the possible solution to the above problem can been seen with the release of SP2 for Windows XP. If you ask me, SP2 is a major improvement to the core Windows XP operating system. If SP2 can improve Windows XP as much as it did, what is preventing future service packs from doing the same thing? I would like to think that Windows XP is engineered well enough to the point that continued service pack development can take place to continue evolving Windows XP as an operating system. However, to continue service pack development, should we stop development on Longhorn? Not at all.
Let me ask this: Why must the two be mutually exclusive? I can see a world in which Microsoft devotes many resources to continued service pack development and continues to release those service packs for free to the world. I can't even start to imagine how happy end users would be if they could keep an operating system running for even 10 years and have it continually improve for them without requiring them to drop any more money or time and effort to upgrade applications. While there is naturally a limit to how much improvement can take place, I don't think that limit is anywhere close to being reached with Windows XP. If you need graphical improvements to the OS, one need only look at the 3rd party skinning applications available to realize that there still lies great potential within Windows XP.
This doesn't mean that development on a new operating system should stop though. Only so-many improvements can be made to an operating system until its expandability limits are reached. At that point in time, the underlying internals of the operating system need to be re-written in order for more progress to be made. So the real solution in my mind is to have two development houses. One house is dedicated to the continuing improvement and maintenance of the current operating system. The other house is dedicated to the development of the "next" operating system. In this case, one house would be dedicated to the continued development of service packs for Windows XP, and the other house would be responsible for the development of Longhorn.
Don't cut features out of Longhorn. Continue developing Longhorn until your “nirvana“ is reached. By cutting so many features out of Longhorn, you are only hurting the end customer. The end user doesn't care if Longhorn arrives 2-3 years later. All they care about is if their applications continue to run today. Who are the ones that really care about Longhorn being released earlier? Us developers, and the company actually developing the operating system. I will continue to stand by my belief that the end user doesn't care about when Longhorn comes. As proof, how many customers are still using Windows 98, huh?
Of course, this does have potential to hurt the bottom line in any company that takes this approach. The key is for diversification. And I strongly believe that Microsoft is diversified enough to start down this road. After all, IBM is still around isn't it? Am I the only one who feels this way? Perhaps. Perhaps not.
[/DrasticallyPrematureDiscussion]
I don't want to come off like I'm not seeing the big picture here though. While I put a big negative spin on the news, there is a very bright silver lining to this cloud. The biggest benefit that I see to what Microsoft is doing is that the Longhorn technologies will not be exclusive to Longhorn. They will all be available on Windows XP, I believe. To me, this is a good situation. In the context of Microsoft's current practices, I think this is a very wise decision. However, my thoughts above question whether the current context Microsoft has is the correct context to be in in the first place. And for that reason, I still question the value behind the decisions made because of the reasons that they were made (especially when I feel there is a better decision that will benefit both Microsoft and its customers). The glaring thing to me though is that Bill Gates is the millionaire and I'm just a lonely developer without hardly any monetary worth at all. Perhaps I'm the one who is off-base here?
What do all of you think?