We’ve written much about Docker on this website in the last year, but today I wanted to share with you from an agency owner’s perspective. Last year, we made the decision to invest heavily in Dockerizing the web applications that we maintain. We decided to implement Docker not just for ease of deployment but, more importantly, to improve our development team’s efficiency at code base swapping. We made a substantial cash investment in research and development to make this happen and are starting to see the investment pay dividends. I could have bought a really, really nice car for this investment, but instead I bought a streamlined workflow for the Rietta team.
To understand why this is important, you need to understand a bit about how the work in our agency is structured (in contrast to work in a single product company).
In a single product company, you have a small number of developers who get very familiar with one or two applications. They work on the same code base week after week, deploy to production day after day, and they get really familiar with that code and all its nuances. In this environment training cost remains financially sound within budget when it takes a week for a new developer to get up to speed on an app.
In an agency like Rietta, a developer’s daily work is not the same as the developer’s daily work in a single product company. Rietta is responsible for security maintenance and updates on dozens of applications belonging to multiple clients while staffed with a small team. Our average team member will work on no less than three different deliverables for two different customers each week. On top of that, we’re constantly recruiting and training new developers, and some go on to other things each year. In this environment, having to pay for days or weeks of ramp-up time on every project decimates the budget and would require us to either substantially raise the rates our clients must pay or exit this maintenance business altogether. As a business owner, I don’t like to be forced to raise rates above what our clients can afford.
With Docker, we’ve been able to standardize the build environment across the dozens of applications and different clients. The special nuances of each app, some that have been around for going on two decades, are contained within configuration. When assigned work, any of our team members can pull down the repository and run a few well known commands and get to work. This efficiency will save tens of thousands of dollars in employee and contractor time in the coming year and makes the investment extremely sound.
Now when we take on a new client, we build Dockerization into the project early on. It saves the customer and us money! As a business owner I like that. I like that a lot!