| Top five things Microsoft can learn from Linux |
Jul. 27, 2006
Last week, I listed the Top five things Linux can learn from Microsoft. Well, it's a two-way street: Microsoft could really stand to learn a few things from Linux, too.
Yes, I know I sound like a crackpot to some of you, since most of you are reading this on a Windows-based PC. But, consider if you will, just how late Microsoft always is with its software releases. Think about how Microsoft applications are known for having all the security of an open door. Contemplate how Linux is chewing away at the server market and starting to become a real player on the desktop. Finally, let's not forget that Apple, with its new Intel-based Macs has come back from its near-death desktop experience to starting to gain desktop popularity again.
Yes, Microsoft may be at the top of the ladder now, but there are signs of decline everywhere. Companies can, and do, fall from the top rung all the time.
Microsoft is no different.
Remember when everyone bought IBM PCs? IBM isn't even selling ThinkPads anymore. Are you too old to recall when everyone bought American-made cars? Today, General Motors and Ford keep shrinking, while Toyota and Honda keep expanding. I can also recall when Pan-American Airways was the American airline for international travel. Pan Am closed up shop in 1991.
No, if Microsoft wants to stay on top, the Evil Empire could stand to take some lessons from its most dangerous competitor -- and that's Linux.
1. KISS ("keep it simple, stupid")
Have you ever thought about the fundamental reasons why Microsoft couldn't hit a software release date even when it's as easy to hit as the broad side of a barn? I have.
Some of it is pure business tactics. Microsoft has always loved to stifle competition when someone comes up with a new idea by announcing that it too will implement this latest notion in a program to come "real soon now." The result? Customers don't buy the newly released product, but wait instead for the Microsoft version.
That's not the whole story, though. Microsoft's programs over the years have become a massive compilation of spaghetti code that defies anyone to have a good, clear view of what's really going on. In programmer circles, Microsoft is the very model of modern bloated software.
Linux, on the other hand, follows the old Unix model of using many simple, small programs, libraries, and APIs (application programming interfaces) to build more elaborate programs. The majority of Linux and its applications' source-code is relatively easy to read, understand, and debug.
That's a major reason why Linux is evolving much more quickly than Windows. For example, the long-delayed Vista's 3D graphical interface, Aero Glass, is still very much a work in progress. The Linux equivalent, Xgl, is also still under development, but you know what? It already works well, and many people are already using it.
It's also worth noting that Aero Glass requires extremely high-end graphics hardware. Xgl? I'm running it successfully on a plain-Jane PC with embedded Intel graphics.
If Microsoft really wants to make better software, the management needs to bite the bullet and not just talk about how they're rebuilding Windows and the like from the ground-up, but really dump their old ways and adopt a Linux/Unix-style programming philosophy.
2. Open Source
Speaking of philosophy, it wouldn't kill Microsoft to adopt -- really adopt, and not just release penny-ante code -- open source.
If Bill Gates can't stand the GPL -- and he can't -- there's always the BSD license. Many companies, such as Sun and Scalix, have also found it useful to modify the MPL (Mozilla Public License) to fit their needs.
After all, it's not like Microsoft is really in the business of "selling" software to users anymore. The folks from Redmond want to rent you their software. They want you to use their software from a centralized server ala Windows Live and Office Live. In short, what they really want to "sell" you is support and service.
Now, then, what's the model that the successful Linux companies use? Yes, that's right: Red Hat and Novell/SUSE make their money by offering support and service.
Somewhere back in Microsoft's dinosaur brain, there's this idea that their business model is about selling proprietary software. To quote Bill Gates, from a 2002 Government Leaders Conference in Seattle, "GPL software is like this thing called Linux, where you can never commercialize anything around it; that is, it always has to be free."
"What, never? No, never. What, NEVER? Well, hardly ever," as the captain of the good ship Pinafore might say. While Red Hat doesn't have the income of a medium-sized country the way Microsoft does, with a market cap of $4.5 billion the Raleigh NC-based Linux company is making a pretty nice profit from free software.
Why make the open-source switch? Microsoft's programming needs all the help it can get. Yes, Microsoft has a lot of top programmers, but isn't it funny how those open-source programmers keep making better software faster?
There's a lesson here. It doesn't have anything to do with the philosophy of open-source vs. free vs. proprietary software. This is purely pragmatic: Open-source development produces better general-purpose programs, faster.
You can argue that open-source doesn't work for everything. I agree.
I find it hard to imagine that many vertical software programs, such as real-estate or factory production-line programs would draw a big enough community that their development would be improved no matter whether it was open-sourced or proprietary. Or, in another example, could open-source programmers write code and be expert enough on tax laws so that they could write TurboTax? I don't think so. For mainstream software that does attract programmers however, open-source is simply the best development methodology out there.
3. Cut out the middle management
Who said, in regards to the never-ending story of Vista delays: Vista's management needs "to be fired and moved out of Microsoft today. Where's the freakin' accountability"?
Was it: A) Steven J. Vaughan-Nichols, editor of Linux-Watch; B) Mary Jo Foley, editor of Microsoft-Watch; or C) a Microsoft developer?
The answer is C.
If you read such Microsoft insider blogs as Mini Microsoft and Packet Storm, you'll find that many developers don't like the company's middle management one little bit. They've got good reasons to feel that way.
Microsoft has grown fat. Decisions spin around and around without resolution. Often the internal goal is to look good to upper management, instead of delivering quality goods; passing the buck seems to be one of the favorite games, instead of someone standing up and taking responsibility.
You could be the best programmer in the world, but if you've got to contend with management that doesn't value your work and won't give you clear and accurate guidelines, your work is still going to be crap. A lot of Microsoft's developers are ticked off. I don't blame them one little bit.
In open source, however, at the end of the day, it's all about code quality. Your work is seen by the entire world, and if it's not good enough, it won't get used. If it is great, it will be used and the other developers will respect you more.
At the end of the day, open-source is a meritocracy. Only the good do well.
You feel like you're getting the short-end of the stick by the community's leadership? In open-source, you leave and go your own way. If you have the right stuff, the other elite coders will end up following you.
I've always found it funny that people talk about open-source development as being some kind of Communist approach to software. It's the exact opposite. Heck, open-source is beyond free-market capitalism, it's programming Darwinism. Only the fit survive.
Anyone can play, anyone can write, but if you expect Linus Torvalds to accept your code into the main Linux kernel, it's got to be great code that works and plays well with the rest of Linux.
Take, for example, the Reiser4 file system. It's the fastest file system around and it's secure, to boot. It's also not in the main kernel. Why not? Because, while it is getting closer to acceptance, some core Linux developers still feel that it needs a bit more work to fit in with the main kernel.
Is the open-source way perfect? No. Far from it. Personalities always play a role in any endeavor. After all, that's why there are half-a-dozen noteworthy BSD operating systems.
But, at least the fights are out in the open. There's no hiding one person's work so that another person can get the credit. At the end of the day, program quality is far more important in open-source than it is in the office-politics dominated hell that Microsoft seems to have become.
4. Play it straight
What is .NET, anyway? As my good buddy Mary Jo Foley said recently, .NET "became a meaningless term that even Redmond's own couldn't explain concisely."
Let's also consider how Microsoft supports open-standards: it doesn't. Oh, the company will say that it does, but look at what really happens. For instance, in July Microsoft announced some support for ODF (Open Document Format). I didn't believe it. You know what? I was right. Microsoft's first cut at ODF support is awful.
There's nothing new about any of this. But, you know what? Microsoft could change all this.
If Microsoft wants to gain some good will, all it has to do is to really use correct names and support standards.
Want to make a new programming framework? Good, call it .NET and don't call anything else .NET. Want to explore software as a service, fine, call it Windows Live and Office Live and then don't spread the name out over everything else that you do.
People never like being confused.
And, as for standards, give them honest support. I know that for businesses, standards have a lot more to do with establishing market domination than they do with actually standardizing anything. After all, if your "standard" becomes "the standard," you automatically get a leg up your competition. That's why, for example, we still don't have an 802.11n WiFi standard.
Microsoft, however, doesn't really fight those kinds of battles. Microsoft's document standard, Open XML, for example, is controlled lock, stock, and barrel by Microsoft.
As for the non-Microsoft standards, these already exist. This isn't a case of trying to be first to the market; it's a case of making it easier for your users to work with the rest of the market that already uses that standard.
In the past, however, Microsoft has used standards as a way to make it look the company was playing ball, but then added a twist to make its version of the standard look better... so long as you were using all Microsoft programs.
Microsoft thinks that the result is to nail down its customers to Microsoft platforms. I don't think it does that at all. I think it merely annoys the other vendors, and it ticks off savvy customers.
I would love Microsoft's marketing research group to take a long hard look at its approach to its brand names and standards. I'll bet dollars to doughnuts they'll find that Linux's straightforward, honest approach of clearly using names and truly supporting open standards works better.
5. It's a networked world
You want to know what's the root cause of all of Microsoft's security problems? Deep in its heart, or its code anyway, Microsoft still believes that Windows PCs are standalone devices.
They're not. They haven't been since Windows for Workgroups.
Today, the entire world is connected to your PC. That means that Windows' nasty habit of enabling data and programs to work together at a low level, from DDE (dynamic data exchange) to ActiveX, has provided both the ability for Windows programs to interoperate with each other over the network, and the ability for crackers to come in and wreak havoc on Windows systems.
Yes, I know that Vista has UAP (User Account Protection), LUA (Least-Privilege User Accounts) mandatory integrity control, and a lot of other shiny new security toys. I also know that those are just padding over the same, old, fundamental problems.
This isn't just me spouting off. Symantec just pointed out the same problems.
When you get down to brass tacks, you can't fix a fundamentally flawed model. It can't be done.
What Vista's developers should have done is taken a page from Linux's playbook. In Linux and Unix, the systems were built from the ground-up with the knowledge that a system could have multiple users and that it would be connected to an untrustworthy network.
Can Linux be hacked? Sure. Anything can be. But, it's fundamentally harder in Linux. Even when a cracker does make it in, it's still difficult to do significant damage without access to the root account in Linux.
With Windows, once you're in, it's an order of magnitude easier to turn the box into a spambot, rip off every password in sight, and do everything up to and including making the PC completely unusable. Who needs this?
Someday, somehow, there's going to be a major Windows virus or rootkit assault that's going to make all the other big virus attacks look like a summer shower compared to Katrina. It's like driving over a railroad track with the warning lights flashing. Sure, 99 times out of a 100, you won't even see the train. But, on that one-hundredth time, they'll have to use a hose to clean up your remains.
Conclusion
Now, will anyone at Microsoft do any of these things? I doubt it.
Microsoft has done very, very well doing what it does. People tend to do things that work for them until they're forced to realize that their old ways aren't really good for them anymore.
If Vista falls flat on its face, or everyone decides to stick with earlier versions of Office or switch to OpenOffice instead of moving to Office 2007, maybe they'll start changing. If that virus from hell comes along, you can bet they'll make some changes. But, if Microsoft is like most businesses, one of those fundamental failures will have to happen before the company will really open up to change.
Historically, for most companies, it's too late at that point. I doubt that it will be any different for Microsoft.
Still, I would hope, at the least, that Microsoft would reform its internal management. The incredibly bad delays, even by Microsoft's low measure of success, are largely being caused by poor management.
It's one thing for me, as a cynical journalist on the outside looking in, to say what Microsoft should do, but this criticism is coming from within Microsoft. Microsoft's executives may not be listening to me, but they darn well should be listening to their own people.
-- Steven J. Vaughan-Nichols
Do you have comments on this story?
Talkback here
(Click here for further information)
|
|
|