There's a narrative floating around that AI has made communication "the new most important skill" for software engineers. That we've entered some brave new world where writing code matters less and talking to people matters more.
I'd like to offer a different framing: communication was always the job. We just got distracted.
For decades, our industry mythologized the lone genius—headphones on, code flowing, minimal human contact required. We built hiring processes that tested algorithm recall. We promoted people who shipped features fastest. We created cultures where "I'm not a people person" was an acceptable professional identity.
And sure, you could build a career that way. Certain teams would enable you to thrive as an average communicator but excellent coder. But this was always a local optimum, not the actual shape of the work.
Think about what it actually takes to solve real problems:
Ask questions that reveal assumptions people didn't know they had. Facilitate trade-off discussions where there's no objectively correct answer. Push back on scope without burning bridges. Make judgment calls on things nobody thought to specify.
None of this is new. These skills have always separated engineers who merely write code from engineers who actually solve problems. The difference is that the industry is finally being forced to confront this reality.
AI coding assistants have gotten remarkably capable. The better the spec you give them, the better the output. But getting to a good spec is hard—and it always was. The gap between "what the ticket says" and "what actually needs to happen" has always existed. We just used to fill that gap with heroic individual effort instead of clear thinking and communication.
Here's what I find liberating about this moment: we can finally stop pretending. We can stop acting like engineering is primarily about typing syntax into an editor. We can stop treating soft skills as optional add-ons to the "real" technical work. We can acknowledge that understanding the problem is the work, and that understanding requires dialogue.
Software engineers are problem solvers. We like to believe every problem has a solution, a best practice. But the most important problems—the ones involving what to build and why—are fundamentally about people. They're messy. They require empathy.
This was always true. We're now being forced to admit it. Hopefully, like me, you think this makes the job only more fun.