Things I Believe About Software Engineering

Feb 1, 2020

Inspired by Jan Stette's "Things I Believe" post, I decided to write down some of the more contentious beliefs I have about software engineering. I've selected some of my more extreme opinions here, so I expect reasonable people to disagree with me. That's ok.

  • Writing non-trivial software that is correct (for any meaningful definition of correct) is beyond the current capabilities of the human species.
  • Being aligned with teammates on what you're building is more important than building the right thing.
  • There are many fundamental discoveries in computer science that are yet to be found.
  • Peak productivity for most software engineers happens closer to 2 hours a day of work than 8 hours.
  • Most measures of success are almost entirely uncorrelated with merit.
  • Thinking about things is a massively valuable and underutilized skill. Most people are trained to not apply this skill.
  • The fact that current testing practices are considered "effective" is an indictment of the incredibly low standards of the software industry.
  • How kind your teammates are has a larger impact on your effectiveness than the programming language you use.
  • The amount of sleep that you get has a larger impact on your effectiveness than the programming language you use.

I've omitted explanations of why I believe these things, mostly so that I could get this post out the door at all - each one of these could easily be it's own blog post. Think about them for a bit, and possibly you'll find them compelling :)