Creating The Perfect Software Development Environment: Day 01

I've been using a virtualized development environment for a over a decade, eliminating the "works on my machine" type of errors, speeding up the onboarding process for new team members and providing quick recovery when an environment gets "borked". Ubuntu 18.04 LTS, code named Bionic Beaver, is due out in April 2018 and I want to create a new envrionment based on it. Unlike the other times I've created the environment, I'll take the time to document the process, hopefully helping others to create their own boxes.

At the end of the process we will have a Vagrant box that provides us with a Xubuntu environment suitable for development in a variety of programming languages. We'll also provide a mechansim to apply some last-minute customizations that get applied the first time you launch a new box, allowing the box to be shared between collegues without having to install everyone's favorite tool. The tools I like to install include:

There are countless other tools I install but now you have an idea of what we'll be building together.

Before we go any further, you'll need a few things:

Next time we'll begin putting the pieces together.