It’s no secret that I’ve had my doubts about Microsoft in the past. But since becoming in charge of everything IT at the small business I helped start a couple of years ago, you could say that I’ve had something of a change of heart. At home and with any freelance work I do, it’s still all Apple/Mac OS, open source, and web-based applications, all the time – which I might talk about in a separate blog post sometime soon. But at work, we’re using practically all Microsoft based systems and software. And you know, it’s actually not that bad. Let me explain.
It’s All About the Platform
At its core, what Microsoft offers is a stable, modern development platform that companies can build on in order to solve their business problems. Sure, Windows is the familiar face that employees interact with on a daily basis, but it’s the core technologies and specialized software that really add business value. Here are a few that I consider to be of high importance.
The Windows Server line of operating system editions lays the foundation for almost every other Microsoft technology aimed at businesses. Windows Server 2008 – the latest version – is mature, stable, and secure, and shares very little with the Vista desktop OS besides the “Windows” brand name.
There are definitely cases where applications should be run on UNIX or Linux servers for maximum uptime and performance, but in the vast majority of situations Windows Server will be “good enough” – especially for smaller businesses who don’t have full-time system administrators or when applications can afford occasional downtime to apply security patches and updates. There are trade-offs to running on the Windows Server architecture, but Microsoft has been surprisingly responsive in addressing the weak areas, making Server more “Linux-ish” than ever. You can install Server Core.aspx) to get a bare-bones, command line-only version of Windows. You can use PowerShell to create powerful command line scripts to automate many administration tasks. You can also now use Hyper-V to virtualize and consolidate multiple servers on a single physical server machine, much like VMware’s ESX product.
My point is, Microsoft has removed most of the objections and points of criticism previously leveled against Windows Server by turning it into a first-class server operating system that is extremely capable and easy to manage.
The Office suite of projects is Microsoft’s other cash cow (Windows being the other) that is used by almost every business and organization in the U.S. You’re probably very familiar with the Office family of Word, Excel, Outlook, PowerPoint (unfortunately), and some of the others (Access, Publisher, Project, Visio). These are the applications that many knowledge works spend their entire day working in.
Side note: Microsoft OneNote is one of the coolest and most underrated members of the Office family. I highly recommend taking a look at it if you haven’t already.
provides a centralized database for managing a Windows-based network and all its components – servers, workstations, users, etc. Much of Microsoft’s software, along with many third party “enterprise” applications, integrate with Active Directory to allow employees to use a single username and password to gain access to the data they need.
SharePoint has quietly become one of Microsoft’s most important products behind the business firewall. If you’re not familiar with it, it’s a really easy way for employees to share documents and data with each other while maintaining something of a structure. We’re using this in-house for a few specific purposes, and I can confirm that it’s a quick and inexpensive way to get something off the ground.
Exchange Server has become the de facto communication/messaging for a very large percentage of businesses. In traditional Microsoft “embrace and extend” fashion, Exchange offers lots of useful features above and beyond the published standards, but that only work within the Microsoft ecosystem.
SQL Server is Microsoft’s SQL database software that serves as the data back-end for many of company’s business products. We’ve built our own specialized application on top of SQL Server, so I use it on a daily basis and can confirm that it truly kicks ass. It may not be free like MySQL, but it’s way less expensive than Oracle. Besides, it’s practically a necessity if you’ve decided to live “The Microsoft Way”.
The .NET Framework
The .NET Framework is one of those things that is invisible to the average person but that’s a huge win for developers. I’m not even sure of everything that falls under the .NET family of technologies, but I know there’s a ton there, and it’s all for the purpose of helping programmers solve problems faster.
For example, take the problem of supporting computers or devices that require access to remote data, but that do not have reliable internet connections. Building a customized solution to this issue would be extremely complicated, time consuming, and expensive. With Sync Services for ADO.NET (in the latest version of the .NET Framework), Microsoft solved the problem, hiding most of the complexity and giving developers a consistent way of handling this.
There are Trade Offs
You make several trade offs when you decide to run your business on Microsoft technologies. The first is money for time. Microsoft products aren’t the most expensive out there, but they’re definitely not free like Linux and the other open source software available for download. But, that money gets you a set of tools that are well documented and well supported – a far cry from even some of the most popular open source projects.
Another obvious trade off is openness for convenience and features. Microsoft has been getting better about supporting open protocols and standards, but the risk of lock-in is still there. My gut says that this is going to become less and less of an issue over time though, as Microsoft opens up to remain competitive with everyone else.
The Pragmatic Choice for Most Businesses
From my experience, I most web-based start-ups choose to build on top of open source software because:
- It’s cheap and/or free
- They have more time than money
In our case, we didn’t have to bootstrap the company and we knew that we wanted to keep our core technologies in-house rather than outsourcing them to a third party. This, along with the fact that our key vendors only make their products for Windows, naturally lead us to the Microsoft ecosystem.
In the last two years we’ve built our own Smart Client application for our customers because they all use Windows and a lot of them live in rural areas where fast and reliable internet connections are just a fantasy. Building our program as a web app would certainly have been faster and cheaper for us, but it wouldn’t have been a good solution for our customers, and that’s really what’s most important.
Don’t get me wrong – it’s not all perfect over in Windows Land, but it’s a lot better than I imagined just a few short years ago. Microsoft truly is all about Developers, Developers, Developers, and it shows with things like MSDN, Visual Studio, and their developer blogs.
Soon, look for another blog post, where I take the exact opposite point of view from the perspective of someone doing freelance work and dabbling in a start-up.