The problem with complexity

Any IT professional knows that when you make a single change to a project and something goes wrong, finding the source of the problem and fixing it is pretty easy. However, troubleshooting becomes infinitely more difficult if you simultaneously introduce multiple changes. If something breaks, what caused the problem? Was it change number one, change number two, or change number three? Or worse, perhaps the combined changes caused some subtle interaction that created trouble. Knowing that complexity generates problems, I wonder whether Microsoft is thinking through all the implications of its .NET strategy.

The Good: Open Standards
Microsoft's .NET initiative heralds the biggest changes in the Microsoft programming model since the introduction of COM, which is now more than 8 years old. People have always criticized COM for being Windows-centric, and it wasn't built with Internet connectivity in mind. Microsoft built COM on proprietary protocols, and it was a product of the client/server era.

Built on the open standards of XML and Simple Object Access Protocol (SOAP), Microsoft .NET lays the groundwork to take the Microsoft tools into the enterprise and Internet arena. The Microsoft. NET Framework will provide both client-side and server-side application development tools that will let Microsoft's Visual Studio.NET compete on an equal footing with the likes of IBM's WebSphere and Sun Microsystems' iPlanet Forte. One particularly vital .NET feature, Web Services, will let .NET applications extend the ultra-productive component development model originally pioneered in Visual Basic (VB) to the Web. Web Services running on distributed Web servers will be able to seamlessly provide resources to other Web and desktop applications.

The Bad: From Consumer to Enterprise
The technical side of the .NET initiative holds a lot of promise for the future. However, .NET unfortunately involves more than just exciting development tools and methodologies. Microsoft has tied the .NET moniker to an array of diverse offerings: Not only does .NET incorporate the much-needed .NET Framework, but .NET also refers to Microsoft's upcoming services business. The company intends to transition its business software-licensing model into a services-and-subscription model. This new subscription model will cover a change in the way that software is licensed. In addition, this model includes new Internet-based offerings that will supposedly have users pay for authentication services by using such services as Passport.NET. And the model even includes end-user-related services such as MSN. If this confusion isn't enough, Microsoft .NET also encompasses a new user experience: This interface will automatically format information to fit handheld devices and offer new display and formatting features in the upcoming version of Microsoft Office. With this level of diversity, is it any wonder that Microsoft has had a problem explaining the .NET strategy?

The Ugly: Marketing vs. Reality
I'm a technical guy, so marketing strategies frequently amaze me. Maybe I shouldn't be surprised at Microsoft's initiative, but compiling this range of diverse offerings under a single umbrella seems sure to slow the understanding and adoption of the .NET Framework. Microsoft .NET seems to be the accumulation of simultaneous changes across the board. Including all these diverse options under a single banner isn't making Microsoft's vision for the future clearer to its enterprise customers. Microsoft should work at untangling .NET before it gets itself all tied up.