This is a story about work...
Building software is no longer about programming. Programming is something that I learned as a child. Programming is quite literally child's play to me. Modern software development involves very little programming. Modern software development is all about delivering massive projects, with massive teams, in massive organisations, and none of this has anything to do with programming. Remarkably little programming gets done by programmers.
I would be surprised if the average number of lines of code written by a programmer in a big organisation was more than a handful a day. In fact, I picked a colleague - a programmer - at random and looked at how many lines of code they've written in the past year - an average of 8 lines per day. That's not a lot of programming.
So what do programmers do all day if they're not writing code? Well, most of them are sitting around scratching their heads, wondering where the problem is in millions of lines of code that they didn't write.
Why are programmers looking at other people's code, trying to find the problems?
Good question.
There are people out there who write lots of code, but most of them are software architects and devops engineers: these are developers. Developers don't just write code though. Developers create systems. Developers know how all the different moving parts fit together to create an entire system. Developers can design, build and assemble the components of gigantic software projects, into working systems. Sure, some of it involves programming, but none of it requires writing programs. Programs are for children. Children write programs. Programming is child's play. Developing software systems is grown-up work, done by developers.
There's a general belief that a programmer is an interchangeable commodity. If you don't like one programmer, fire them and hire another one who "speaks" the same language. Of course, this is idiotic, because programmers in big organisations write 10 lines of code or fewer per day. Most of what is useful and valuable is the specific knowledge which relates to an organisation and its software systems, which only the experienced team members know. Throwing more programmers at a problem makes things worse, not better, because they don't have a clue about anything, except how to read code... millions and millions of lines of code which they didn't write. There's nothing worse than somebody else's code.
The diagram above shows how software is shipped these days. If we were back in the 1980s then the diagram would show copies of a diskette being made and physically distributed, so that people could install it onto their PCs themselves. How software goes from a programmer's computer to your computer is kinda important. How do you think it gets there? Well, there's a lot of magic behind the scenes. The diagram shows the magic trick, but it's so incomprehensibly complex that it remains as good as magic, even though I showed you how the magic trick is done. This is just one tiny part of being a developer: understanding how to actually get software onto people's laptops, tablets and smartphones.
There are a million things a developer knows. They know about the cloud. They know about databases and data. They know about servers. They know about security. They know about performance. All of these subjects are vast. There are experts in every one of those subjects, and there are myriad experts in the specifics of each field. There is an incomprehensibly mountainous amount that a developer needs to know.
So, managers, stuff your spreadsheets up your arse. You have no skills, experience or knowledge which is relevant or useful in the field of software development. You are allowed to exist because you are a shit umbrella, nothing more. You are doing your job if you stop anybody from annoying the developers and programmers, allowing them to do their jobs, and you are being insufferably irritating if you attempt to intervene in the business of software, because software is hard.
Yes, software is really really really hard. It's harder than Excel pivot table macros, or whatever the hardest thing you know is. It's waaaay harder than that, managers.
So, butt out.
Shut up.
Let us do our jobs.
Engineers left to their own devices will produce wonderful things. All the things we take for granted in the modern world are a result of engineers being left alone to get on with building cool shit. None of the wonderful things would have come into existence if the engineers were bothered by some know-noting busybody bloody managers, who tried to interfere.
Tags: #work #career #computing