How to Best Employ DevOps on Your Project

Devops is a hot topic in tech right now. In this episode, we talk about what is devops, how it helps your project, and what your expectations should be for a devops engineer. Sometimes devops is actually more overhead than you need on a project, but even when that’s the case, you should be future planning for devops as an essential component once your project and team get sufficiently complex.

Alexandra:

Hi, welcome back to another Bixly Tech Tuesday. My name is Alexandra and I’m the director of marketing here at Bixly. Today, I’m really excited for this episode because it is a hot topic in tech right now that of DevOps. Today, Cris and Cody will be telling you about what it is, why it’s important for your project. So let’s hear what they have to say.

Cris:

I was thinking as we jumped in here, first thing we want to clarify is DevOps, CIS admin, lead dev. There’s lots of terms that float around. So for the focus of this, we’re talking DevOps, but where does CIS admin fall into that? What is DevOps and how does CIS admin fall into that?

Cody:

So DevOps is more of a practice. While there are people who are nowadays labeled DevOps engineers. Traditionally, that would have been the role of a system administrator and DevOps is just a specialization of that process. Typically, DevOps as a concept is more to facilitate the deployment and integrity of software you’re building. Whereas a CIS admin just manages anything to do with your actual systems and not software engineering work and stuff like that. So typically, that’s the practice that a CIS admin would do. So if you have someone who’s a DevOps engineer, they’re a CIS admin who just does only DevOps work versus a standard system admin, which could do anything from access control to general system maintenance.

Cris:

Yeah. Interesting. That’s good.

Cody:

Mm-hmm (affirmative).

Cris:

Even I was surprised at that answer. So what is the differentiation between a lead developer or even a developer and someone that is in a CIS admin or a now a DevOps style position? Are those different than your developers?

Cody:

Yeah, so a DevOps, like I touched on in the last role, the difference between a system admin and a DevOps person. A DevOps person, and a software engineer are really entirely different roles. DevOps is really a support role for your software engineers either if they’re a lead or just a junior, it doesn’t really matter. If they’re touching the software and writing code, that’s not exactly what the DevOps guys do. The DevOps guys specifically will take that code, probably apply some software and principles to make sure. Then when it comes down to release time, we have both redundant backups, all kinds of testing, things like that. It’s all about software consistency during the entire process. And it helps insulate the project from the inevitable production downtime that occurs during updates sometimes for projects that either had bad luck or didn’t invest in DevOps.

Cris:

Interesting.

Cody:

Yeah.

Cris:

So from maybe a military type analogy, they are the seal team six that comes in and does the special things sometimes even covertly behind the scenes that you may or may not be aware of. And basically, they’re there as a support crew to do something that, not that a developer can’t do, but they definitely have a special set of skills.

Cody:

Yeah, honestly, either that or somewhere there and the guy who just does logistics and drives the truck from point A to point B to make sure he gets there safely too, although I must say the seal team six sounds more glorious. So as a DevOps guy, a lot of the time I’ll take that.

Cris:

Yeah. And let’s touch on that while we’re here. So I mean, what gives you the credentials to even be in the room, speaking with me right now. What’s your background in DevOps development? That sort of thing.

Cody:

Yeah, for sure. So when it comes to my personal experience with DevOps, I started on the software engineering side and then recently, in the last year or so I started doing systems administration work. And as a software engineer, I did some DevOps and now as a system administrator doing more of that work in general, I now have the playing field of both worlds to know how it ties together into DevOps, which is really what a lot of DevOps is. It’s tying that software development practice and that system administrator practice together.

Cody:

And I think someone, in my position where I’ve switched roles a little bit, actually has a very good eye for how that should tie together to make it easy for the dev guys and easy for the actual hardware to not crash on release day. So that’s effectively my background on that. And I think that for most DevOps engineers, that would actually be a good way to go. Either start on one side or the other and just have a taste of both, like how full stack engineers do between frontend and backend. You really have to do both before you can call yourself that and I think that’s where DevOps fits as well.

