cancel
Showing results for 
Search instead for 
Did you mean: 
Create Post

Now We do DevOps. Do I Need to Learn Coding?

Level 9

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.

Wrap-Up

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.

13 Comments
Level 9

Love it, DevOps version of "6 in one and half dozen in the other".   It's good to have a reminder that it depends on one's situation and that there is not a rubber stamp on "one should always do this to succeed" in DevOps.

MVP
MVP

Nice write up

Level 12

I guess I can see something like this possibly being useful in some industries. Bust most I do not. It would be great if the business wanted to support people learning cross platform systems like coders learning operations stuff and operators learning cording stuff. Sadly most companies don't even want to train people for the job they are hired for anymore and just want someone to automagically have all this fantastic experience across the rainbow and then pay them peanuts for it.

In my environment I can barely keep up with my daily job of the operations side with the tools we have in place. If I were to start taking time out of my day to try and code something myself to replace a tool we have paid for and implemented I would probably be sent to the MRI machine to get my head scanned. I just do not see the value in learning a programming language for myself right now and learning how to code. I understand how coding works and the process flow for it, and given a little time I can generally tell what is happening when I look at code, but to be able to sit down and fling it out myself would serve no purpose for me. For me to support the operations of the business, I do not need to know how the program was written or how specific lines of code work.

Again there are probably industries and business where this would make sense, but healthcare is not one of them in my opinion. You would not expect a brain surgeon to know how to maintain the robotic assisted machines he might be using in surgery, nor would you expect the person who maintains those machines to be able to perform the operations that machine would be assisting in. But when it comes to IT people always seem to think, especially now, that the more you know about more subjects the better off you are and that specializing is bad.

Again just my 2 cents on the subject.

MVP
MVP

Six-and-a-half dozen of one/ 78 of the other?

MVP
MVP

I know coding.  Unfortunately, I don't think they are using Pascal, Logo, Fortran, or Basic where I work (or perhaps anywhere).

Level 13

All thumbs up!!!!! 

MVP
MVP

Great post.

Ever since Microsoft stated that PowerShell would be their foundation for system management I have felt that operators needed to get on the good ship 'Coding'. While things are reversing (as they often do in our universe) GUI's will never allow a SysAdmin to be truly efficient. I am not talking about full DevOps platforms here, but the fundamental nature of repetition benefiting from having a library of scripts to get things done.

You are bang on when stating that even if an Operator never learns to fully code, the knowledge of what, how and why allows them to understand what is possible, how it can be created and importantly have the ability to describe accurately to someone who does the actual building.

Having this knowledge in your skill set, whatever you do in the world of IT I feel is beneficial (i.e. necessary) and is instantly transferable to anything else you do.

And it all comes back to training.  Knowing the right way to work with customers and code (DevOps, anyone?), knowing HOW to code correctly, and WHEN coding is your responsibility.

Get that training funded for you or your people, and no one ever need ask:

"Now We do DevOps. Do I Need to Learn Coding?"

MVP
MVP

I had a co-worker that was always mixing his metaphors. For that one, he Always said 6 of one a dozen of the other. He got a LOT of deer in the headlights looks - to use another metaphor.

MVP
MVP

It depends is so often the answer in this business. The problem for me is that I just don't seem to have the skill for coding. I'm good at networking, security, server administration and yes, I even have good people skills. But when it comes to coding - even PowerShell the best I can do is to grab an existing script and modify that for my purpose - but it is tedious and frustrating. But it is also the future - after all, that's what these kids are doing now days.

Level 20

I try to leave the development to the developers even though I have a background in some languages.  It's not my daily thing so I really can call myself a full time developer... and like you suggested... it may be best to leave the programming to the developers that do it all day every day!

I'm yet to meet a 'good' Linux sys admin that wasn't also good at development/scripting.

Learn coding? Bah! Viva la Infrastructure!!

   Seriously though. I can't code. I mean it. I.Cannot.Code! I've tried. My brain just isn't wired that way. I'll end up sweeping floors before I'll be a successful coder.