What is preventing you from deploying desktop Linux in your environment?

First off, this has been done. Seriously, the City of Largo in Florida has been running on Linux servers for over 6+ years, supporting hundreds of city employees. You can read about their challenges (and successes!) at the City of Largo work blog anytime. This is hardly a new topic, either. You can even buy a book on this subject and read up on what to expect (keep in mind that the book is several years old, and many references are probably out-of-date). It can also be used in a small business environment, as witnessed by the Ernie Ball Co., which switched to linux years ago and hasn't looked back since.

Addressing each question:

  • Software (lack thereof, incompatibility)

More often than not, there is some specific package that has been "grandfathered" into the system in some pseudo-critical role. At my own work, I can think of at least 2 Microsoft Access databases that would require a complete re-write in a different language with a different set of conditions.

As for "lack thereof", that's a function of how deep a niche role some software package will play...read my responses below...

  • User comfort

Never underestimate this. You would not believe the number of end-users that will throw a fit to actually keep the environment they have, no matter how crufty, old, poorly designed, frustrating, or labor-intensive it is. Seriously. In fact, the longer the end-user becomes accustomed to the interface, the more resistance they will have to learning a new one, because there is a substantial existing investment of their own time in the interface they already know.

  • Support tools (lack thereof or lack of knowledge in supporting Linux)

