There is No Place in IT for Pretenders Who Don’t Code

I know that the title of this post is click-baity and inflammatory. Before you go all Gaston and LeFou on me, put down your implements of late-night gardening, and let me clarify…

IT is at its very best, the Shangri-La, when IT harnesses the broad world of technology to help the business do business better; gaining familiarity with new hardware, software, and techniques and bringing that knowledge to the business to drive adoption of technologies that produce business value or enhance existing processes. IT should be in the driver’s seat, making possible the most effective use of technology to help the business.

Servers need administering. They need operating system updates. They need configuration management. Quality assurance is critical to the delivery of IT services. Third-party software needs patching. Identity management and role-based access control are important. Penetration testing finds defects that would have otherwise left the business vulnerable. There are a myriad of responsibilities that land on the shoulders of IT professionals.

There are jobs… good jobs… with a purpose within IT.

Despite all that, the writing is on the wall. With the advent of so called “Infrastructure as Code”, containerized workflows using overlay networks, (a crude form of “Software Defined Networking” or “Networks as Code”), and “Configuration as Code”, software is again eating the world. In modern, cloud-centric workflows, there’s no racking and stacking; there’s no cabling; forget ISOs and install media; a couple of clicks in a portal, or a few commands in a remote shell, and BAM! A server appears. With all of this outsourcing to cloud providers, your typical IT professional is left with what looks like an ever-shrinking set of responsibilities.

So what is a poor IT professional to do? What he or she thought was a stable and lucrative career is now evaporating. Those damn software geeks are ruining everything!

If that’s how you feel, it’s time to level up your career, and learn to code.

Stop! I can see you reaching for the torches and the pitchforks again! I didn’t say anything about learning to be a software engineer. There are many coding tasks that have nothing to do with building applications:

  • That script you wrote to install the Expense Report application on user terminals after hours? CODE.
  • That JavaScript bookmarklet that fills in the form on that screen you were testing? CODE.
  • That set of cURL commands you used during penetration testing to verify proper access control? CODE.

People have this mistaken notion that code has to be this big complicated voodoo practiced only by those graduated from the ivory towers of computer science academia. Bull shit! If it executes a repeatable, automated set of steps, and those steps result in value creation for the business… IT’S CODE!

Those VMs that you rent from Microsoft (or Amazon, or Google)? They still need administering! They still need operating system updates! They still need configuration management! QA is still critical! Third-party software still needs patching! Identity management and role-based access control is more important than ever! Penetration testing still finds vulnerabilities!

What’s changed is how you interact with those assets. How you do your work needs to change to accommodate. Coding is how work in IT is going to get done in the future, and there’s no indication that the trend is going to anything but accelerate.

Infrastructure as code allows you to describe dozens (if not hundreds) of pieces of hardware in a few lines of declarative code. Networks as code will in the future describe, declaratively in some format, the topology of your network that will either be overlaid in software, or pushed as configuration to real hardware firewalls and switches. Configuration as code will allow you to describe, again declaratively, what software packages to install, what operating system modules to enable, and what access controls to impose.

Cultural movements like DevOps are sweeping the industry. Your stakeholders in IT projects expect you to deliver servers in minutes, not weeks. They expect OS updates and third-party patches to happen automatically in rolled deployments to eliminate downtime. They expect nodes to join and leave clusters in response to peaks and valleys in demand, each node an exact configuration duplicate of all of its brethren. Tests for functionality, defects, code quality, and vulnerabilities should run automatically after every build, not when someone “gets around to it”. User accounts should be quickly and easily provisioned, and they should have access to the right things from jump.

This is all achievable, and IT’S ALL CODE. So be a professional, and learn your discipline’s version of coding. It just might save your career.

What are you experiences with coding within your organization? What sort of things have you coded? How do you share that code? What was easy, and where did you experience problems? Please share in the comments section below.

2 Replies to “There is No Place in IT for Pretenders Who Don’t Code”

Comments are closed.