TLDR of book
- There are more software development jobs than there are developers - demand outweighs supply
- Being a programmer in a corporation is a terrible financial deal, and the path to climbing the ladder through hard work is too slow to achieve within your lifetime. Corporations are not designed properly for software developers
- As a developer, the only way to get ahead in a corporation is abandoning programming and becoming an opportunist - but this means sacrificing your ethics
- Developers should quit corporations and create their own “efficiencer” firms, in which companies come to them with problems and these small firms design the solutions and create the software
- Opening chapters - fictional description of how the work of the future might look
- Talking about ridiculous (but widespread) hiring/performance review/compensation practices
- How to get ahead as an opportunist/sociopath in the corporate world (though why you shouldn’t)
- A vision for the future of work, and advice about how you can get there
“Programming is not a calling, and it’s not a craft. It’s just automation that increases top line revenue through product or reduces bottom line costs through efficiency.” from chapter 32, titled “The Programmer’s Escape Plan”.
This blunt statement is one of a number of examples in the book about the future of development work that made me reflect about my own career in software. I’ve never really been one to be obsessed with ‘the craft’ of development, but I am sure that sentence would annoy a number of people I have met before.
There was plenty of accurate skewering of my own attitudes though. The pragmatist viewpoint is summarised by someone I work with - his internal profile on an app we use says something along the lines of “I have a real passion for staying alive and earning money allows me to accommodate that.” Pragmatists, according to Dietrich, accept the status quo and justify their lack of ambition by saying they don’t care about the job anyway:
“Pragmatists have their real thing that they care about, and it isn’t the job they’re doing. This is an entirely rational means of ego salve, similar to a teenager making a big to-do over how he doesn’t “believe in” the prom because of some philosophy or another that he’s adopted. Getting dates isn’t easy and the attempt may mean embarrassment, so it’s a lot safer to create a choice narrative around not trying in the first place.”
I.e. Pretend not to care, because it’s easier than accepting that you aren’t going to make a difference in your company. Not that Dietrich accuses ‘pragmatists’ of being lazy, but the descriptions were fairly spot on in places and made me laugh in self-recognition.
Getting ahead in the corporate world
Although Dietrich is at pains to state that he does not endorse any of the methods he gives for corporate advancement, the section where he talks about how to become an ‘opportunist’ within a corporation is fascinating in a morbid kind of way.
A memorable example he gives is of this: say you’ve taken over management of a team, and you realise they aren’t going to deliver a project on time. You have to spin the narrative that makes yourself look good, so you decide that the narrative will be that this team is overcommitting and underdelivering, but you will sort the problem out afterwards. To really make the point, you identify a team member who vocally commits to getting work done, talk to them privately, and encourage them to keep up the behaviour. Now this team member is even more vocal, and you can make the point to superiors that this problem already existed in the team, you didn’t identify it quickly enough, but you will sort it out - rather than the alternative narrative that you just couldn’t organise a team. There’s no evidence of your conversation with the team member - but plenty of evidence of him/her committing to too much work in meetings.
This example (definitely not advice!) is fairly immoral but I found this whole section to be really interesting, and in this case - pretty funny.
In fact, some of the most entertaining sections are Dietrich describing what is so wrong with the current state of work for software developers. I won’t go into much detail but you can tell just from some of the chapter names:
“Interviews, Induction, and Nonsense” “Performance Reviews and Advancement Theater” “Your Company Doesn’t Care About You” “The Madness Of It All”
In the chapter about interviewing:
“the job interview is a process that was dreamed up on a whim about a century ago, never worked in the first place, and hasn’t been altered since. Unsurprisingly, they haven’t magically started working.”
Although Dietrich acknowledges that he still interviews people because there isn’t (yet) an ideal alternative (although one is given in the ideal future work scenario that he envisages).
Any developer will have experienced the kinds of nonsense he describes in these chapters, and I took some definite pleasure in him being so scathing about it.
Sidenote : interviews
Personally, I think the current best way of doing this is to do real work with an interviewee - get them to do a project for 2/3 hours and then come in and talk it through. Possibly with a bit of pair programming between an employee and interviewee. However, this is really time-consuming for a candidate who has to do this for even a moderate amount of companies. Dietrich says he does a similar process.
A Corporation of One
One of the most interesting bits of advice is to stop thinking of yourself as an employee of a particular company, and that opportunists think of themselves as “single-person corporate entities unto themselves”:
“This may seem like a silly mental exercise at first blush, but its impact is profound. If you’re a software engineer, your boss asking you to put in a few fifty-hour weeks ahead of the upcoming release is perfectly reasonable, if something of a bummer. But if you’re a free agent, your client asking you to work ten hours a week for free is perfectly preposterous. The difference in thinking is that it’s now reasonable is for you to ask, “Why would I do that? What’s in it for me?””
He is keen to emphasise that his methods for getting ahead in the corporate world are not advice, simply fact. His real advice is for how to move towards his vision of working in very small firms which are essentially contractors.
He gives practical advice about how and why you should promote yourself and how to do it cough blog cough, and other more dramatic advice such as leaving your current job if you are a programmer because you are already pigeon-holed and the only way to escape that is to escape the company.
This book was a great mix of scepticism about the current environment and positivity about the future. Dietrich’s descriptions of future app dev firms (and what they should morph into) really grabbed me and I will be trying to do some of the things he advises to move in that direction.
I would highly recommend reading this book, especially if you are a software developer.