I don't think this is an issue. The environment has been around for so long, and so many admins have tried this on their own time, that there is little (if any) lack of qualified applicants for both junior and senior sysadmin positions. Saying there is a lack of support tools for Linux is roughly akin to saying "I can't Google an answer". There were - and still are - tools from years ago.

  • Licensing agreement lock in (hands are tied because you've agreed to a multi-year deal with another OS vendor)

This is probably a function of the size of an organization and the amount of software that they purchase. In those cases where there are few users, per-license or small batches of licenses are purchased on an as-needed basis. In much larger organizations, it's very tempting to sign a "faustian bargain" to get a 3-year contract covering thousands of desktops at a steeply discounted rate.

  • Some combination of all of the above?

There are many synergies involved (please do not stone me to death for using that overhyped buzzword...)

If you were to migrate an organization - of any size - to a pure-play Linux/BSD/OS X platform, I think you would have to cover the following aspects to make a successful transition:

  1. External Cultural Inertia (Management). Management has been signing over thousands of dollars each year to "buy" something that has tangible value. Convincing them that they are getting the same value with something that comes free is a hard pitch. There is a definite psychological link between the sense you've purchased something, and that it has some intrinsic value. This of course has been fully exploited by the industry for decades and as anyone who shops around knows, "buyer beware".

  2. External Cultural Inertia (End-Users). Users are a big bundle of mystery waiting to become an explosive backlash of "where's my files", "I can't click the link", "this used to work", "my printer settings didn't come back" (true OpenOffice story from the 1.x days), and my all-time favorite, "but the button in the toolbar used to be over there, now it's here? I can never find anything!" So many of them have settled into a culture of "don't know, don't care, don't want to go there" that explaining that the summation button in OpenOffice is the same Excel symbol in a different location is just not enough. They are doing things by muscle-memory and single-step handwritten checklists, and moving something just one pixel too far is asking them to change their world. If your organization is "young", or you have fluid staffing requirements, you can probably get away from this headache. If it's established, with employees that have been around for years (or decades!) then you're going to encounter fierce resistance.

  3. Internal Cultural Inertia. Your existing Windows sysadmins have been weened on multiple-inheritance access control lists, multiple GUI paths leading to the same result, and a habituation to working with "opaque" software that consists of "black box" lumps of code. Moving them into a culture where the permissions hierarchy is significantly flattened, there are multiple ways to arrive at a result from a (GASP! the horror!) command line, and the software is so transparent that they themselves are tempted to modify it, will be a huge culture shock. Some old-timers may actually be in disbelief that it is legal to actually copy the same software they are installing on their servers and take it home (yes, it's true, you can really do that, no really, it's ok, the BSA won't care...)

  4. Exchange. Getting off of Exchange is roughly akin to getting off of crack cocaine. There are so many organizations that are so inured, so hopelessly dependent on the system, that they will fight to protect it. I say this with all sincerity. If you can at least replace the calendaring/free-busy/shared contacts portion of this, then you'll have fought only half of your battle. If you are using shared folders, custom forms, or other mucky-muck, you're pretty much in deep. Email, no matter how old it gets, still remains one of the silent killer apps of the internet - why else would you interface just about everything else - including websites - to such an archaic technology? Fuse this with irreplaceable contact information, and a TODO list about a mile long that is critical to keeping your job, and you suddenly realize that Exchange has your organization tightly held by the (censored-to-avoid-offensive-posting-votes).

  5. Microsoft Access. This little nugget will cause no end of heart-ache. Excel, Word, PowerPoint, those are down pat, but Access...Access is the fly trap of file-based database containers. There are a handful of tools to get the data out, but the key value of Access is not so much its use as a (abet crummy) database container, but rather, the forms, code, and reporting that come with it. You'll need to replace it with something that can provide forms, code, and reporting in a coherent package. And there aren't many of those packages around.

  6. ActiveX. This is a ticking time bomb. Any internally-deployed site within a large organization that uses ActiveX has pretty much fused themselves to a Windows platform, for better or worse. By the way, ActiveX often implies that you'll also contend with...

  7. Internet Explorer. For anyone who remembers the bad old days (version 6 and prior), enough said.

  8. Proprietary one-off software packages. If you have one of these, all bets are off. You know these when you see them, those packages that no-one else has, you paid a bundle of money to a niche vendor with no competitors, the software requires specific (outdated) versions of additional libraries, it is typically poorly written, crashes often, and the end-users are delighted that they can now click a button and it makes magic reports...

In the end, it's not about "superior technology" or "return on investment". It's about people and their inability to deal with change.


Well I'll say why I wouldn't deploy a linux desktop fleet above Microsofts products, as of 2009 anyway:

  • Management on a large scale - nothing even close to Group Policy or Active Directory for Linux.

  • Usability - most users will be completely lost on a *nix system. Re-training several thousand people just to use an OS is not a trivial or cheap exercise without some proof of massive benefits.

  • Application support. Many systems in the corporate world are written for Windows. While some of the newer ones have had the foresight to develop in Java and therefore be cross-platform, there are many that havent.

In summary? Total Cost of Ownership. An often bandied about term but it's true. If an XP license costs $300, that may only be a days wage for a person. If that person needs a days training to learn a different OS, and then a week of impaired productivity as they get used to it, XP has already paid for itself a couple of times over.

Most people are also familiar with Outlook. An Exchange standard license costs around $700. Divide that among the number of users and, again, it pays for itself in preference to training users to use another tool.

Most end users just want to use the tools they know to do their job. Giving them the tools they already know how to use, even if they cost, is almost always going to be cheaper than re-training them to use "free" products.


What is preventing us from deploying Linux desktops in our company?

We're all using Macs already ;-).

I do have a somewhat unique perspective. In the four companies I've worked at in the last 10 years of doing professional system administration (including IBM Global Services), I have had the option of using a Linux workstation, and did. Not to say this wasn't without struggles.

Company One

First company out of college was a Unix/Linux backup software company. The CEO mandated that since we develop software for Linux, everyone including nontechnical people had to use Linux as their desktop. He didn't exclude himself either, and he was very much not technical. Now this was in 1999-2000 to give a frame of reference. Desktop Linux was not sophisticated. GNOME was a very immature environment, and KDE wasn't much better. Hardware support in Linux itself wasn't near as good as it is now.

Challenges-

  • Streaming video. While rare, some of the stuff the marketing team worked with was Real Networks, and RealPlayer was spotty. I spent at least 2-3 hours a week re-explaining how to do things on Linux to the marketing team.
  • Printing. Ugh. I hate printing on Linux. Its not actually a lot better now than it was then, except maybe the tools are better. Printers suck. Oh and thats not Linux specific.
  • Office applications. Microsoft Office was of course the primary app used in the business world. We used StarOffice, and I hated it. Probably due to printing problems.

Company Two

This was IBM! I worked as a system administrator in eBusiness, and since late 2000, IBM has maintained an internal Linux deployment stack, which installed all the IBM required software like the labor claiming tool, the printing tool (heh!), Lotus Notes (w/ WINE), Lotus Sametime, and the VPN software. This 'distribution' went through many iterations and got really good by the time I left IBM in 2007. It was rough but usable for several years, but with Lotus Notes 8 and Lotus Sametime having "native" Linux clients (read: Java-based), it was actually about as usable as Windows (which I don't consider usable :-)).

Challenges-

  • Printing again. Even though IBM has sophisticated printers and tools for configuring them, printing still sucks.
  • Lotus Notes. This was primarily an issue with Notes itself being a heaping pile of garbage :). When they went from being an unofficial (but developed internally) WINE stack to a Java client, this got a lot better. I still hate Notes though.
  • Lotus Sametime. The native Sametime client on Windows was (is?) horrid. There were several internal projects including a perl/gtk program, a couple trillian plugins, and a GAIM/Pidgin plugin. Eventually they went with a somewhat decent, usable client with 7.5.
  • Office software. This is primarily IBM hanging onto Lotus products for dear life. There were no open office plugins to convert, at least until the open office integration into Notes 8.
  • IE only CRM. One of the ticketing tools we had to use was a Siebel CRM which didn't work with any browser except IE6. Further, if a certain critical patch were installed (which was auto installed by the IBM patch manager, it wouldn't run. Full of fail and lose.
  • Unique IBM challenges. Such as the CRM issue above, but others as well, too numerous to iterate here :-).

Company Three

I worked for a security training company that uses Linux for all the company infrastructure and backend support. All the admin staff used Linux either as primary workstation OS, or secondary workstation. Adoption of Linux for non-sysadmin staff probably resembles the challenges faced by other companies.

Challenges-

  • Prevalance of Outlook and shared calendaring, but actually a lack of it! Because the company is security focused, they are "we must own and control everything" focused. We didn't have an Exchange server, shared calendaring in effect really just didn't exist. During the infrastructure upgrade I was hired on mainly to work on, we installed Zimbra, and while the user migration from the old email to Zimbra took place after I left, I heard it was a smashing success and the shared calendaring in Zimbra was very popular feature indeed.
  • Office software. Particularly PowerPoint presentations. All the training materials were written by the courseware authors primarily in PowerPoint. There really isn't an equal on Linux. Nuff said.
  • User training. Most people were used to Windows from their home systems and other positions, so retraining 100 people would have been cost prohibitive.

Company Four

Ah, the company I'm at now. We all use Macs. We use Google Apps, so no shared calendaring woes there, no client access license costs (though probably a per-user cost, which is much less than Exchange!). We thrive on open source software (we're an open source company!), and of course for those that need it, Microsoft Office (or iWork) is available anyway. I'm not one of those people, so it's wonderful being 100% Microsoft-free for work purposes (I still use it for gaming!).

I've noticed as I get more exposure to the startup world, many more startups are using Macbooks + Google Apps == the win. Linux servers are usually a cloud node running the web site, code is hosted on GitHub (public or private repositories), DNS is outsourced.

End Thoughts

So while many people point out the "more obivous" reasons why Windows stays its ground and Linux is not as widely deployed, there are fewer challenges to switching now than there have been. Many of the arguments against Linux are unfounded to those in the know anyway, TCO being the biggest argument, since thats what Microsoft spends billions of dollars of marketing FUD spreading. TCO is a subjective answer to an issue of diverse topic, IMO, because while models can predict costs, they don't always hit the exact problem space of every company.


Well, because none of software used in my office has the linux version. So I guess software incompatibility is no. 1 reason why we can't adopt Linux in office.