Categories
Soft Skills Software Development

Software developers need to learn social skills

As a programmer with over a decade of professional experience, I’ve come to realize that programming is not just about computers.

When I was starting out, I thought that I would have to work on projects with almost no human interactions.

After finishing University, in my first year of internship, it was almost true. I attended meetings, but I did not have to participate in making decisions. However, after a year, things began to change gradually.

If you are about to choose programming, solely to avoid human interactions, beware that you will not be able to advance from Junior roles, or you will have to specialize in a way where people only rely on you for very niche problems. With that, it will be hard to find jobs. However, it can still pay you a lot when you find one.

As soon as I got comfortable with the tools I needed to use to make solutions work, I ended up having more and more responsibility of:

  •  talking to business people with domain knowledge
  •  working with colleagues with different areas of expertise to solve the same problem as a team,
  •  or having to work with other programmers on different experience levels.

Until now, in 99% of my time, I was focusing on my hard skills. Learning design patterns, ever-changing new tools, software architecture, basic dev-ops techniques.

Now I’ve come to a point where I see more value in learning soft skill:

  • How to interact with people
  • How to guide less experienced developers
  • How to negotiate with business people
  • How to work together with generally everyone
  • and learn from more experienced people.

I could make a long list of examples where it is more useful to have strong soft skills than having strong hard skills.

Especially in the age of AI, although hard skills are still very important, as software developers, our role will shift more and more toward:

  • human and project management
  • handling AI
  • Managing less experienced Developers
  • delegating tasks while understanding what the business needs, and still aligning with the architecture of existing solutions.

We will still need Junior developers, who will translate tasks to AI, and make sure together they can come up with code solutions.

We will still need Medior developers, who can solve more complex problems, while teaching Junior developers to navigate complex coding tasks.

We will still need Senior developers, who can understand the broader architecture of a software, and the weight of programming and architectural decisions made, to the long term goals. Both in software speed, maintainability, complexity, configurability, etc.

Above that we will need team leaders, and programmers who can:

  •  Adequately talk to business people
  • find a common , doable goal and solution,
  • to break down business needs into implementable coding problems and tasks, that software team can deal with.
  • These team leaders will need to understand both the language of business, and the language of software developers.
  • These people will need to be able to satisfy the needs of both party, while resolving everyday conflicts, making sure everyone is happy enough with what they get and what they need to deliver.

At this level, the complexity is not coming from coding projects, maybe a bit with legacy architectural problems. The complexity comes from handling human expectations, needs and emotions. This requires the individual to understand his emotions and needs first, than it needs to understand the possibility and reality of all the other people around it.

In my professional years, I had my fair share with both very positive to very challenging experiences doing just that. Even before AI came into the picture.

Although I always paid a lot of attention to what other people feel, and how they react to situations, my strategies were based on my emotions and gut feelings, bringing mixed results with mixed emotional roller coaster.

That is why I realized I need more guidance, knowledge and experience. I need to refine my strategies, because people are complex. It is easy to work with like minded people, but top executives are usually the people who are always full of energy, having big dreams, and to be honest, most likely impatient, both because of the closest event and big opportunity we have to catch, and because of resource limitations we have to deal with. Temperaments and backgrounds of people are always different, and also people’s personal emotional state is strongly influencing how to talk to each other, to make a common goal a reality, with doable scope, and doable resources.

I found that there are lots of resources on the internet, in books, talks, programs, and courses that teach how to do just that. Enhancing emotional intelligence by teaching human psychology, which provides insights into how to interact with different personalities in the most effective way.

I wonder what I will learn as I work on this software developer’s skill, I thought I would never have to deal with, when I started 🙂

By Botond Bertalan

I love programming and architecting code that solves real business problems and gives value for the end-user.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.