7 soft skills for developers
“In the modern world, when applying for a job, it is not enough to be a high-quality developer. A programmer is nowhere without well-developed soft skills,” says Svetlana Bodrenkova, training and development manager. What are soft skills and why should a programmer develop them?
What are "soft skills"?
— Today, the most progressive (and useful to the world) solutions are not the result of the sleepless nights of a lone genius, but of teamwork. One of the coronavirus vaccines was the result of a collaboration between the University of Oxford and AstraZeneka. On the website of the University of Oxford, in the Academic Research section, in addition to immunologists and clinical specialists, there are specialists in the field of artificial intelligence, data analysts, programmers, and mathematical modeling specialists — emphasizing an interdisciplinary approach.
The Human Genome Project involves not only biologists, physicists, and chemists, but also engineers, IT specialists, and ethicists. At individual companies, the demand for cross-functional teams is growing. This means that in addition to classical STEM disciplines and hard skills, success in a career as an IT specialist is increasingly associated with the flexible, soft skills necessary for successful teamwork.
For more than 7 years, I have been preparing IT specialists (mostly developers) for interviews with clients. Based on what I see, in open sources there are a lot of materials concerning so-called "behavioral interviews" in the IT field. Of course, in such interviews, we are still talking about the principles of high-quality code, modern libraries, and frameworks. The focus, however, is not solely on the technical knowledge and skills of the candidate, but on something more. Following the approach of a typical behavioral interview, you can determine which soft skills would be useful for a developer.
7 Soft Skills of a Programmer
— “Tell me about yourself…” is often one of the first phrases heard in job interviews. The wording may differ, for example: “Why did you choose this language / technology / framework?” “What brought you to us?” “What appealed to you about our vacancies / products?” and so on. The form is not as important as the content. To answer the question, a skill that can be called "self-marketing" is useful. It requires an understanding of what you are doing very well, what you want to learn, and what you will not do and why. If you have mastered this skill, you will be able to confidently and reasonably tell the interviewer what benefits the team will receive from cooperation with you.
In addition, a conscious choice about what you do not want and will not do helps guarantee that you will not drag your feet every morning to an unloved or meaningless job, or end up working in a company that has different values than your do. If you know for sure that you want to work in projects in the field of Life Sciences & Healthcare (perhaps your main education is as a chemist and you want to use it to improve the quality of people's lives), then you are unlikely to lean towards Game Dev companies.
— Practical task. It is a rare interview in IT today that does not require solving one. Let's leave aside the topic of how to prepare for solving such problems, their complexity, and the most useful hard skills. For this discussion, it is more interesting to consider what soft skills a candidate will demonstrate during the course of completing the task. Will the candidate immediately proceed to the task or ask clarifying questions on ambiguous points? Even if everything is clearly stated in the assignment, will the candidate clarify the criteria for the result (is it important to present a working code or show a train of thought in 20 minutes) or rely on their own ideas of success? Having clarified all the questions at the start, will they begin work silently or comment on their actions, explaining their choice of approaches to solving the problem?
Critical thinking is useful for a comprehensive analysis of incoming information, and the ability to identify the essence of the problem instead of relying only on personal experience and the usual methods of problem-solving.
Another valuable skill is the so-called consulting mindset. It can be described as a switch from thinking “What should I do?” to "How can I do this better?" (subject to known conditions and restrictions).
The importance of this soft skill can be seen in an everyday example. Imagine that a customer walks into a coffee shop. The barista is seeing this customer for the first time. In response to a request for a coffee, the barista (without critical thinking and a consulting mindset) silently turns to the coffee machine, prepares a walnut latte, and places it in front of the customer. If you ask a barista why they did this, the answer might be: “Because at this time of the day, everyone is ordering a walnut latte.” “Because I was in the mood to do that.” “Because it's faster.” “Because the customer has a hazel-colored shirt.” What if that customer is you? What if the customer is lactose intolerant or allergic to even traces of nuts?
Critical thinking and a consulting mindset are needed in order to clarify all of the important details for solving a problem. It is vital in a situation involving teamwork, or when building partnerships with a business, to: agree on the conditions and restrictions for the implementation of a project, recognize how decisions will live on in the future, and to understand by whom the product will be used.
Flexibility and adaptability
“And what will happen if...” Let's say the candidate has reached a result: the solution is ready and it works. At this point, the picky interviewer says: “What if we use Y instead of X?” “What if the amount of data doubles?” “But what if the priority is not speed, but quality?” “How will this affect the decision?” “In what environment will this solution not work?”
This is where soft skills such as flexibility and adaptability, stress resistance, and the ability to recover (resilience), come in handy. The last 2–3 years have shown us all how unpredictable and rapidly changing the world is. In response to these challenges, project teams and companies are increasing the speed and variability of solutions. Agile and the “fail safe – fail fast” approaches have gained popularity. In practice, for an individual developer, this means that on the very day when they announce with joy and pride at a regular team meeting that – finally — after numerous attempts to solve a very difficult task, they are ready to offer a working option, they hear from the Project Manager: "Great! Thanks for your expertise. Yesterday, it was decided that now we will... " – choose one: use X technology, focus on 3x the amount of data, transfer the solution to the cloud, refuse this functionality, etc.
This happened before, but now the number of such cases is growing like a snowball rolling downhill. A decision made concerns the entire team or product. But the attitude of individual team members to the decision will vary greatly depending on their soft skills. If your flexibility and adaptability are pumped up, you will quickly switch from regretting missed opportunities to searching for new ones, and you will cope with momentary irritation more effectively, spending less of your time and personal resources on it.
If, over and over, a solution described in a book or a commonly-accepted theory does not work in practice, or if a solution that worked yesterday is failing today for no apparent reason, well-developed resilience will help you get closer to the attitude described by Max Frei. The author said, “I wish I could teach you instead of: ’Oh, how bad everything is!’— think: ’Wow, how interesting.’ But this attitude to life comes only with experience.”
Imagine a runner, an Olympic champion. Their hard skill "run" is pumped to the limit, they know this, and it is obvious to everyone around them. Let's change the environment: instead of the stadium track, we will send our runner into the water. Their attempts to apply their best running skills will be in vain. What's next? Our hero (like each of us) has a choice: scold the water for the lack of proper density, make excuses for the insufficient speed of movement, return to solid ground under their feet, or master new skills? Learn to swim, become a "junior" again in a new skill. The choice we make will be determined by our flexibility, adaptability and resilience.
Emotional Intelligence and Negotiation
— In conclusion – two more skills are last on our list, but certainly not least in importance. Emotional intelligence is the recognition and understanding of one's own emotions and the emotions of the interviewer. This is about the ability to work with your emotional state and adapt the conversation depending on the emotional state of your conversation partner (or the audience, in public speaking). And the ability to negotiate is a skill involving the recognition of possible common interests when faced with seemingly opposing positions, and the ability to move on to mutual agreement (or withdraw from negotiations/relationships if the balance of "take-give" becomes unacceptable). There is more than enough available information about these skills. I’ll just add that it’s impossible to train them by reading books or watching instructional videos. It would be like learning to skate from watching videos: you can watch 10,000 hours of skating recordings, but your first attempt to repeat what you saw, at the same pace and under the same conditions as experienced masters, will end in a painful collision with reality.
Why are soft skills valued in IT?
Today, it is useful for a programmer in IT (and not only a programmer, and not only in IT) to develop:
- Self-marketing – to be able to clearly convey how much the team, project, and company will benefit from interacting with you. And also to understand what you, as a specialist, will get from cooperation with a particular team, project, and company, as the basis for a long-term mutually beneficial partnership.
- Critical thinking – for a comprehensive analysis of the problem, to take into account not only the content of the problem, but also the context in which a solution will be applied.
- Consulting mindset – in cooperation with business representatives, to seek a balance between the quality of an engineering solution and the limitations of the available infrastructure or the stringent requirements of the industry.
- Flexibility and adaptability – to respond effectively to changes, and to perceive errors not as failures, but as information that something is not working, and look for other ways.
- Resilience – to move towards success as described by Winston Churchill when he said "Success consists of going from failure to failure without loss of enthusiasm."
- Emotional intelligence – to recognize your emotional state and that of the interlocutor and adapt communications accordingly.
- Negotiations – for the transition from positional struggle to the search for joint interests and benefits.
— Today, when applying for a job, it is not enough to be a top-notch developer. Without well-developed soft skills, a programmer is nowhere. These skills are critically important, so do not forget to include them in your resume and upgrade them daily.