We, the authors, have over a decade's experience in running GNU/Linux in a corporate setting and we would like to share that with you, to make your journey easier. However, first, why would you want to run GNU/Linux at work rather than the operating system supplied by your employer? We don't know, but here are some of our reasons for running it:
It is faster - Generally, GNU/Linux is faster on the same hardware than other operating systems. Moreover, there is a quirk in corporate settings which makes this even more true: security software. You can probably get away with not installing any under GNU/Linux (because it's not available and GNU/Linux is less susceptible to security issues), your machine will be 2x as fast.
It is the operating system running in production. You will have fewer cases of "but it works on my machine!?".
It is a programmer's operating system, written by programmers and packed with tools for programmers. A couple of relevant examples: it has a lot of tools to work with text (like source code). You have niceties like command prompts which show the status of your code repository. And, related to the previous point, things like Docker run natively on it.
Not to sugar-coat it: you certainly will need support for this. You are either technical yourself (including some understanding of hardware architecture and networking) or you have colleagues who can help you with those things. GNU/Linux (and the software available for it) have support for a lot of things, but sometimes you need to know the specific technical terms to search for, to discover it.
On the bright side: finding solutions for problems is much easier with GNU/Linux than with other operating systems. Most of the error messages are text (rather than a dialog box), which can be copy-pasted into a search engine to find a solution. There are also a lot of free support resources available.
This is about the machine (laptop/desktop) you use at work. It's the company's property. Don't try to "sneak it in behind IT's back". Check with them if they have security policies (such as the hard-drive needing to be encrypted).
In our experience, using GNU/Linux has never been a problem for IT if two things were respected:
Any problem (as in "I can't print") is our problem unless you can reproduce it under a supported operating system
IT still has access to the machine (for example they have an account under GNU/Linux with sudo rights, they can install their monitoring/inventory solution, etc)
Using a widely-used distribution like Ubuntu or Fedora will make it much easier to find solutions to problems. Sidenote: problems under GNU/Linux are much easier to describe, precisely because you can just copy-paste the error log (and conversely - when you're searching - you can just search for the text, for the error log) than other operating systems.
Also, the software you might want to use is much more likely to be available for these distributions.
So pick a popular distribution. If you need to decide between multiple ones (like Ubuntu or Fedora): pick the one which you'll find the easiest to get support for (for example, if your colleagues are already using Ubuntu, pick that).
Related to this: prefer the newest release as opposed to the "stable" one. Stability is great once you confirmed that everything you need works. However, you probably will need to interact with a lot of proprietary solutions which are a moving target for the free-software implementations and you need a newer version of them to avoid problems.
In addition, try to resist customizing your GNU/Linux as much as possible - at least in the beginning. Running only the software, which the distribution came with, will make it easier for others to help out.
While almost everything will work just fine under GNU/Linux, there will always be that 0.01% which is just too hard to get working (for example changing your Active Domain password). For such cases, you should keep your original OS (be it Windows or Mac) installed and install GNU/Linux in a "dual-boot" fashion (that is you can choose during each power-on which one to use). This is also useful for troubleshooting (for example if a printer is not working you can just boot the original OS, try it from there and if it still isn't working - contact IT).
Some specific tips:
You can minimize the space used by the Windows partition by deactivating the swap and hibernate files (this means that you will not be able to hibernate when running Windows, but, presumably, you'll not be using it much). For some more tips on freeing up space (and being able to allocate more to the GNU/Linux partition) see
Another reason to keep Mac OS on the laptop: Macs don't have a "BIOS" in the traditional sense - you need to boot Mac OS to configure things that you usually would from the BIOS on PCs (like "what happens when I close the lid?" or "disable the startup sound") - hint: after installing GNU/Linux on a Mac you need to hold down "Alt" during boot to launch Mac OS
If your Mac partition is encrypted (which is recommended), the Ubuntu installer can't resize it. You can still resize it from Mac OS using the "Disk Utility"
A final tip for not making an exclusive choice: for most GNU/Linux distributions there are live CD / DVD / USB versions available. You can try them at zero risk and see how well you can do your daily tasks (ie. connect to the network, browse the web, access the file shares, print, etc) in your corporate network even before installing it to your hard-drive.
While running GNU/Linux will almost certainly make you more productive (especially if you're doing development) in the long-run, be aware that, at the beginning, your productivity will decrease and you'll often find yourself frustrated and saying "I just want to do X. Why can't I simply do X?"
As such, we do not recommend switching to GNU/Linux when there are extra pressures on you (like delivering a big feature).
When switching over, the ideal situation is that the same software should be available for GNU/Linux. This is becoming more common (and for web applications - like JIRA, Pivotal, Confluence - this is the case by default). However, if this is not the case, then you have a couple of options. Sometimes the alternative solution is preferable even when an "official" version is available (see the Cisco VPN/Skype examples below):
See if there is a "web" version of the software (for example Cisco WebEx has this option - even though it's not well advertised)
See if the format/protocol used by the application has an alternative implementation. For example:
Email is usually done through SMTP/POP3/IMAP, so most email clients are interchangeable.
Some companies use Exchange together with its proprietary protocol, but there are free-software re-implementations for this also. Or you can use the web interface (OWA - Outlook Web Access).
The files created by the Microsoft Office suite of programs can be read/written by LibreOffice.
Use the program from a different device. For example, if you're issued a virtual RSA token, you can install the RSA token app on your smartphone and use it that way (although this is not necessary at all in fact, since stoken free-software reimplementation works great). You could also ask to be issued a physical token. Another example would be using Skype on the phone/tablet or calling in from a physical phone to the conference call. Another reason to not use the official Skype client on GNU/Linux is that (at least as of 2016) it prevents other participants from using screen sharing.
See if there are alternative solutions which work better (for example the Google Apps suite - including Google Hangouts - work great with GNU/Linux). However, it's hard to convince a big company to adopt a new solution. On the upside, more people are using Macs which increases the demand for cross-platform solutions
For Microsoft Windows software you can try using Wine
This is it for now and good luck with running GNU/Linux 100% of the time. In addition, if you run into speed bumps, please document it (and hopefully any solutions you found) publicly, so that the next person will have it easier.
by Mircea Vădan
by Iulia Bicu
by Gelu Vac
by Adrian Vîntu