The Surprising Social Side of Software Engineering

April 28th, 2024

When I first got into programming, I always pictured myself as that lonesome hacker. With a hoodie, in the darkness, focusing on my computer.

I’m an introvert. Gaming was the same for me. Alone with my computer. Programming seemed perfect. It meant working solo, right?

But studying Software Engineering showed me there's much more than coding.

A lonesome programmer in the dark. Which is not what software engineering is about
A lonesome programmer in the dark. Which is not what software engineering is about

You must be able to gather requirements. Design your software. Assess different tools, figure out the best one for the job. Implement it. Sometimes with a small team. Other times with dozens, or even hundreds of people.

And the key task? Communicate.

Effective communication is tough. It's a skill I work on daily. Recently, I've led several projects at work. I wasn't only programming. I was building something from start to finish. And that involves much more than coding.

Here's what it takes:

  1. Manage expectations and provide estimates for business partners
  2. Keep everyone informed about the project's progress
  3. Know what you know, and identify what you don’t
  4. Seek expertise when needed
  5. Coordinate team roles and responsibilities
  6. Define and track success metrics
  7. Create a test plan and update any on call documents
  8. After delivering the project, monitor your metrics, create dashboards, and analyze the impact
  9. And figure out your next steps from here

And, between all these steps, what do you have to do? Constantly talk to other people. Maybe in person, or in a doc, in a call, At each step, you must communicate. Whether in person, through documents, calls, emails, Slack, or project management tools.

As you gain seniority, communication becomes crucial.

You can only impact so much by coding alone.

Leading a project, or even a company, involves much more than software. It's about forming deep connections with your team and customers. It's about ensuring you're building the right thing.

As a software engineer, constant communication is part of the job.

Our role is to deliver real-world value through software. Coding is a means to an end, not the end itself.

Software engineering is more social than it seems.

Embracing the social aspects of software engineering can transform your career. It's not just about writing code; it's about building relationships and leading effectively. The better we communicate, the more significant our impact.

As engineers, our challenge is to be as proficient in our interactions as we are in our coding. That’s how we create not just good software, but great products that meet real needs.