The Importance of Soft Skills in Software Development
How neglecting them might cost you in the long run
Many younger developers (including my younger self) underestimate the role that soft skills play in their jobs. Focusing only on technical skills seems more compelling especially at the beginning of a career. After all, it is much easier to measure progress and gain a better paid position when one knows new programming languages or frameworks, as opposed to trying to market skills that are not easily quantified. However, underestimating soft skills may also lead to problems, especially when trying to communicate within the company. From this perspective, written and verbal communication become essential skills to have especially as one gains seniority. For instance, technical leads should not only have the ability to convey technical solutions at different levels, but also need to be able to inspire teams, and communicate the business viability of said solutions.
Having said so, I made the mistake of heavily underestimating soft skills at the beginning of my career as a Software Developer over ten years ago.
Back then I was spending most of my free time reading about design patterns, new frameworks, and working on side projects. While this landed me relatively quickly in a position where I was leading technical decisions, not having the appropriate level of communication skills led to frustration due to my inability to inspire my peers and get ideas approved by Management. I had a hard time understanding why some of the good ideas got rejected, and ultimately, made me see many people as an obstacle to innovation.
By the time my son was three years old, I noticed that his inability to express needs made him angry and frustrated. It was an interesting observation that led me to question whether I was facing a similar situation. Looking back, it is clear that my struggles with communication were the root of my frustration, but at the time this was not an easy concept to grasp.
Eventually, I started being more aware of the way in which I communicate with people and started to notice that my ideas were not always clear to others. In fact, they seemed chaotic by the way I was delivering them. This realization and my willingness to work through it ultimately helped me improve my leadership skills.
Here are some of the lessons I have learned over the years and how they may help you on your journey:
Pick your battles
Attempting to change too many things at once tend to make people defensive, and small changes are much easier to communicate and implement. Therefore, it is better to opt for evolution rather than revolution. This not only makes it easier for organizations to prioritize decisions within the company, but also protects bigger projects from being shut down due to minor details.
Listen before talking
People like to be involved in the decision process rather than being told what to do. Before proposing changes, listen to the concerns of all constituencies, and address them before making an official proposal. This will pave the road for early support where there could have been opposition. After all, it is sometimes hard to make people change their mind once it has already been set and having external opinions can help you address the problem from a different point of view.
Write more, write better
Given that teams are often communicating through tools such as Slack, Jira, code reviews and email, it is important for everyone to improve their written communication skills. This realisation was a game changer for me, especially as English is my second language and conveying ideas in a clear way was often challenging. Being able to deliver your message in a concise manner could help inspire others, resolve conflicts, and even sell ideas. By writing more, you will eventually write better, and your ability to persuade and get the point across effectively will also improve.
When I look back at the beginning of my career, I see that underestimating the importance of soft skills was one of the biggest mistakes I could have made. I also see the same mistake being repeated by many other developers, some of who are brilliant people yet are getting caught in the same cycle of frustration due to their inability to articulate their thoughts within a team.
Things that initially seemed tedious and unimportant such as building effective presentations or writing, became a key part of my day when I moved to senior positions. Being able to adapt to new teams, managers, and customers became just as important as adapting to new technical challenges. After all, the ability to sell solutions to the team is often as important as designing them. Therefore, all technical leads should value soft skills and continuously develop them along the technical skills in order to carry ideas to fruition.