Why not Linux servers for small businesses?

I occasionally get asked why I don't use Linux more often for my clients. I've now spent about ten years as a networking consultant, six of that in the small-to-medium business space, which on the surface sounds like the ideal market for free-license software.  

This doesn't work for many reasons, which differ between desktop and server systems.  Today I'm breaking down the problems, as I see it, with Linux servers in the SMB market.

Time is money. Specifically, my time is expensive.  I work for companies that can't even close to afford to hire me full-time, and if they do have a "computer guy" on site, it's someone's nephew who kind of knows his way around a DOS prompt.  This divides the "computer work" into a few different categories:
  • High-level design and administration.  My bag.  This is fine under Linux, if not somewhat better in many cases.  It takes somewhat more time to build a Linux machine, but it probably takes less support over the lifetime of the device, so that's a wash. This is where the big savings is possible; Windows Server 2012 Standard licenses cost about the same as 7-10 hours of my time for a small business, depending on the number of employees.  Setting up a Linux network with a small number of servers takes longer than a Windows network (yes, it does), but not 7-10 hours longer per server, and you may save on support calls going forward.
  • Mid-level support. This is either done by someone moderately savvy, or by me walking someone through the steps involved.  This is a real drag under Linux, because the people I'm talking to aren't familiar with the interface, but it can be done and probably still works out better overall.
  • Day-to-day tasks. This is essentially impossible for end users to do on any version of Linux yet released without massive retraining.  In order for this to work, Linux needs to offer a desktop that is either as close as possible to Windows so that it looks familiar or is absolutely brain-dead to use. E.g., there's no real "desktop" unless you manually invoke it; you just log in and there are big buttons that say RESTART SERVER, RESTART X SERVICE, FIX PRINTERS (which clears the print queue), etc.
Application compatibility. This is big, and probably insurmountable without a giant push for more open-source software.  There are no good small business accounting packages on Linux (no, there aren't).  There are no truly solid ways of running Windows software, and if there were the vendors wouldn't support it.  Most small businesses are completely dependent on integrated accounting packages like Quickbooks or Peachtree.

That said, this is becoming less of a problem, as these services become hosted.  Most small businesses are now better off with hosted mail, and the fact that there's no Linux-based equivalent to Exchange/Outlook for mail/calendar/contacts matters much less.  These accounting systems are also going online, but as of yet the costs are prohibitive.  As they come down, more functionality can be pushed off site, and eventually most users will just use on-site servers for centralized account management and file sharing.  That's when small business Linux will become much more viable.

Packaged applications. Setting up a Windows server to host a dozen services is brain-dead simple and extremely fast.  No command-line work is necessary any more, everything is GUI- and wizard-based, and the defaults are almost always sufficient to get you 90% of the functionality you need.  Once I'm done designing a network, I can send a much more junior systems installer to handle the rest of it.  And Windows is only becoming better at this (although the UI in Server 2012 leaves something to be desired).

With Windows, one can set up services like DHCP, DNS, file sharing, centralized authentication, and even more advanced systems like VPN and a virtualization hypervisor with the push of a few buttons.  All of these things are available in Linux systems, and in many cases run better, faster, and with less intervention, but the setup goes from something essentially trivial to something requiring expert knowledge even for the most basic services.

Unfamiliarity. Linux just sounds scary to a lot of business owners (barring that small number of technophiles to whom it sounds great).  It's gotten branded as a geeks-only operating system that can't be used by mere mortals, which is a reputation that is only partly deserved, but it is partly deserved, primarily for the reasons outlined above.

None of these is insurmountable, but most Linux flavors don't even make the attempt.  Red Hat is doing very well in the enterprise space, and Ubuntu seems to be aiming at the desktop and tablet market rather than at small businesses.  There is a lot of room to compete with Microsoft in this space, in my opinion, but it can't be an afterthought.  Even a wizard-based GUI-installed flavor of Linux that sets up DHCP, DNS, and file-sharing would go a long way, although to be a real competitor it needs to have an easy-to-use counterpart to Active Directory, and that doesn't seem to be forthcoming.

All of that said, I do use Linux in my practice, but it's a relatively small part.  Linux is great when I've already got an Active Directory server in place and just want to set up a file server (although AD integration could be miles better than it is).  Linux handles certain services far better than Windows, like simple web servers, FTP servers, and firewall systems (although for the latter an appliance is usually the best choice).  And Linux is a great way to re-use dying hardware for non-critical applications.  Even with all of that, though, it's maybe one in ten clients for whom it makes sense, dollar-for-dollar, to set up a "free" OS.