What non-technical skills should a software development employee have and how to develop them

In the face of increasing competition, companies are simply forced to pay increased attention to the effectiveness of their work. Among other things, this means that they are trying to find not only strong developers, but people who can successfully work in the team: only if there is a good atmosphere in the team it will be able to create an excellent product. It turns out that more and more attention is paid to non-technical qualities of developers.
Forbes tells how to keep up to date as a software developer, Wikihow tells how to become a successful software developer, and VironIt company collected the most necessary non-technical skills that every software developer should have:
1. Empathy
This is the key skill. In addition to the purely technical skills, he should have an ability to genuinely empathize and sympathize his colleagues.
How to learn empathy? As with other skills, this ability can be mastered through practice. Learn to listen to strangers. Do not forget to be interested in their plans for the near future. Look for an opportunity to communicate with the end users of your product. At any opportunity, attend courses or lectures. This is another great way for developing empathy.
Empathy allows you to cultivate the ability to understand what the product you are developing in general is, and communicate productively with management, colleagues, suppliers and so on.
2. Desire to take responsibility
The ability to communicate with people who are not familiar with the subtleties of writing code;
The desire to perform routine organizational work to increase the productivity of the entire team;
An ability to self-organization and the desire to take leadership in a small group;
An ability to formulate tasks and to send them on time for review;
The desire and ability to train junior staff;
Knowledge of the general principles of the organization of the industry: what is being done and what is sold around.
In general, the point is that at this stage you are performing not just engineering work: you set tasks and formulate approaches.
What do you need to do to develop these skills?
Find a mentor, constantly learn new things, pay attention to what is going on outside the work and communicate with people from the next room, attend lectures, meetings, if possible, focus not on how not to make mistakes, but how to solve them.
3. Prediction capabilities
Generating ideas for new projects and designing;
Understanding what your team would like to work. This will help to relate the idea of a new project to reality. An ability to write a detailed project to facilitate work with artists.