Why Your Developers Should Be Using Docker

Docker isn’t just for deployments, it’s for development. Find out why your devs WILL benefit from using it…

Docker isn’t the new kid on the block anymore. It’s been around for a while, and quite frankly if your devs are not using it in some aspect of your business, you’re losing out. Find out why I recommend Docker to all the businesses I deal with. 

You can have new hires up and running in 15 minutes. Sound good? Read on.

Why would a developer want to use Docker?

Any time you plough into Docker will be repaid ten fold. 

Case Studies

I’ll give you some real life case studies which should highlight how your developers can benefit.

Build It Again (and again, and again….)

I worked with a company stuck in its ways when it came to their developers. The on-boarding procedure consisted of setting up their dev environment. They had a monlithic web app which required a number of elements (Db Layer, Cache Layer, Web Server etc) to be installed. That’s fine, it’s good to learn by doing.

However, every Dev was using something different. Some were using a bare metal install (i.e. Linux with Apache installed on the OS), others were using VMs (i.e. Virtual Box). It’s fair to say, there was no documentation and every new hire ran into a similar (though not identical) set of problems which were never documented. 

Enter Docker. 

Instead of spending 2 days setting up a dedicated environment, Docker was used to create a unified environment that every new hire used. From there on, every developer had the same environment; THIS IS SO IMPORTANT!!

By running the same environment, you take the guess work out of working as a team. Everyone sees the same thing which is the way it should be done. Realistically how did this help the dev team?

 

  • Consistency – Every person has the same environment. No matter if it was a Mac, PC or Linux
  • Maintainability – Reinstalling your machine? Doesn’t matter, you can have your Dev environment up and running in 15 minutes
  • Man Hours –  Why are you wasting the first two days of EVERY new hire? Get them up and running, then use those two days for learning your codebase
  • Expandability – Need to add an update to the cache layer? Easy, get one dev to develop the update and all the other devs can pull a new docker file

Please Don’t Make Me……….Upgrade

Another company I worked with had fallen into the typical trap of many old school developers. They had their machine set up “just right”. I.e. they didn’t want to mess with anything on their machine because it would take days to get it all set up and working again. 

Where’s the problem with that your might ask:

  • What if someone else needs to work on the project? 2-3 days of setting up
  • What if their hard drive crashes (you do have backups don’t you)? 2-3 days of setting up again
  • What if you need to upgrade the operating system? 2-3 days of troubleshooting/reinstalling

Anyone see a theme here? 2-3 days of wasted time?

As it turns out, the sysadmins were insisting everyone upgrade to windows 10 due to Windows 7 nearing end of life. That involved a stand off between the devs saying they didn’t want to reinstall their PCs and the sysadmins telling them there was no choice?

What was the solution? Docker

Spend the 2-3 days at the start of the project, get it into Docker and you solve all the above problems instantly. 

Anything else?

Docker requires a fundamental change in thinking. It’s a tough switch, but the days of installing your dev environment locally are done.  

The main thing to take away from this article is Docker doesn’t solve just one problem. It solves MANY problems inherent to the development workflow, and guides devs to work the way they SHOULD be working; as a unit. 

It can’t solve all your problems, but it can be a great start. 

If you’d like some advice on moving your development team over to Docker, give us a shout and we can guide you past many of the pitfalls.