DevOps – the word is a conjunction of Development and Operations.
The development team or department is responsible for the development of new software features. The Operations team supports the running software in the production environment. The production environment is the ‘customer facing’ software environment – the one where customers log in and do their work.
In smaller companies, development and operations might not be separate teams. It could be that Development is also responsible for handling problems during the software’s deployment and running.
The fact that we have to distinguish between environments where code runs also gives us a hint that there are types of environments; ‘development’, ‘test’, ‘user acceptance’ and so on. These different environments help the development team assess the quality of their software before it’s deployed to customers in ‘production’.
Already, in just a few sentences we have described a complex situation. We have two different teams, we have potentially many environments in which they work to prove that software changes are successful.
This is where DevOps has arisen, in the junction of deploying code to new or existing environments. DevOps is intended to allow software changes to be made to different environments in a predictable and often automated way.
Predictability gives the ability to make changes with confidence. Confidence allows for greater flexibility and speed of change. And faster deployment of features that for our customers is the end goal of our DevOps process.