Have you ever tried to string together a complex series of scripts, data entry, process monitoring, and file copying to pull off a release? You are not alone. Many of us struggle constantly with this unreliable method of code promotion, assuming “it’s too complicated to do any other way.” So, instead of sticking to status-quo, read our suggestions for creating a modern DevOps practice.
Skills not Tools
The most important factor in building a successful DevOps team is an understanding of the discipline and the processes necessary to bring a level of maturity to the role. Tools can often hide the underlying principals which should be the skills you are recruiting for. Regardless of the platforms that you use now or in the future, the processes and underlying theory of why something is being done are transferable across tools sets.
The large number of respondents looking for DevOps talent and the salaries they are willing to pay explains the fairly sizeable skill set required for the role of DevOps. According to Glassdoor, DevOps Engineer was among the top 10 notable tech roles in demand for 2019. With a median base salary of $107,310 and more than 6,603 job openings in the United States alone, DevOps Engineers are the fifth most wanted professionals.
Match the speed of the Organization
It’s difficult to define the output of a DevOps team if you first don’t understand the velocity of the organization. Being able to create processes that are efficient and adaptable to future needs requires familiarity with the business requirements of the organization. Some teams may be traditional waterfall, others purely agile, or likely a combination of both, the DevOps team needs to factor all this into their playbook. DevOps needs to match the release velocity and agility of business it serves in order to be seen as a valuable asset and not a roadblock.
Development and Operations are often two teams inside an organization trying to be stitched together by leadership to provide a better user experience. DevOps is the glue that brings these two teams together, along with other parts of the company, with a role in ensuring product gets shipped. Within any software development process, you have product managers doing release planning with the development manager, QA resources being lined up when development finishes to ensure product readiness, and operations notified of pending updates so that they can ready their team. This is the perfect cross-functional collaboration where DevOps can integrate and provide the structure and discipline to ensure everyone’s plans proceed on the expected cadence.
Use the Data
The best DevOps teams will let the data drive their decisions. Data should tell how well services are performing and where improvements can be made, it can also flag potential issues or identify where additional infrastructure may be required. Data provides recommendations on the next steps to be taken in the software development cycle, which will reap the most benefits for the business, while also improving the overall customer experience. A great place to start with metrics is the Gartner data-driven DevOps guide. Here is the metrics pyramid from the guide as a sample.
Finally, ensure that the team is set up for success by giving it a level of autonomy inside the organization. Reporting directly into development or operations can sometimes lead to influential decisions about how things should be done to meet the metrics of the parent department. Effective team responsibility boundaries for DevOps depends on a variety of factors. Matthew Skelton and Manuel Pais, have curated the well-known DevOps Team Topologies patterns, showing which topologies are effective for fast flow and which ones are ineffective.
As one of the cornerstones of our delivery capabilities, DevOps workloads provide Fenway Group clients with a rapid deployment of best practice backed domestic talent. We would be happy to share our expertise with you and define a model that works best for your situation.
Developing the Next Generation of Technologists.