Please Don’t Remove My Life-Support System
The following really happened to me in my software developer life. I think it’s happened to you as a software developer too, unless you haven’t had too much (negative) experience as yet.
IT support thinks that setting up a laptop consists of cracking open a laptop and adding a Wi-Fi password makes you good to go and be a productive member of corporate society. Perhaps if you’re a software developer you might need to install an IDE, but what is that anyway? Software developers can install that themselves, so all is good. Right?
This fantasy world understood by IT support is adorable. It’s also completely wrong.
The “Quick Setup” Myth
Most people think that setting up a machine won’t take a competent developer much time. I mean, you have the SSH keys installed so why would it take more than a few minutes to set up?
I actually got asked by our IT support team why developers try to hold onto their “old” laptop when given a shiny new MacBook Pro. Well, here is the answer.
Setting up a development machine is like making a cake, under stress while Jira tickets stack up in the background. The wider software development environment is clear from the standup where you need to justify what you’re doing each day and why your tickets are not finished. Because why haven’t you done that is the most important question of all.
That’s tough enough, but you also need to run a script written by someone who left the org three years ago that fails on your setup (and only your setup).
Issues
Support has targets around what is required for a “successful” setup. In some places this is just when the laptop is delivered and the VPN is connected. The attitude is that you’ve got email, you can work.
This is very different from the needs and expectations of developers. You need to build the project, run the local tests and be able to push. You might need to do this all through multiple projects and multiple repositories.
Solutions, solutions, solutions
Support might say “We’ll wipe the machine and start again”.
Even when support told me to wipe my cookies from Chrome for a problem (unrelated to that, of course) they cost me hours. They don’t seem to recognize that you need to be able to code and use tools, and we’re battling against incomplete documentation and assumptions.
Developer machines aren’t easy fixes like installing Word on a freshly imaged machine.
The On-Call Reality
Office-Hours workers often do not recognize on-call thinking. When setup takes days rather than hours (and you need approvals that are only possible when a certain individual is in the office and available to sign off your access) you’re in a world of developer hurt.
When you’re on call and an incident hits in the middle of the night, you don’t have time for anything other than the nuts and bolts of the incident itself. You’re never going to be in a position when waiting for support to “pick it up in the morning” is acceptable for anyone involved in an incident.
Sometimes developers need a machine which works. Right now. Being unable to deliver tickets in time is one source of stress. A 3 a.m. call you’re unable to debug is quite another. This makes the whole situation an organizational error rather than something individual developers should struggle with, but here we are.
Cross Purposes
Support teams are incentivized to minimize variance and control cost. This is different to developers who need deep system access to get things working under pressure.
It’s not like either side is evil. But the result is our company where you need to swap machines within a few days of obtaining a new one. You’re given pressure to get your setup working, and this isn’t understood in concert with the on-call rota.
This misunderstanding of the pressures around software development is prevalent even within tech companies. You also need to create a pull request with impact within your first week at the business. I mean, seriously. It feels like the whole company is rather against us software developers.
A Solution
This is another article that is basically a rant against the barriers set up against software developers just doing their work.
The thing is, there are some radical ideas that shouldn’t be radical at all.
We should treat developer machines as critical infrastructure, because who else is going to fix the issues that we need fixed within the organization.
We need to invest in documentation. As always.
We should accept that on-call engineers need elevated access, and be prepared to give people that access.
Involve developers when defining “standard builds” and lining up IT support targets with company and development targets.
A working developer machine is not a perk. It’s the bare minimum required for the job. It’s time we gave people support in their work, or is that too much to ask for?
Final Thought
Support often sees laptops as assets. Developers see them as tools. On-call engineers see them as the difference between a short incident and a very long night.
If you want reliable systems, start by making sure the people fixing them can actually log in.
About The Author
Professional Software Developer “The Secret Developer” can be found on Twitter @TheSDeveloper and regularly publishes articles through Medium.com
The Secret Developer hates setting up new machines.