Hey Engineers, Let's Stop Being Assholes?

2013-05-30

There's this toxic idea in tech circles that's starting to get really tiring. And it pains me to have to point this out because I could just blissfully go along with it, and give myself that self-congratulatory pat on the back that most of the tech world is doing on a nearly daily basis.

It's the elitism. There's this culture (cultivated by engineers) that worships engineers and shuns everyone else for not 'being technical.' This culture is backwards and counterproductive. It presupposes that engineering is the only thing that matters, the only discipline with smart people, and that therefore everything else must defer to it.

There's a reasonable origin for this line of thinking. Back in the dot com days, business majors were raising 50 million to make online wedding invitations and going public because they had a homepage. MBAs were looking for some engineers to "code up this idea quick," as if the tech part of a tech company was just this checkbox that needed filling. As if engineers were these interchangeable cogs in the machine of a startup. Of course, those tech companies imploded and for most of them, technology wasn't the primary cause. But even really great business ideas often failed for lack of technical expertise. It turns out people who don't know how to create software are also terrible at recognizing how important (and hard) it is.

But the reverse is also true. And that's how far the pendulum has swung in the other direction. There are lots of engineers proudly proclaiming that everything that isn't engineering is just some checkbox department filled with warm bodies who weren't good enough to be programmers. As those in the know have known for a long time, it turns out things like business development and "having customers" is pretty important too. It turns out people who don't specialize in a non-technical role are also terrible at realizing how hard and important it is.

Which brings me to the general observation that everyone thinks their job is obviously the most important and indispensable. Not surprisingly, everyone is wrong, but engineers have convinced themselves that because the MBAs were demonstrably wrong about engineering, engineering must be right. Which is just a logical fallacy wrapped in wishful thinking sprinkled with the chocolate covered bacon bits of all your friends who also happen to be engineers agreeing.

This false premise (engineering is everything) leads to all sorts of crazy conclusions. One of them is that everyone should learn to code. This is stupid, and a waste of time. There's no substitute for computer literacy, but saying everyone should learn to code is like saying everyone should learn to drive manual transmission and change their own oil: cars are everywhere! Cars are the future! If you don't drive, you will not be in control of where you are driven! This kind of alarmist propaganda is nonsensical and should be laughed out of the room. The whole point of software engineers is so other people don't have to code!

This phenomenon coincides with a related one that also annoys me: the insinuation that being an engineer automatically demonstrates your superior intellect. The recent shortage of engineering talent in the US exacerbates this feeling, because it's easy to conclude that the problem is because people aren't smart enough to become software engineers. Actually, it's mostly[1] because 1) most people think programming is about as sexy as mopping floors, and 2) for the past decade, smart people who just wanted to make money could make more for the same hours and less risk - in finance.

Software engineering is actually not that hard. There, I said it. Basic computer science type education and work is not much harder, conceptually, than intermediate calculus. The majority of the population is capable of being taught, and understanding, intermediate calculus. We know this because lots of countries teach both in middle school. QED.

This means that being a software engineer is not beyond the intellectual capacity of the average joe[2]. It also means engineers need to stop waving their diplomas around like they're computer astronauts. It makes us all look like elitist assholes, and it's holding back our profession.

[1] Ignores our immigration problem, since it's better if this isn't about politics.

[2] Speaking strictly about proficiency, of course. We all know there's a very high skill ceiling, and being a "great engineer" is a whole other ballgame. But this too has lots of external factors not related to innate skill.