Cris:

So someone out there that’s looking for a DevOps team, you have obviously, like you said, you jumped both lines of the fence here and worked this side for a while, the other side, crossing out both of them. What do you need to look for as a client when you’re going out there to basically either hire someone in a CIS admin style role, or even more importantly, build out a DevOps team? What are you looking for in your DevOps team?

Cody:

Yeah, so I think in an ideal world, you could find what I mentioned in the last section, someone who has done software engineering work and CIS admin work. But to be honest, it’s hard to find that. It’s a rare skill and a lot of people, once they’re in one specialization, they stick to that. So in a real world scenario, you probably want to find someone with a system administration background. They’re going to have the knowledge necessary to set up the tools and procedures to actually do DevOps work. There’ll be a little better if they have some software engineer experience too, but we can’t have everything.

Cody:

And on top of that, there’s a lot of new roles showing up like I said, of the DevOps engineer as a dedicated type of job. A lot of times those jobs, depending on the gravity of their role and the position of trust within their organization will require more knowledge than someone who has entry level or whatnot skills available to their tool set. So I think it’s important to find someone who has a decent amount of experience and not just hire someone who says, “Yeah, I’m training to become a DevOps engineer,” because it’s a very critical role. It’s someone who could mean the difference between your project being online or not. And for a lot of software technology companies, that’s the difference between profit or not. So it’s a very important role that I think deserves a lot of experience.

Cris:

Interesting. So, yeah, it is important to have a strong DevOps team. I mean, what are some of the pitfalls if you do hire that person that maybe isn’t experienced, if you don’t have the strong DevOps team, what are some pitfalls of basically running with a weak DevOps team or the inverse? Why is it so important to have that strong DevOps team?

Cody:

So I think let’s look at it from the perspective of what if we had a software engineering team, like a traditional one that didn’t have a DevOps role integrated? A lot of the time, especially with the concepts of agile and the idea of doing iterative development where we only plan a couple of weeks at a time and we know the overall goal, but we’re only really planning out two weeks at a time. What can happen is that we get strangled by our own code in that sense. We end up developing, developing new features and then eventually there’s a backlog of old stuff that we’ve decided didn’t work out or there’s just buggy code or just things going on that aren’t quite correct.

Cody:

And without a DevOps role in place, a lot of the time that can lead to a what would it be? An exponential curve in effort to execution as you go along. So you’ll have a really fast development up to, let’s say, the last 80 to 90% of your sprint for some sort of a feature and when you get to that point, you’ll exponentially be finding these bugs that won’t be able to fix themselves. The engineers will take days to fix something that normally you feel like should take only a couple of hours.

Cris:

Interesting.

Cody:

And that’s a big part of DevOps is making sure that for one code like that doesn’t get released in the first place. There’s tests in place to help developers catch things automatically. And top of that, there’s obviously the deployment pipeline I talked about earlier, the idea that there’s a procedure in place for what deployments look like and they are automatic and regulated.

Cris:

Mm-hmm (affirmative).

Cody:

That’s a lot of what DevOps offers and if you don’t invest in that early and you bring it in late, it’s going to require a lot of work to implement. But if you do it early, it rides along with your project and you never get to that situation where you have really high effort execution for what seems like it should be simple tasks.

Cris:

So you have that nice through line iteratively from sprint to sprint or cycle to cycle as you’re developing out where someone is in charge and is overseeing these particular things, so you don’t have those pitfalls and things just literally slipping through the cracks.

Cody:

Exactly.

Cris:

Bottom line, I’m a client. I’ve been watching this and what I’m hearing is I need to go hire someone else on my project, which means this potentially.

Cody:

Of course, of course.

Cris:

But does it though? How does having a strong DevOps team affect your bottom line overall?

Cody:

