On Our Supposedly Dystopian Future
Posted by Aaron Massey on 16 Jul 2014.
Ed Finkler’s recent post on the developer’s dystopian future is one of three posts I’ve read recently that have almost been ruined simply based on their titles alone. Here’s the essential thesis of the post:
My tolerance for learning curves grows smaller every day. New technologies, once exciting for the sake of newness, now seem like hassles. I’m less and less tolerant of hokey marketing filled with superlatives. I value stability and clarity.
Ed also emphasizes that he spends more time with his family, which limits the amount of time he is able to spend on his computer. He is “scared that either the job ‘web developer’ is outpacing [him], or [his] skills are atrophying.” He hopes to “still have something to offer,” but he doesn’t know what it might be.
The title of Ed’s post is both misleading in that it applies something he was feeling to every other developer and in that it supports stereotypes about older programmers. I concede that creating a good title for a blog post isn’t easy, but lately I’ve seen some rather badly titled posts. I wrote about Philip Guo’s at-best debatable title for his post on Python as an introductory programming language. I commented on Mark Guzdial’s misleading title for his discussion of Sebastian Thrun’s comments on free MOOCs. And now there’s Ed Finkler’s title, “The Developer’s Dystopian Future,” which might be the worst of them all.
Ed is worried about something he’s experiencing as a developer and writes about it. It’s extremely important for professionals to be self-aware, and writing publicly about important topics is a great way to do that. (For that matter, I think both posts by Philip Guo and Mark Guzdial are also important.) The problem is that Ed doesn’t provide any evidence that his feelings are representative of the developer community at large. Except in the title. That doesn’t mean his concerns aren’t widespread among developers, but neither does it mean they are.
Others are offering their own apocalyptic thoughts on Ed’s post. Consider Matt Gemmell’s Confessions of an ex developer:
The truth is, I actually find the software development world really frightening.
…
There’s a chill wind blowing, isn’t there? I know we don’t talk about it much, and that you’re crossing your fingers and knocking on wood right now, but you do know what I mean.
…
It sometimes feels like my former homeland is burning itself to the ground.
What? Seriously? There’s a ridiculous shortage of good, experienced developers out there because there’s a ridiculous demand for huge amounts of software that desperately needs to be written as soon as possible if not sooner. We are still at the beginning of the computer revolution. If you could pick any career in any time period throughout all of history, software engineer, circa 2014, would almost certainly have to be in the top five. Matt: What the hell are you talking about?
Consider also Marco Arment, responding to Ed Finkler’s post:
Read the whole thing. It’s tempting to quote it all.
I feel the same way, and it’s one of the reasons I’ve lost almost all interest in being a web developer. The client-side app world is much more stable, favoring deep knowledge of infrequent changes over the constant barrage of new, not necessarily better but at least different technologies, libraries, frameworks, techniques, and methodologies that burden professional web development.
The Hacker News comments also seemed to focus on web technologies as they relate to Ed’s post. I agree with Marco that web technologies feel less stable and faster moving, and I don’t have a problem with Marco, or anyone else for that matter, choosing personally not to focus on those technologies. It is legitimately hard to keep up with the pace of web development. Still, my response to Marco or anyone else thinking along these lines is the same: consider the alternative.
The alternative is that the web stops changing or starts stabilizing and we’re stuck with what we have now. That’s terrible, particularly for security and privacy, which is ostensibly the focus of this blog. Think about all the implications for web technologies resulting from the Snowden revelations. Think about the state of secure email services. Think about the state of cloud infrastructure. Can you even name one web technology that’s perfect as it is right now?1 If I had to name one set of technologies that are desperately in need of massive change, it would be web technologies. If I could speed this industry up with by waving a magic wand, I would.
Finally, I wanted to address the worst implication from Ed’s post: that technology is “a young man’s game.” The tech industry is biased towards the young,2 but there’s no reason for this bias. The bias is apparent in questions like this one from Quora and this one from Stack Exchange. Age-based bias is one of the most damaging things in the software industry, and Ed’s title re-enforces this thought. The title alone re-positions the piece from being heartfelt: “Hey, I’m worried because I’m noticing that my approach to technology is changing in ways that I didn’t think it would when I started out.” To being misleading and re-enforcing stereotypes: “Yep, I’m becoming a technological fossil just like everyone predicted for developers.” There’s no reason to push the post in that direction.
In reality, we have empirical evidence that the opposite is true: Older developers are actually better developers. Patrick Morrison and Emerson Murphy-Hill, colleagues of mine from my days at NC State, examined more than 80,000 programmer profiles on Stack Overflow and found that programmer reputation increased relative to age “well into the 50’s.” They also found that programmers in their 30’s focus on fewer areas of technology than those in their 20’s, which confirms Ed Finkler’s feelings are normal. The paper is short, and I encourage you to read the whole thing.
I’m not at all convinced that a rapidly changing technology industry favors the young. Consider this complaint from Ed’s piece:
At my day job we primarily use Python for our server side stack. I like the language, but I still feel like I don’t really know what I’m doing with it. I have 15 years of PHP under my belt, so I often know what I want to do, but not how to make it happen in Python. I don’t feel like I really grok the module system. I definitely don’t understand the class system. What the hell is a generator and how does it work the way it does? I am so lost.
I’m not sure what the problem is here. If you were an inexperienced developer, then not only wouldn’t you understand the class system or know what a generator was, but you also wouldn’t know what you wanted to do. And frankly, not knowing what you want to do is a much bigger problem than not knowing how to do it. Besides, the novice wouldn’t know either of these things.