If your small to midsize business (SMB) uses a healthy amount of third-party and proprietary software, then you should probably consider hiring a Development Operations (DevOps) professional. These brainy developers are responsible for a wide range of tasks, including code writing, app creation, scaling infrastructure, creating virtual environments, and automating systems and procedures. They oversee the engineering, quality assurance (QA), and smooth operations for all interdepartmental software communications.
Think of this scenario: Your human resources (HR) team wants to implement HR software that can help them manage employee records. Your DevOps Engineer, working alongside your development team, helps to implement the new tool, continually tests the tool to ensure constant functionality, builds out additional features as needed by the company, oversees required maintenance and upgrades, helps to automate predictable processes, and ties the system to other systems within the organization, such as your customer relationship management (CRM) tool. Your DevOps engineer should be able to contribute in this scenario, and any similar scenarios involving implementation of, experimentation with, and communication between disparate IT tools.
"DevOps is more than just automating code," said EZ Bardeguez, DevOps Engineer at Zynga, the game-maker responsible for Farmville and Words with Friends. "For a smaller company, a good DevOps engineer is really the building block of a tech product."
According to Bardeguez, the main goal for a DevOps Engineer is to manage a company's servers, specifically those utilizing open-source operating systems (OSes) such as BSD or Linux. Although working with the Windows OS is a popular and viable alternative, because Microsoft charges for each server and user, it's ultimately more costly than using an open-source tool—most of which are free and endlessly modifiable. With open-source systems, your biggest expense will be a hotshot DevOps Engineer who can quarterback software communications from A to Z.
The DevOps Origin Story The need for DevOps as a practice began with a line of thinking that originated around the start of the Agile Conference in 2008. At the conference, software developer Patrick Debois (sometimes referred to as "The Godfather of DevOps") spoke to his colleagues about bridging the operational and philosophical gap between developers and operations teams. Debois, who had previously been tasked with a data migration project for the Belgian government, noticed a palpable tension between the project's developers and system administrators.
The following year Debois began promoting his own conference, Devopsdays, which was marketed to development and operations teams. Presentations included, "Building Agile Infrastructures with Puppet," "Continuous Integration, Pipelines and Deployment," and "Automate Configuration Management." After the event, the Twitter hashtag #DevOps became (and continues to be) the epicenter of DevOps advice, opinions, and news (see below).
Today, 74 percent of enterprises have adopted DevOps practices according to a report by Infrastructure-as-a-Service (IaaS) company RightScale. And 70 percent of SMBs surveyed in the report have also adopted DevOps principles.
Should You Opt for DevOps?In 2014, Forrester Research and IBM laid the groundwork for what would become the roadmap for DevOps success. The report, which is based on a survey of 600 IT professionals, found that DevOps success, particularly as it pertains to software deployments, is based on eight key best practices. The philosophy is built on the notion that organizations should deliver the minimum viable product to start and then improve on it gradually over time in subsequent releases.
The DevOps team should be a dedicated group with cross-functional disciplines that avoids over-specialization. The team should build out a loosely coupled architecture between applications in order to simplify delivery and it should minimize the number of steps between processes to accelerate workflow. Team members should be transparent about progress and stumbles in order to better understand risk, but the team itself should minimize status reports and meetings that distract from actual small batch delivery. In order to streamline the entire DevOps process, the team should automate its own testing process so as to avoid manual, time-consuming testing.
Although Bardeguez is bullish on the importance of his role, he does caution against every small business hiring a DevOps engineer. "The idea of everyone needing this role is dangerous. It could be completely unnecessary. For example, if you're a small company that deals with accounting for bigger firms and you primarily rely on a file server and email, then you probably don't need a DevOps Engineer. But if you need to automate anything systems-related with regards to your product or service, then you most definitely need one."
The Ideal DevOps Professional So what should you look for in a DevOps recruit? Let's start with salary: The average DevOps Engineer reported a median annual income of $105,600 in 2015 according to data from content delivery network (CDN) and cybersecurity firm Incapsula. Employers typically look for candidates with hands-on systems experience as opposed to recent college graduates that majored in computer science. That's because DevOps Engineers are required to interact across all business disciplines, which means they'll be responsible for convincing leaders across lines of business that experimental technological procedures will, in the long run, be cheaper and better for the organization. In this regard, someone with a deep technological background and experience in a corporate environment trumps someone who just got out of an Ivy League school.
Once you've found a few candidates with strong corporate or startup backgrounds, look for people with deep experience in Linux or Unix administration as well as with experience automating processes using Chef or Puppet, which are the most common IT automation tools on the market. You'll also want someone with a rich background using cloud services, especially Amazon Web Services (AWS). This person should be fluent in MySQL and SQL as well as in the PHP, Python, or Ruby programming languages.