Yeah, so we’ve talked a lot about, do you need DevOps? What does it do? Here are all the great things it offers. Something else to mention before we jump into what does it offer from a bottom line perspective is does my project need DevOps? And a big part of that is how complex is your system? Are you just one developer developing? You’re a business partner, you hired a contract or something of that sort, and you’re building a small project and it doesn’t really have a large team, and you’re not really relying on it for your profit stream yet. If it’s just a small project, chances are DevOps will actually complicate the matter because it adds overhead to the whole development process. It really shines when you have a team of two or three or more people and something that is online and generates your company profit and it’s really critical, it stays online.

Cody:

That’s where DevOps needs to fit. If you’re smaller than that threshold still, you probably don’t need to implement DevOps. That’s probably just going to be an overhead that’s going to more or less, slow down your development. Although practices and knowing that that’s going to come about eventually are also very important. Planning for the future is a big part of that. But moving forward to the bottom line after that is that if you are already generating a profit stream or otherwise have a huge part of your business online, and you’ve got a few team members already working on it and they’re collaborating and there’s regular team meetings and that [inaudible 00:10:10], you’re basically whether or not you’re a dedicated software tech company, or you’re just a company that relies on your online systems to actually do your day to day work.

Cody:

You’re going to want to implement DevOps because ultimately you’re going to save on the long run in predictability of your project. And a lot of the times when you don’t have these regulators, that’s what a DevOps person is within a software project, you’re going to end up trying to do different features or putting out fires as they come up and that is going to basically cause a less predictable project in total. And because of that, you’ll have features that you want to do and that feature, you think it’d take a day in an estimate and then it end up taking several weeks because of some bug or something of that sort. And DevOps mitigates those principles and those issues that can come up. So that’s the bottom line and that leads to a cheaper software development process in the long run.

Cris:

Yeah. So we’re talking longer scales, but maybe those small MVP type projects, very small teams that like you said, maybe don’t necessarily have a product that requires 100%, 24 hour uptime. Maybe it’s not quite ready to jump into DevOps, but you still want to plan for it, it is important because at some point as you grow your company, you’re going to get there, but maybe for the MVP round, you just want to get something good, stable, out to market quickly, get the feedback and now you start to bring that DevOps team in once you have the user feedback, once you’re building out the next iterative rounds and you’re making sure you’re building that through line in.

Cody:

Yeah.

Cris:

Makes complete sense. Anything else in closing as we wrap talking DevOps, CIS admin? Pitfalls, things that you would see just reminders to be aware of when you’re out there looking for your team.

Cody:

Yeah, I think a good part of DevOps is to remind yourself that it’s not just a single concept. It’s an umbrella of many concepts. DevOps encapsulates the ideas of good code practice, automatic deployments, continuous integration, which is basically just every time a developer pushes some form of code, test it now, not later. And overall, just improving the practices and regularity of your project. It’s not a central thing, it’s an umbrella of ideas. And that’s the important bit to remember is that you don’t have to implement all of them at the same time.

Cody:

You can do just some of them because some of them are going to cost more in investment than others, but doing the ones that are cheap and easy sooner than later, and then investing in the ones that take a while over time is going to be a really important process for implementation. Because you can’t write automatic tests for your project overnight, it’s going to take a while. But you can implement automatic deployments in a couple of days. So those things, you want to do it as soon as you can and as early as you can, but you don’t have to just say, “We’re a DevOps software company now.” So, it doesn’t really work like that. You’d have to stop development for a long time.

Cris:

Cool. So DevOps, keep it in mind, start small and build out towards the larger picture.

Cody:

Yep, 100%.

Alexandra:

Thank you so much for joining us for this episode of Bixly Tech Tuesday. If you have any questions about what we’ve shared today, go ahead and leave those in the comments down below. In addition, we have a link to our Custom Software Guide, which is completely free and will help you get your project off on the right foot. You can also go to bixly.com and even sign up for an hour consultation with Cris. Until next time, this has been an episode of Bixly Tech Tuesday.