While the previous two posts in this DevOps series have been open ended and applicable to people on both the development and operations side, this post is focused on operations personnel. After all, if you’re a developer and asking if you need to learn coding then you might not be in the right job. I’ve recently had the chance to speak to several people in operations roles that are tackling what their organization is calling “DevOps”. Inevitably, the discussion turns to coding and whether or not operations staff need to pick up development skills. It depends, and in the third installment of the DevOps series, we will examine why you may, or may not, want to pick up some development skills if you are in operations.
Why You Shouldn’t Learn Development as an Operator
It may be tempting to learn how to code so that you can be the sole source for your DevOps efforts. After all, who is closer than you to day to day operations in your organization? And if you can make it to where you cut out the developer, that means you’ll get to your DevOps nirvana sooner, right? Not usually. Here’s why:
It’s About Turning Code Around Quickly
You might be able to pick up the skills that you need to get your program off the ground, but how long is it going to take? In addition to the learning curve to get everything programmed the way it needs to be, operations has its own goals for supporting and operating the environment and often the demands for one will not match up with the demands for the other. If you are fortunate enough to have a development team, they can really speed up this process. In addition to already having a solid basis on the coding piece, they can continue developing for the environment when operations has a fire that needs tending to. By having the teams work together, you can ensure that the developers know what you need to know while not taking significant time away from your day to day job.
It’s About Good Development Practices
When it boils down to it, DevOps is a development practice. It’s a way for development and operations to have continual communications in the development process to ensure that the final product is what operations is hoping for. In addition to the communications, on the back end there is a whole host of development practices that gets involved. Proper code documentation, testing, and validation for just a couple. If you’re “picking up coding” for your DevOps effort, it’s highly likely that some of these practices may be forgotten in an effort to get yourself up to speed on the coding basics.
Value in Collaboration
Aside from the points mentioned in the previous two sections, there is value to having someone from outside your operations organization to participate in the development process. You may know exactly what you want, but a healthy back and forth can help the development team come up with suggestions for handling an issue that you may not have thought of before. The development can have a different, and sometimes better, perspective on how to approach and resolve a problem.
Why You Should Learn Development as an Operator
Whether you choose to learn how to code or not is largely going to depend on what the goal is. In this section, we’ll go over some valid reason that you might want to pick up this skill set.
There Are No Developers
In earlier posts in this series, several people have commented that their boss wants them to implement DevOps in their organization. The one problem? They have no developers. You could easily say, “That’s not DevOps,” and be right in this situation. The fact of the matter is that the supervisor has said that they are doing DevOps, so in this case you will need to pick up coding skills even though you are still technically on the operations side.
Speak the Language
By learning how to code, you can pick up some non-coding specific knowledge that can help out in your DevOps efforts. Understanding what it takes to write an application can give you more realistic expectations regarding time lines when you speak with the developers in your organization. Additionally, by understanding basic development concepts, you will be able to understand what things are possible (or more difficult) with code in your application. Finally, having a grasp of some of the basic terminology around coding, may help you better communicate what you are wanting from your applications to the developers that are writing them. Being able to understand basic coding concepts can expedite your DevOps processes by simplifying communications and setting achievable goals for the project.
No One Told Me There Would Be Learning
As the saying goes, if you’re not moving forward, you’re falling behind. One of the best reasons to learn to code as an operator is simple, expanding your skill set. By learning to code, you can benefit your own organization by being able to speak the language with developers, but you also increase your skill set and value that could give you the in for a new job or career.
Whether you decide to pick up coding or not is ultimately up to you, however you may notice one key point from all of the reasoning above. Unless there are no developers in your organization, your goal for learning to code should not be to do the developers job for them. Instead, if you choose to go that route, look at it as an opportunity to improve communications between teams or to improve yourself.
Source: solarwinds GEEK SPEAK