DevOps is a methodology that combines software development (Dev) and IT operations (Ops) teams to streamline the entire application lifecycle.
One of the challenges you face as a CTO is growing SaaS operations while still delivering quality products and maintaining happy customers. With the global SaaS market expected to reach $232 billion by 2024 (showing no signs of slowing), a slick DevOps team is critical to riding the wave.
An effective DevOps team provides a platform for growth, function, and stability for SaaS businesses. DevOps combines the creative thinking of software developers with analytical IT operations. This article sheds light on DevOps roles and organizational structures for gathering your ideal team.
6 Key DevOps Team Members and What They Do
Considering the six roles below, you may wonder if you need all these people on your operations team. Each organization is different, and who you hire depends on what you’re aiming to achieve, how big your company is, and how complex the project you’re taking on is.
Here are six common DevOps roles:
1. DevOps Evangelist
As the spearhead of all DevOps undertakings, the DevOps evangelist is a fearless leader who pioneers a company’s cultural shift toward developer and operations collaboration. They work with all employees, inspiring and promoting the benefits of DevOps, ultimately helping them to embrace the changes.
They bridge the gap between developers and operations by dismantling silos, assigning roles according to strengths, and arranging training to fill skills gaps. DevOps evangelists continuously monitor processes over a product’s entire development cycle.
The ideal DevOps evangelist is a highly tech-savvy individual and a strong communicator with good people skills.
2. Release Manager
A release manager is a leader who plans development strategies and coordinates teams to fulfill them. This position requires project management skills, and the person in the role could benefit from knowledge of frameworks and methodologies such as agile and scrum.
Their in-depth knowledge of the software development lifecycle and ability to lead cross-functional teams effectively make them a key part of the process from planning to deployment.
3. Automations Architect
Automating systems is one of the key goals of DevOps. Automation architects aim to reduce manual tasks by developing these systems. They are problem solvers who assess current development workflows and find ways to make it more efficient by reducing manual processes wherever possible.
Aside from speeding up development times, automations architects are also tasked with reducing operating costs, and that’s one of their main contributions to the business.
4. Experience Assurance (XA) Expert
The experience assurance expert fulfills a quality control function by representing the customer’s best interests. They work with the end product to check that all the features listed in the original specifications function correctly. XAs also assess if the product provides a simple, intuitive user experience.
A successful XA expert is usually a meticulous individual with fine attention to detail. They have strong analytical skills to understand the finer purposes of the product and can pick out areas that need improvement. They can articulate their findings to the operations team precisely and thoroughly.
5. Quality Assurance
After software development teams build the products in question, they need to send them to quality assurance (QA) departments, where the testers and analysts are. These people run various checks against what they expect the software to do in both regular and outlying cases so they catch any issues before getting to production.
They log their findings and send them off to the relevant team so they get addressed, and they use this information to develop processes that are used to guide both engineering and QA efforts in the future.
6. Security and Compliance Engineer (SCE)
The security and compliance engineer ensures that the product is secure and compliant with industry-specific standards and regulations. They can build processes that incorporate security into more parts of DevOps pipelines to create systems known as DevSecOps. As for the compliance part of the equation, they could be one of the people handling audits to ensure that the products and services they’re working on align with regulations.
In some companies, the title might be Security Compliance Engineer, but their role is still the same. In these instances, it’s often because security is heavily regulated, as in areas such as fintech.
5 Types of DevOps Team Structures
DevOps aims to break down the silos that have existed in traditional software development to make collaboration easier by allowing free communication between teams.
To achieve this goal, it’s important to identify the right DevOps structure depending on the type of product you’re working on, the size and makeup of the team, and the amount of time you have to work on it.
Here are five types of DevOps team structures to consider as you start building your team:
1. Development and IT Operations Collaborate
IT Operations (ITOps) deals with a company’s IT infrastructure, whereas DevOps focus on software development. While these are separate teams, they can work towards business goals because their areas of operation often overlap. For instance, the security admin could work with the SCE to prevent leaks and unauthorized access companywide.
ITOps and DevOps are common in several major companies today, and implementing a system where they collaborate is usually how I’ve seen many of them operate.
NoOps, short for no operations, is an extreme version of DevOps that leverages automation to the extent that you don’t need a dedicated team. In this approach, which companies like Coca-Cola and DigitalOcean rely on, developers work on their code and send it out through a pipeline for deployment.
3. DevOps and Site Reliability Engineering (SRE)
SREs ensure that a product remains stable as DevOps teams continue to work on it after deployment, so it stands to reason that the two teams would be close collaborators. With this approach, it’s easier to maintain uptime and performance by tracking and sharing metrics related to both across all teams. Some of the companies that have SRE teams include Microsoft, Oracle, VMware, and IBM.
4. Ops as a Platform
Platform Ops involves designing and maintaining the platform on top of which DevOps teams operate. The need for this is most apparent on larger projects with more moving parts, whether people or tools. It can also involve security, and Platform Ops teams can collaborate with DevSecOps teams to secure workflows.
Some of the companies I’ve seen implement strong Platform Ops systems include NGINX and Honeycomb.io.
5. DevOps as Consultants
If you’re unable to or don’t want to develop your own DevOps team, you can get external help from providers of the service that come in as consultants or contractors. Their role is to evaluate your current DevOps setup and offer guidance on improving it to reach desired outcomes.
5 Steps To Establish A DevOps Team
From recognizing the importance of a DevOps team to having a fully functioning team delivering software can seem like an insurmountable challenge. Break it down into easy stages, and it becomes doable.
Follow these steps to put together a DevOps team:
1. Map It Out
Start by understanding the goal you’re aiming for. List all the action steps that it will take to get there, which might include assessing skills gaps, recruiting new team members, dismantling separate teams, or even physically rearranging office space to encourage collaboration.
Include all the information on a timeline and assign priorities to each item. Make sure you assign each action step to a person who will be responsible for seeing it through.
2. Get Buy-In Across the Organization
Part of building a DevOps culture is getting buy-in throughout the organization. It’s best to start at the top and make sure leadership buy-in to the changes. From there, work on a team level, making sure everyone sees the value and commits to the process.
3. Choose a DevOps Solution
Consider what technology to use to accomplish your goals. Budget is a constraining factor that can’t be ignored. Keep your team’s knowledge levels in mind as you investigate solutions. Use the information you gathered during your skills gap assessment to help with this step. Lastly, consider what the project needs and choose a solution that will best suit the project.
The information I provided in the previous section should be a useful starting point, but I recommend consulting with a DevOps expert who can assess your resources and requirements to determine the ideal way forward.
4. Automate DevOps Processes
Aim to reduce repetitive and manual work as far as possible so you can free up your teams to focus on other areas of development. Some areas where you can introduce automation include testing and provisioning, and there are tools you can use to handle these tasks if you don’t want to or can’t develop your own automations.
One of the best ways to introduce automation to your workflows is by building continuous integration and continuous delivery (CI/CD) pipelines. With these systems, you can automate many of the processes involved in the software development lifecycle to ensure you’re always shipping quality products — even if your team isn’t manually handling every little detail.
5. Monitor Key DevOps Metrics
Keep an eye on your DevOps teams and processes to ensure they’re generating the desired results. Create systems that track various metrics and statistics related to security and progress and report them to all relevant parties.
Aside from keeping stakeholders in the loop, you can also use this information to create more efficient DevOps teams in the future.
Successful DevOps Teams Do These Things Right
Measuring DevOps metrics will show whether your team is on the right track, particularly the metrics of throughput and stability of software delivery. However, hard metrics aren’t the only way of knowing you’ve got the balance right.
If you analyze highly successful DevOps teams, you’ll often find they prioritize the following things:
- Collaboration: Breaking down the walls that separate teams in a traditional production environment is one of the main focuses of DevOps. In my experience, teams that work directly with each other are more likely to produce more quality products, which is a clear indicator of success.
- Communication: Ensuring that teams work better together by facilitating open channels of communication and a less restrictive flow of information between them is also one of the strategies companies use to get more out of DevOps.
- Team autonomy: Teams should work together but not be reliant on one another, which is why autonomy should be something they enforce from the start.
- Willingness to refine and reiterate: A good team understands and accepts they could always be better, so they should constantly look for areas where they could improve their DevOps systems.
- Feedback, empathy, and trust: This provides an avenue for the people on the DevOps team(s) to report back on whether or not it's working. If they know that their input is valued, they’re more likely to provide it honestly, and it’s a win-win for the business.
10 Tips for Building Effective DevOps Teams
An effective DevOps team benefits a company by creating an agile environment that supports building, testing, and releasing reliable software in a shorter time frame. DevOps combines infrastructure and operations, development and engineering, and knowledge of CI/CD tools and processes. To find your ideal team, start by considering the following factors:
- What skills do your team members have, and where are the gaps? They may have excellent infrastructure knowledge but lack software development or other technical skills.
- Your tech stack. What programming languages, tools, and software services does the company use?
- The existing infrastructure and your goals for development. What skills do you need to shift the organization from manual to automated DevOps processes?
With these considerations in mind, follow these tips to build an effective DevOps team:
1. Start With a Culture Shift
For DevOps to be successful, you’ll need to mold your entire approach to development around it so there isn’t any area that doesn’t support it.
Some ways you can do this include direct education for all the relevant team members with reading materials and conferences. If there are any roles you will introduce that could benefit from formal certification, make sure the people in those positions get them.
By the time your DevOps team is up and running, the entire environment around the company should be conducive to the new processes.
2. Assess Your Skill Gaps Before Recruiting
To assess the skills gaps in your team, you’ll need to look at three areas:
- Technical: These include hard skills such as programming and system administration, which you’d expect someone to have formal education on.
- Operational: These mainly cover processes and may or may not be acquired via formal education and include skills such as project management.
- Soft skills: These are people skills that one might pick up during their professional lives, including communication and time management.
This will allow you to determine the personnel necessary to bring in as part of your new DevOps team. However, you can also take this as an opportunity to see who’s qualified to take up a different position on the new team.
For example, a developer who’s been with the company for a long time might have amassed enough transferable skills to comfortably head the QA department.
3. Attract the Right Talent and Keep Them
Building a strong DevOps team doesn’t stop after onboarding new hires; you’ll need to work to ensure they’re happy on the team and willing to stay for the long haul. Follow up regularly to ensure everyone on the team is satisfied with the processes, product, and the people they work with.
As I’ve mentioned before, DevOps is about bringing teams together, and opening up clear lines of communication goes a long way toward keeping everyone happy and productive. Since DevOps often goes hand-in-hand with CI/CD workflows, it’s also essential to keep people on board beyond the launch of a product so you have the same team working on maintenance.
4. Invest in Your DevOps Team
As I mentioned in the first recommendation in this list, you could get some people the relevant certifications they need for their DevOps roles. To be more specific, I recommend shouldering it as a business expense because it will ultimately benefit the company.
Aside from this and getting the most qualified team members, I also recommend investing in the tools your team will use, including the ones you’ll use for CI/CD, project management, communication, and automation.
5. Make Mentorship Part of the Culture
As much as I’ve established that you should try your best to retain your team members, I also recognize that sometimes it’s not feasible. For this reason, I also recommend integrating mentorship as much as possible.
This way, you have a scenario where every successive team can be more successful than the last because they’re constantly building on top of one another’s foundations.
It can also be a good way to boost morale and loyalty because the team members, especially those new to DevOps, feel like they’re developing hard and soft skills that make them better at what they do.
6. Dismantle Existing Silos and Create Smaller Teams
The goal of DevOps is to move away from developers and operations working on the same project in separate proverbial offices. Integrating the two teams gets them talking throughout building, testing, and deploying software. Making them smaller means it’s easier for them to develop autonomy.
Breaking down the barriers between teams improves the sharing of information and enables them to work better together. They’re in a better position to be aware of each others’ limitations and work within them and to overcome them.
7. Continuously Develop Processes
If you start strong, do not rest on your laurels; there are always opportunities for DevOps transformation, and the only way to catch them is by looking.
Development teams, even ones working on identical products, will often find that identical processes don’t work for all of them. Some of the factors that go into determining this include budgets, the size of the team and audience, and the goals of the business at large.
Make sure you always log and take notes, then go back to the drawing board as often as needed to see where you can make things more efficient.
8. Create Opportunities For Giving and Receiving Feedback
This goes hand in hand with the previous recommendation and gives you more information for the knowledge base you’d use to develop better processes. The people who work directly with the systems and processes you’ve developed are arguably the most qualified to report on their successes and failures, so it’s vital that you have ways to capture what they have to say.
9. Aim For Automation
Automate wherever you can.
DevOps can drastically increase the scope of your development processes, so it’s essential to keep it manageable for your team members by cutting out manual tasks where possible. By doing this, you make the workflows less monotonous and more sustainable in the long term.
CI/CD tools are good because they’re built to automate workflows on projects that don’t end after the product first launches.
10. Build Autonomy
While cross-team collaboration is essential in DevOps, each team also needs to be able to stand on its own and not rely on any other team more than it needs to. This way, if one is out of commission, it doesn’t bring the entire system down.
Teams should develop their own principles for self-governance depending on their unique resources and goals. For example, the engineering team can’t operate on the same rules as the customer support team, and their internal structures must reflect this.
Because DevOps opens up the lines of communication, it’s less likely that a team would develop processes that are incompatible with a collaborator and that it wouldn’t be caught until it was too late.
Benefits of a Good DevOps Team
If you follow the pointers from this article, you should find yourself with a strong DevOps team that can support your company’s goals.
Here are the top benefits of a strong DevOps team:
- Collaboration: By definition, DevOps is a collaborative environment that brings together people from different teams to work towards a common goal.
- Speed: Automating processes speeds up development so your teams can work faster and smarter.
- Scale: You can more effectively scale operations by automating functions and standardizing processes.
- Reliability: With dedicated team members in roles such as SRE and QA, you can deliver more reliable products and services to your customers.
- Rapid delivery: DevOps team members have clearly defined roles so they can more rapidly respond to market demands and other changes right from ideation to deployment, giving you a competitive advantage.
- Security: With DevSecOps and continuous monitoring, you can boost security in your development lifecycle.
As a CTO facing the challenge of scaling a SaaS business, assembling the right team sets you apart from competitors. The right team utilizes DevOps monitoring tools as the business grows and stays flexible enough to adapt, using the insights to keep stakeholders informed and develop more efficient processes in the future.
The CTO Club is your go-to resource for all you need to know as a CTO. Sign up for our newsletter for more insights like these.