So what is operations? And what does a developer or architect has to do with operations?
Usually the answer to the question is all about running shipped software products under quality aspects as availability, performance or safety and it comes to monitoring stuff and doing all that with a high professionality. And it’s all about the question if it is a good idea to strictly separate development and operations or instead letting the same people do both. And as for the most questions that are more complex than 1, 2, 3 there are pro’s and con’s for both sides. So I instead will write about a thought that might be perfectly obvious: Every developer is also an operator.
When I was thinking about a structure for the blog it came to setting categories and since this blog is intended to be about development and architecture in the past there is a lot of stuff I wouldn’t call it either, but I would categorize it as operations.
Operations during Development
Operations is all about connecting everything together and keep it running - right? So as soon as you are using your computer you are doing operations - just remember that you are using an operational system. As soon as you do house keeping on your computer, as soon as you update software or delete old files you do operations. You can’t develop without setting up things, keeping things running, maintaining your tools and data or building up chains and processes. That’s all operations. So there is a huge percentage of operation in the daily business of a developer. Especially at a single developers project. That sometimes is kind of frustrating when you want to start and write code and instead you have to deal with setting up a lot of tools and tool chains instead.
On bigger teams often one ore even better two persons keep up running the tool chains and maintaining the infrastructure so that the time share on operations for each single developer sinks. But it may also raise with bigger teams if they rely on shared resources that no one really manages. The image above is a static view of the time a developer spends on operations in relation to the total number of developers on the project. Of course there are also dynamic views. Over the time of a project usually the time a developer does operations sinks because the tool chain is set and a lot of automation was built for recurring tasks. If that’s not happening I assume the tool chain is bad or automation is too low. Usually developers hate it to do repetitive stuff so they will optimize and automate it. Most of the operations tasks are only needed during the development process and have nothing to do with operating a shipped application - which is exactly what the DevOps movement is all about. But it is operations and therefore operations is a big part in software development.
Developers do operations all the time - as almost all people do using computers intensely. This of course differs on many aspects from what operators do. The thing operators usually deal with is the huge number of applications they supervise and therefore they have totally different requirements to operations than developers do. But operations totally is also a huge aspect during development or using computers at all. For that reason it is legit to bring focus to it and discuss it. To sum up, one can say talking about DevOps is the big controversial thing while being an OpDev is totally usual and nobody talks about it.