The DevOps Process Question You Need To Ask To Ensure Smooth Software Deployment

Peter Tylee 1 Sep 2022

Share:

This is the next article in our series on the Technical Questions To Ask Your Software Development Partner. This series of articles is aimed at educating business owners with questions to ask external vendors, internal candidates and external contractors before contracting them to develop software.

Question 2: What kind of developer operations processes do you use?

The answer you’re looking for here is continuous integration. Continuous Integration (CI) is where developers will be repeatedly making small changes to the code, merging those changes (commits) to a common branch that all the other developers are working from. This means that you lower the chance of any merge conflicts occurring as everyone is working from the most recent version of the code.

If your developer is NOT using continuous integration then chances are they are having individual developers creating branches off a trunk line, developing code on that branch and then, perhaps weeks later, trying to merge that code back into the main branch, resulting in numerous merge conflicts. Expand this scenario to a whole dev team and those merge conflicts can take a very long time to fix and can be a major headache (not to mention increase development time and cost).

CD = Continuous Delivery

People often talk about CI/CD (continuous integration/continuous delivery) in the same breath, but they're really quite different things. Continuous delivery is a process of automating the application release process.

For example, if you've got a web application, that's got a front-end and a back-end, you commit code to a dev branch (that goes to testing) or to the main branch (which goes to production), ultimately it would run a series of automated testing to make sure that nothing is broken. As long as it passes that testing, then it will push straight out to the deployment service so that people can start looking at it straight away.

For most projects continuous delivery to production is not a realistic thing to aim for because most projects tend not to have the budget that will cover all of the automated testing that would be required to achieve it.

Having said that, it would be good to aim for having automated deployment to a test environment and then having some kind of QA process involved so that it can be reviewed. Then, as long as someone gives it the ‘thumbs up’ with the click of a button, you can have it build and then push to production.

What you definitely SHOULD NOT have are manual deployments. This is when you have a developer sitting at their computer who compiles the code, manually zips it up, copies it to a server, and unzips it. You definitely don't want to be doing that. It's slow to deploy, it interrupts thinking time for the developers and causes productivity and reliability problems.

Apart from the laborious process of deploying manually, it’s a serious disruption to productivity. This funny cartoon frames the problem well…
never-interrupt-a-programmer.jpg

If you've got a developer who's happily working on code and then has to stop what they're doing to manually build and deploy then that leads to a decrease in productivity. And a decrease in productivity means an increase in cost because it will take longer to produce the solution.

For example, we consulted to a dev team of six developers who were not using any DevOps. Everything was manual and all we did was deploy some developer operations to their processes and their productivity increased by 40%. In dollar terms, that was around $300,000 AUD that they gained in additional productivity just from doing DevOps.

But I’m outsourcing the work, I don’t need to think about that do I?

Wrong. If your development partner isn’t using DevOps then, aside from there being a lack of reliability in deployments, you can be sure that the lack of productivity is factored into their pricing in the developer time. So you most definitely should be asking what their DevOps processes are.

The Takeaway

If your software development partner has a DevOps process featuring continuous integration, continuous delivery and automated testing then what you’ll get are smooth deployments.

If you’ve got a software project idea that you’d like to discuss, CLICK HERE to book a time for a scoping call to run through your idea.

Advice

Share:

Written by

Peter Tylee

Call us

+61 2 4063 1115

Email us

info@gistlens.com

LinkedIn

Connect with us

© 2022 GistLens Pty Ltd.   ABN: 85 632 037 024.

We help turn big ideas into beautiful digital products and experiences.

GistLens