Network teams are regularly being told to automate the network. They are feeling the pressure to learn software skills, use modern DevOps tools, and take advantage of vendor specific programming interfaces. What are some ways to approach this business transformation?
(1) Hire a senior software engineer in the networking team, (2) assign a technical project manager to the team, and (3) align business tools and processes to match other infrastructure engineering teams within the company.
In this article I am going to focus on (1), and I will cover the other topics in later articles.
Doing more takes more. Network engineering teams are always asked to do more with less and delivering automation projects is how this goal can be achieved effectively. Is the network team already running close, or even over capacity? Are network engineers on an operations/on-call rotation? It is not realistic to expect the team to learn programming skills and deliver reliable projects if they are already tapped out. Becoming a senior software engineer takes about as much time as it takes to become a senior network engineer. Sending network engineers to certification training will not immediately give them the skills to deliver automation projects. By directly hiring and embedding a senior software engineer, automation projects can be immediately delivered in an impactful way. Many of these projects could, and should, be used to reduce the traditional workload on the team so that there is an increase in the team’s capacity to take on new work. In time and with mentoring there will be a shift in the teams ability to deliver more to the business through the use of network automation. The senior software engineer will be key in unlocking that capacity for the team.
Mentoring. Mentoring is the most important long-term benefit for hiring a senior software engineer into the networking team. Network vendors are pushing programming skills, and even certifications, as the next stage in the network engineers career evolution. Traditional network engineers are overwhelmed with the prospect of becoming a software developer. Network engineers do not need to become developers, but they can apply basic skills that will help them go a long way. A senior software engineer on the team can be their guide; help them with small projects, identify specific skills they need to be most effective, and enable a company to evolve the team at a realistic pace. Once a company begins to see the direct benefits of network automation they will always want more. A software engineer will be a coach needed to develop a bench of future automation practitioners.
Managing expectations. The single biggest challenge managers will face is forming realistic expectations in terms of time and complexity to complete network automation projects. Projects come in all different shapes and sizes. A senior software engineer is equipped to ask the right questions and produce more accurate estimates. Even the best software engineers and managers can tell you estimating is a hard and tricky process. A senior software engineer will be the best guide to establish a realistic set of estimates that will help manage expectations up and across a company.
Choosing the right approach. A network engineer generally has a small set of choices for each part of a network design, but in software design there are an infinite set of choices to make. An experienced software engineer can effectively choose the best set of technologies, tools, languages, libraries, and techniques — the right tool for the right job. A great engineer, whether network or software, knows the difference between a right solution and a right now solution.
Collaborating with other teams. Companies can have many teams such as an infrastructure tools team, a systems infrastructure team, a DevOps team, or any group of people that are “doing” automation … but not necessarily for the networking team. While those other teams exists they tend to have their own agendas and networking does not get any cycles from them. When a software engineer is embedded in the networking team that person can then “speak software” with those other teams and understand the technologies they use. Collaboration builds important organizational bridges that will strengthen the networking teams’ ability to deliver reliable automation solutions. The networking team can then choose the right approach as part of a collaborative effort which will build credibility around a network automation practice.
Software is eating the world and companies wants the networking team to have a seat at that table. If a company is serious about automating the network the headcount and hiring plans need to include a senior software engineer. One cannot rely on shared resources from other teams. Hiring a senior software engineer into the team will deliver the most impactful results. They will help deliver on near term project goals, mentor the team, create cross-functional organizational relationships, while building the network automation credibility the team needs for long term success.