There's more to software development than coding

Like many software developers, I’ve been considering the future of my profession in the face of AI.

AI can write code. Our job is to write code. It seems natural that we’d be replaced by AI, no?

But recently I've been considering the warning we give to up-and-coming hot shot coders. Folks flying through college, winning coding competitions, and slaying algorithms. We tell them: there’s more to software development than coding.

Here’s a (non-exhaustive) list of things I do that isn’t coding:

  • Refine vague requirements into well-defined tickets.
  • Spot gaps in design or unconsidered corner cases in logic.
  • Explain technical concepts to less-technical teammates.
  • Debate software tradeoffs when the team is coming up solutions.
  • Align the team on new architectures and coding practices.
  • Communicate project status & estimates to higher-ups.
  • Mentor newer developers in how to do all of the above.

Oftentimes, the more senior the developer, the more they handle collaborative tasks. Thus they write less and less code!

Also, here’s a dirty little secret: a good software developer sometimes steps outside the bounds of their defined role as well. Throughout my career, I’ve moonlighted as quality assurance, designer, project manager, product manager, engineering manager, even marketing. Not because I wanted to (and I certainly wasn’t very good at it) but because someone needed to fill a gap.

In retrospect, even before AI, a sizable portion of my job wasn’t about writing code. And I suspect that being good at the non-coding parts of software development will continue to be a skill that’s in demand, regardless of how good AI gets at the actual coding part.