There's growing pushback against the idea that network engineers must become programmers in an SDN world.
A common refrain about SDN is that it will force network engineers to become programmers as they grapple with APIs and more highly automated environments. Certainly there’s significant demands on network to speed up provisioning and increase scalability to match what’s possible with virtual machines. One way to meet these demands is via programming.
This view was succinctly stated by Arpit Joshipura, VP of product management and strategy for Dell Networking, who said “You need the network to be programmed, not provisioned. That’s the fundamental change that will happen.” Joshipura made this remark during the “SDN Gets Down To Business” panel at Interop Las Vegas.
However, this remark was countered by panelist Dominic Wilde, who said “Part of the problem is that we’re saying you all have to become programmers overnight. That is not true.” Wilde is VP, global product management, for HP Networking.
Wilde noted that vendors are building SDN products to abstract the complexity of the network and simplify things for network engineers. “You don’t need any programming skills at all,” he said. “This is the fallacy we have to start moving away from.”
He noted that some enterprises will want a degree of programmability and will code to northbound APIs, but they are likely to be large organizations that can afford to hire those skillsets.
Panelist Steve Shah, senior director of product management at Citrix, noted that “suddenly being told to go learn Python because you need an API to configure this new device is a non-starter.”
Network engineers who might be worried about their employment prospects can take comfort from another of Shah’s comments: “We need the existing folks who have built these networks. It’s not just about the technology but the business processes that drove them. If we don’t bring that knowledge with it, we’ll just have a bunch of programmers who don’t understand the business processes that drove IT in the first place.”
Yet he also noted “If I want a more malleable network to make it easier to do a rollout, programming skill comes into play.”
So what do network professionals think? Greg Ferro tackled the programming debate in a January blog post, writing “…all network engineers should learn to program to gain insight into the applications and systems that are our customers. Let’s face it, applications are the direct customers of the network.”
That said, he also notes “a very small number of network engineers” will acquire programming skills, whether in scripting or in a structured programming language.
If you decide to be one of the few to add a programming arrow to your quiver, Teren Bryson has advice for network engineers and administrators who want to know where to start. He recommends Linux and Microsoft shell scripting before moving on to a language such as Python.
Meanwhile, Jason Edelman details his travails in trying to decide which language to tackle, and his experiences getting to grips with several Web frameworks.
If there’s any consensus here, it seems to be that some familiarity with programming will be an asset, though not necessarily a requirement, in an SDN world. If you’re a network pro, what’s your take on the programming debate?
Drew is formerly editor of Network Computing and currently director of content and community for Interop. View Full Bio
We welcome your comments on this topic on our social media channels, or [contact us directly] with questions about the site.
2018 State of the CloudCloud adoption is growing, but how are organizations taking advantage of it? Interop ITX and InformationWeek surveyed technology decision-makers to find out, read this report to discover what they had to say!
The Next Generation of IT SupportThe workforce is changing as businesses become global and technology erodes geographical and physical barriers.IT organizations are critical to enabling this transition and can utilize next-generation tools and strategies to provide world-class support regardless of location, platform or device