Guest Opinion

Is Microsoft Enterprise-Ready?

Microsoft has a reputation for tools that don't meet quality and security requirements needed to build enterprise-ready apps. Despite recent successes, is this reputation still deserved?

No one doubts that Microsoft software is ubiquitous within enterprises. Windows, Office, and Outlook are present throughout. Even on the server side, Exchange is more often than not the mail server of choice, and IIS powers many intranets and even some Web sites.

But is the platform ready for mission-critical applications with unique business needs? That has always been the knock against Microsoft—that its tools, languages, and architectures are simply not up to the quality and security requirements needed to build the types of applications on which large organizations can depend.

Microsoft has been attempting to overcome this reputation for years, and with some success. Managed code through the .NET Framework was the first concrete result of this effort, and Visual Studio 2005 and SQL Server 2005 are the latest. And Indigo looks like it will be a compelling way to build architectures employing Web services.

So is Microsoft's reputation still deserved? Yes, although asking the question in another way results in a slightly different answer. Has Microsoft internalized the commitment to building an enterprise-quality platform and tools? I'm much less sure of this answer, because internalization requires some insight into the Microsoft culture that I don't possess. However, external signs indicate the company still has some work to do. The shortcomings are less technical than business-oriented.

Microsoft's visible and consistent lack of honesty in its product and roadmap pronouncements must change. Despite the fact that it seeks a fundamental change in its market perception from scrappy competitor to trusted partner, Microsoft still uses these pronouncements as marketing tools rather than essential corporate planning data for its customers. Worse, when announced and published roadmap and product release dates slip, Microsoft spokespeople disingenuously deny that any slip occurred.

Another, less visible area of concern is the perception that Microsoft development teams practice barely controlled chaos in their own processes. This perception began when tales of marathon coding and debugging sessions and rapid employee burnout were published. These tales might have been badges of honor at one point in the company's growth, but they now do nothing to inspire confidence for customers. In fact, such tales today might be inaccurate, but Microsoft does nothing to correct the perception. If Microsoft development teams use state-of-the-art software engineering processes and tools, measure and manage risk, and adhere to their schedules, the company needs to make this known and make these processes and tools widely available as best practices. If, as seems apparent, teams fall short of this standard, then their practices must be elevated.

When schedules are extended by months or years in order to "get it right," it means that those on the technology side got it wrong to begin with. Yet seemingly, little is done to correct the problem, because the story is the same for each major release.

Microsoft needs to really get it right before becoming that trusted partner to enterprises. Schedules cannot continue to be driven by overly optimistic estimates that have become the butt of industry jokes. Herculean programming efforts frighten customers into thinking that similar efforts will be required of them.

Trust is built on making a commitment, standing by that commitment, and doing whatever is necessary to fulfill that commitment. And if you do not meet that commitment, you do not prevaricate; you stand up and say "We blew it," and you present a plan to fix it.

I have no doubt that Microsoft can get it right. The company has shown an enormous amount of tenacity and the ability to learn from its mistakes. But in order to become worthy of the trust it is seeking, Microsoft must turn its focus away from the technology and work on its software engineering practices and culture.

It's important that Microsoft define and publicize the best practices used today by its development teams and cite the research and real-life data that backs up those practices, or admit that it can make improvements and define a specific plan of action. These actions won't make Microsoft applications ready overnight, but they can be the first steps on the road to gaining the trust of enterprise IT.

About the Author

Peter Varhol is the executive editor, reviews of Redmond magazine and has more than 20 years of experience as a software developer, software product manager and technology writer. He has graduate degrees in computer science and mathematics, and has taught both subjects at the university level.

comments powered by Disqus

Featured

  • Compare New GitHub Copilot Free Plan for Visual Studio/VS Code to Paid Plans

    The free plan restricts the number of completions, chat requests and access to AI models, being suitable for occasional users and small projects.

  • Diving Deep into .NET MAUI

    Ever since someone figured out that fiddling bits results in source code, developers have sought one codebase for all types of apps on all platforms, with Microsoft's latest attempt to further that effort being .NET MAUI.

  • Copilot AI Boosts Abound in New VS Code v1.96

    Microsoft improved on its new "Copilot Edit" functionality in the latest release of Visual Studio Code, v1.96, its open-source based code editor that has become the most popular in the world according to many surveys.

  • AdaBoost Regression Using C#

    Dr. James McCaffrey from Microsoft Research presents a complete end-to-end demonstration of the AdaBoost.R2 algorithm for regression problems (where the goal is to predict a single numeric value). The implementation follows the original source research paper closely, so you can use it as a guide for customization for specific scenarios.

  • Versioning and Documenting ASP.NET Core Services

    Building an API with ASP.NET Core is only half the job. If your API is going to live more than one release cycle, you're going to need to version it. If you have other people building clients for it, you're going to need to document it.

Subscribe on YouTube