For the layperson, computer programming may be an unfathomable world of algorithms populated by incomprehensible terms and rules. While our iPhones, smart homes, video games, and apps may have taught us the basics of how to use these tools, the idea of actually programming them to answer questions or navigate to the nearest restaurant (all in a smooth British accent) are completely out of our league. That’s cool, though, because we all know some Sheldon Cooper (a la Big Bang Theory) type that can probably fix the WiFi when it goes down.
Ironically, there is one specialization within software engineering that even some developers can’t define. DevOps is an anomaly within software engineering because the definition of the practice varies widely between organizations. Yet, today the majority of businesses with IT teams use some form of DevOps engineering to bridge the gap between development and operations.
Here’s our best answer to the question, “What the heck is DevOps?”
Many organizations struggle with internal silos that stymie the productivity of the whole organization. In both large and small companies, there is at least occasional tension between sales teams and marketing, because sales can blame marketing for not producing the right collateral to help close deals. There are also inter-departmental squabbles between siloed departments. Like personal relationships, getting all of the separate pieces of the corporate engine to mesh is complicated and sometimes downright messy.
In IT, there is tension between hardware operations and software developers when deployments of new digital products don’t roll on time or on budget or if there is an interoperability issue between business tools. In these instances, development and operations can point fingers at each other with a dialogue that goes something like, “It’s not my machines—it’s your code!” And vice versa.
It is precisely this divide that led to the creation of development operations, or DevOps for short.
The practice of DevOps launched about a decade ago, and by 2017, DevOps adoption had increased to 78% in the small to mid-sized business (SMB) market, while enterprise organizations used DevOps engineers 84% of the time.
In the search to define DevOps, we found a few definitions of the term. For example, DevOps.com says:
It’s reasonable to describe DevOps as a journey, or perhaps an aspiration, rather than [a] defined destination. DevOps, like lean manufacturing, seeks continuous improvement, seeking higher output, greater efficiencies and even continuous deployment.
DevOps is the combination of cultural philosophies, practices, and tools that increases an organization’s ability to deliver applications and services at high velocity: evolving and improving products at a faster pace than organizations using traditional software development and infrastructure management processes. This speed enables organizations to better serve their customers and compete more effectively in the market.
No matter the definition, the goal of DevOps is to smooth out digital application development and operations to a precise and seamless, transparent and fully integrated set of practices under IT. DevOps Engineers improve the collaboration between backend IT functions and software developers.
Of course, DevOps is almost always tasked with making everything faster. That’s the whole point of computers, right? In the IT world, when any organization can achieve continuous integration between hardware and software, automate testing processes, and speed up coding deployments, that’s money in the corporate bank.
But what does all this mean in real-world terms?
Business Benefits of DevOps
Technology can facilitate business advantage or crumble an infrastructure. When buggy software messes up business processes, customers are lost, brand image tarnished, and market share destroyed. We’ve all experienced websites that don’t work properly. If customers have a bad experience, how likely are they to return?
Say, for example, that your organization has an e-commerce website. If the software engineers behind the platform send out an update that crashes when your customer tries to place an order, could that harm your business? You bet—and probably faster than you can say, “Cart abandon.”
The same thing can happen if you use an inventory plug-and-play software application from a vendor or your own custom-made application. The goal of the DevOps engineer is to reduce downtime by ensuring an error-free product deployment, no matter the type of product.
AWS lists some of the big business benefits that DevOps can bring to these scenarios:
- Speedier software and hardware deployment
- Improved efficiencies between back-end and front-end business functions that use computer technology
- Improved collaboration between IT teams
- Higher quality application updates and infrastructure changes with fewer hiccups that could damage sales
- Better management of very complex and changing infrastructures within a business
- Higher compliance and IT security
- More and faster innovation
Today’s business models are woven irrevocably into the software they use. Companies interact with their customers via these software applications on every digital device. Internally, these same companies use other types of software to improve internal efficiencies in terms of how they communicate, produce goods, or provide services. None of this works as well without the DevOps professional striving for process improvements in our interactions with these digital tools.
That makes DevOps a kind of quiet superhero behind the scenes in most companies today. For the aspiring DevOps Engineer, what kind of skills do you need to get the job done?
The Skills You Need to Be a DevOps Superhero
To get to the bottom of what makes a good DevOps pro, we interviewed Andy H. (DevOps superhero name: AndyFosho), who works for a software engineering firm in the Midwest.
Artisan Talent: Why is the definition of DevOps so hard to pin down?
AndyFosho: It’s because it’s the ultimate chameleon role. No one organization’s need for DevOps is the same. The tools you work with are always different. The responsibilities and where you start vary from job to job. DevOps is basically a change management role within IT. The goal is to remove the silos between development and operations, but how you do that and what tools you use depend on a lot of variables that you can’t predict and the technology is evolving so fast now that you have to just roll with it.
What tasks do you take on every day?
That’s what’s so cool about it—the tasks vary. The goal is to make everything run more smoothly so that customer value happens faster. You may work on value stream mapping on a whiteboard to determine why a technology process is taking so long. You could work on automating software testing or a code deployment or maybe integrating new infrastructure. These tasks could take 30 seconds, two hours, or two days; it just depends on the complexities of the internal systems you’re dealing with. For the average software developer or IT engineer, you spend a lot of time in the weeds. But then DevOps comes in and looks at the big picture, creating, investing in, and deploying tools that make things faster. So, what do I do every day? The answer is: It depends on what’s on fire.
What skills do you need to be in DevOps?
I’m not aware of any DevOps degree. A lot of the job is troubleshooting, which is really one of the best skills you can bring to the table.
You also have to know something about scripting using Windows PowerShell or Bash. Understanding data and database response times, as well as on-premises or cloud infrastructures, is important. You also have to be comfortable moving from integration [to] testing, new releases, or deployment.
Knowing a little bit about all parts of the software lifecycle helps, along with soft skills like the ability to work collaboratively with teams. But troubleshooting and being able to figure things out in the face of almost constant change is really what makes a good DevOps Engineer.
The Future of DevOps
What happens to a career that is more IT troubleshooting than defined job description? DevOps.com says, “We are still at the beginning of the DevOps story, with many exciting chapters still to be written.”
There are a number of trends predicted over the next few years that will shape the role of the DevOps Engineer, including:
- Artificial intelligence (AI) tools will augment the work of DevOps by automating the search for process bottlenecks and problems with potential code deployments. AI will supply DevOps professionals with predictive analytics to pinpoint risk, which will lessen the chances of having broken code released to end users.
- DataOps scientists will join DevOps, to create improvements in big data analytics and visualizations used with each software deployment and tool.
- DevOps and security (DevSecOps) will be the new iteration of the discipline. Instead of adding security features at the end of the software engineering process, security will be baked in from the beginning. JFrog puts it this way, “If companies deliver fast but are insecure, we will see data breaches, delivery problems and customer loss.” Thus, DevOps and the emphasis on fast deployment will change to faster but also secure deployment in the future.
- Cloud deployments and multi-cloud environments will continue to evolve so that some of the functions handled by DevOps will change. As companies spread their data and resources across several cloud vendors, how these systems work together could take up a significant amount of DevOps’ time.
The DevOps role is evolving as quickly as the digital technologies we use. That’s why the definition of these positions varies so widely between companies and job descriptions. One thing that will stay the same is the need for operational engineers that can bridge the gap between software and hardware while deciding which infrastructure approach is the best to reach your business goals. This has led to predictions that say, “By 2020, every company will be a DevOps company.”
Having an expert that can connect all the various technologies during software development is what makes today’s DevOps Engineer so valuable—and so difficult to find. The good news is, if you’re reading this, you have a staffing firm standing by to help you build a DevOps-focused IT team. Call us to start the conversation.