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 to code, 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
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 to daily operations in your organization than you? 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 of 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 requires attention. 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 get 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 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 previously considered. The development team may 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 reasons for wanting to pick up this skillset.
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 timelines 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 who 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 skillset. By learning to code, your organization will benefit from you being able to speak the language with developers. You also increase your skillset and value, which could help in your career development.
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.