Every week I see somebody ask “will all Network Engineers be programmers” on Twitter, LinkedIn, at a trade show or just to be antagonistic and for no other reason than to start an argument.
The anger inside has been brewing for over 12 months until the pressure valve finally released in the form of this blog post. Expect snark.
What is a programmer anyway?
Lets clear something up. IF YOU CAN WRITE ONE LINE OF RUBY YOU ARE NOT A PROGRAMMER. The Programmers of myth and legend are these days referred to as “Software Engineers”, “Software Architects” and sometimes even “Hackers”, “Coders” or “Code Monkeys”. What they “do” - is build software for a living.
So what about Networking Engineers?
The networking industry can be broken in to four main segments:
Network Operations - These folk keep networks running. They eat support tickets and are seldom let out of their cages.
Network Architects - These folk run around data centers with whiteboards and sharpies and draw clouds. Consultants fall under this designation too. Occasionally these guys get their hands dirty and pick up a console cable but most times they are cooking up the most complicated solution to a simple problem.
Vendor Monkey - These folk work for a vendor and do vendory things. They live behind closed doors.
Sales and Presales - These folk are responsible for selling network stuff. Sales guys typically don’t understand what they are selling, so they have a pet Presales engineer. This guy used to be an Architect but now draws clouds in the board room instead of the data center.
Introduce SDN to the equation and you are left with 4 questions
Do I need to be a programmer to sell networks? - NO
Do I need to be a programmer to be a Vendor Monkey? - NO unless you are one (a programmer) already and then YES
Do I need to be a programmer to architect networks? - NO
Do I need to be a programmer to operate networks? - NO
That last one might be a bone of contention so let me elaborate… Today your switches and routers run a Network Operating System ( that has been developed by Software Engineers by the way) and today’s Network Ops are not programmers…. This is because you are an end-user in the world of software. When things go wrong you are expected to troubleshoot and when you have proven that it’s not your fault, you raise a ticket with your vendor. THIS WILL NOT CHANGE. It’s my firm belief that most SDN deployments will be using Commercial Off-The Shelf (COTS) software and COTS management tooling. The only thing that SDN brings is the option to choose your NOS and the vendor for value add applications.
Don’t be a luddite
If you are interested, then go ahead an pick up a book on Python or Ruby. Being able to write scripts and automating things is a great tool and is almost mandatory as network ops heads towards DevOps. The way we do IT operations is changing so don’t be a luddite otherwise you will get left behind.
Surely programmers will need to speak Networkese
If we as an industry force every Software Engineer to learn “Networkese” then we are doing it wrong. The industry needs to focus on getting the architecture and abstractions right so that business applications don’t need to speak “Networkese”. Network-level applications will always need to have some understanding on “Networkese” and for the most part these are developed by companies with a history in this area.
If you are going to ask “will network engineers need to be programmers” then STAHP IT!