I cover Microsoft for a living, so security has been a big concern for the past, oh, several years. But security isn't the only problem that Microsoft faces. Historically, customers have asked Microsoft to build more features into its products while making them perform faster. And as Microsoft has moved more and more into corporate computing, where reliability and uptime are more important, the company has had to bake all these customer needs--security, features, performance, and reliability--into its products. It's an unenviable task.
What you might not realize, however, is that these needs are only the tip of the iceberg. As we move into the 64-bit era of personal computing, Microsoft and other software makers are facing new challenges and customer expectations. In my talks with Microsoft, other companies, and their customers, I'm seeing some interesting trends developing--some obvious, some not. But the next-generation platforms that Microsoft and its competitors are now building need to address these problems. I have no idea how they plan to make it all work.
Here's a partial list of the customer demands I'm seeing:
Compliance is probably the most common new feature request of the new millennium. Compliance takes two forms, which I'll call corporate and legal. Corporate compliance means implementing corporate rules through software. A simple example is using Active Directory (AD) to segregate user accounts according to privileges. Or maybe you want to implement a rights-management infrastructure to ensure that sensitive documents are, in fact, seen by only the intended recipients. Or, perhaps you want to prevent mobile users' machines from accessing the corporate network until they are brought into compliance with the latest versions of antivirus and antispyware definitions. In all of these cases, you're using software to comply with real-world security rules.
Legal compliance used to be purely the domain of specialized industries such as health care (e.g., Health Insurance Portability and Accountability Act--HIPAA) and banking. But with corporate scandals such as those at Enron and WorldCom making headlines, more companies are seeing a need to quickly prove that they're complying with the laws that govern their own industries. And they want to be able to fix noncompliance issues as they happen in real time.
Like compliance, predictability takes two forms, but in this case, one is related to software and the other is related to the companies that make software. Specifically, companies now expect software to behave predictably, which isn't quite the same as reliability, which suggests a level of resiliency. Instead, predictability requires that software behaves the same way each time a particular set of circumstances occurs. In other words, a complete failure is acceptable, as long as that failure happens the same way every time.
Customers also expect software makers to be predictable. That expectation has more to do with schedules than anything else. Like other companies, Microsoft used to be very secretive about its upcoming plans. But that behavior is unacceptable today, when software is instrumental to the success of virtually every industry and world government. Today, Microsoft and other enterprise software companies need to supply predictable and consistent release schedules that actually meet the needs of their customers.
There's reliability--and then there's reliability. Today's software is arguably more reliable than software from 20 years ago, although one might make a case that the complexity of today's software, coupled with constant electronic attacks, make that particular argument moot. But the reliability of even the best software would be completely unacceptable in other industries. A classic example is the automobile industry. We've all seen the jokes: "What would a car act like if it were designed by Microsoft?" But the jokes are not so much humorous as they are true. If cars were made as poorly as most software, we'd never stop suing automobile companies. Why we accept such low quality in software is a great question of our time.
But that situation is starting to change. More and more, people are requiring rock-solid, consumer-electronics-style reliability. Ask most people when their DVD player last crashed and you'll get a blank stare. Ask them the same question about their PCs, and an animated discussion will ensue. You get the idea, and so, thankfully, does Intel, Microsoft, and other companies. They're working on it.
Backward Compatibility and Interoperability
Customers want to have their cake and eat it too. They expect the latest and greatest systems to offer brand new features without dropping any previous features and while maintaining the highest possible level of backward compatibility. They also demand that products interoperate seamlessly with otherwise incompatible solutions. That's because enterprises tend to keep using products they've spent good money on. But the PC industry was built on the notion that old software is discarded after an upgrade. That attitude won't fly with big business. And neither will pretending that competitors' products don't exist. For Microsoft's corporate products, this means interoperating with Sun Microsystems, IBM, and Linux products in the enterprise. For its home products, it means the software giant needs to pick its ego off the floor and support Apple Computer's iPod. The company is getting there.
People and companies want personalized experiences--and I'm not just talking about UI silliness such as desktop color schemes and themes. Companies want the systems they use to look and act a certain way, and that way has a lot more to do with their own corporate standards than on whatever UI Microsoft or other companies happen to like this year. Increasingly, software's ability to be malleable and customizable is every bit as important as the actual function they perform. Companies aren't interested in training and retraining employees. If they can't tailor a solution for their own needs, they'll look elsewhere.
Imagine that you're working at Microsoft and your goal is to deliver all of this--and more--in a product such as Longhorn, the next major Windows version. And all these needs must be addressed as well as the platform features you want to deliver because they'll pay off for the company in the years ahead. See what a challenge that could be?
Have I missed anything? What are the trends you see developing in your own environments, and how have your computing needs changed over the past decade?