SVLuma - Fotolia

Network engineering skills should include software fluency

Network engineers need to rethink their network engineering skills and embrace software fluency training to meet business needs for modern network infrastructure.

After some initial years of resistance, network engineers increasingly understand the need to hone their software-based network engineering skills, rather than cling to traditional networking processes, according to ZK Research principal Zeus Kerravala.

Kerravala, who moderated a recent Cisco webinar on the evolution of network engineering, said digital transformation is driving the realization that change is required. That means engineers need to be comfortable with software-enabled network engineering skills and network automation.

"We're moving into a world that's a lot more network-centric," Kerravala said, and the network's role is ascending as a result. "If you look at a lot of the digital building blocks -- things like internet of things, mobility and cloud -- they are all network-centric in nature," he said.

The evolution of the network means enterprises -- and the engineers they employ -- have to learn how to harness software to both run the network and to connect to other platforms through orchestration. This shift is driving the formerly separate worlds of applications, networking and infrastructure to come together. The network needs to change so it doesn't hold companies back, Kerravala said.

Kerravala and a panel of experts offered network engineers advice on how to increase their software skills and gain experience in network automation that ranged from learning programming languages, to earning certifications, to undertaking small automation projects on the job to gain experience.

In the digital era, network engineers and architects "need to speak the software language -- not be developers, but mainly be able to hold the conversation with software developers," said panelist and Cisco Certified Internetwork Expert (CCIE) advisory council member Abdel Rezk, lead solution and network architect at World Wide Technology, a systems integrator based in Maryland Heights, Mo.

Other network engineering skills engineers should learn, according to Kerravala, include the following. "Enterprises can only be as agile as their least agile component, and that has been the network," he added.

Playing well through DevOps

Enterprises can only be as agile as their least agile component, and that has been the network.
Zeus Kerravalaprincipal and founder of ZK Research

In the past, most network performance problems stemmed from a disconnect between networks and the applications that ran over them. In the age of networking, DevOps is taking a bigger role, which means modern application environments have a greater degree of network integration built in from the beginning.

"DevOps was built on the principles of rapid development and continuous innovation, which drives the network to be something that can be a lot more agile and updated almost on demand," Kerravala said. But to make that work, you can't give app developers the requirement they need to be able to interface with the network through command-line interface. That's why there's been more work done in the APIs and programmable networking.

Network professionals need to think of the network as something that extends all the way to the cloud, which means it must align well with DevOps, provide application continuity and enable network automation.

"I think a lot of engineers were afraid automation was going to take away their jobs. But, frankly, they can't do their jobs without automation today," Kerravala said.

The need for software-based network engineering skills

As a result, software fluency is becoming a necessity. You don't have to be a software developer, but you need to be software-fluent to work with network infrastructure today, Kerravala said. "You need to learn basic programming skills."

Network engineers need to adopt orchestration tools such as Chef and Python, which are commonly used by enterprise application developers, Kerravala advised. Rather than learning more network protocols, engineers' focus should be on improving their level of software fluency, he added.

To that end, Kerravala said network engineers should stop performing tasks that aren't considered strategic to their companies or to their résumés. This means network pros should find a way to automate the mundane and the undifferentiated chores, which will free up time needed to gain network engineering skills and work on innovation.

Joe Clarke, a Cisco distinguished engineer who also participated in the panel, said he initially found resistance among fellow Cisco network engineers who had a passion for networking, but little desire on the development side. Over the years, that attitude changed, as Cisco started opening up its interfaces.

"We started to develop an architecture whereby tech engineers could write Python scripts that would chain together, and these huge, long files would be able to provide insights," he said. Ultimately, Cisco built a culture of development, automation and software fluency in the organization. "That's what we want to tell our customers," Clarke said. "'If you do this, more exciting things open up to you.'"

Jose Bogarin Solano, chief innovation officer at Altus Consulting in Costa Rica, said his engineers started learning Python because it's a language that's easy to learn and a lot of networking-related technologies use it. He also suggested engineers should consider investigating Cisco's developer program. The initiative is designed to help developers and IT professionals -- who want to write applications and develop integrations with Cisco products, platforms and APIs -- learn about software development in terms of networking.

Once network pros have begun to learn some software skills and understand APIs, Cisco's Clarke recommended they look around their organizations and see what mundane things can be automated. Start small, then expand from there, he said.

Other resources include Learning at Cisco, which offers courses aimed at helping engineers learn to apply automation techniques with a network-centric focus, and a developers' course for software professionals who want to merge that expertise with networking.

Cisco is also looking to fold in emerging technologies such as network programmability into its CCIE certification program.

Dig Deeper on Networking careers and certifications