Before you can answer the question of whether soft skills can make a crucial difference for everyone, including techies, you should be clear about what soft skills are. To this end, it will be helpful for us to first consider their counterpart: hard skills. Wikipedia has a good definition for hard skills: “The ability of people to cope with typical professional tasks and facts according to theoretical requirements independently and autonomously”. According to this definition, hard skills are competencies that significantly differ from occupational group to occupational group. In addition, here we speak of skills used for coping with theoretical requirements. These qualifications are imparted, for example, in school, during training and studies, or acquired by reading books. They can then be applied independently and autonomously. So for example, a programmer should possess the following technical skills:
- Programming languages
- Version management
- Algorithms and data structures
The definition of soft skills is much more difficult. We can likewise find a very fitting definition on Wikipedia: “Combination of interpersonal people skills, social skills, communication skills, character traits, attitudes, […] that enable people to […] work well with others […] to achieve their goals with complementing hard skills”. From this definition, we can see that soft skills as such consist of a combination of different abilities and are difficult to break down into a single, concrete skill. They should enable and support the collaboration of individuals. Soft skills complement and complete existing hard skills. Only by combining both skills can a person exploit the full potential of his or her skills.
Why soft skills are important in software development
You often hear statements like “A programmer only needs to master a programming language”, “The most important thing is to be able to produce error-free software”, “Developers only need to follow instructions” or the like. Such statements are not only wrong, but also very dangerous, because a software developer has to master more than just dealing with a programming language or creating error-free software. We have many answers to the question of why soft skills are important in development. Some of the most important reasons can be summarized in the following keywords:
- Rapid technology change
- Quality standards
Software is taking on more and more tasks, it is becoming increasingly important in our everyday lives and is more networked than ever. The intelligent toothbrush is a most recent example of this. It collects and analyzes data about your toothbrushing habits and communicates with mobile apps and social media networks such as Twitter or Facebook. Even in this simple example, innumerable technologies are in use here and the complexity is very high. However, this is not comparable to the complexity that is present in a modern car or in the medical field, such as computer tomography equipment. Soft skills such as discipline, thoroughness, willingness to learn and sense of order can help to cope with this complexity.
Rapid technology change
In security-critical sectors such as the automotive industry or medical technology, the quality requirements for software are extremely high – especially when it comes to human life. In such cases, no compromises can be made on the quality of the software. However, it is very difficult to always meet the highest quality criteria – especially when the product is already very complex. Yet if you want or need to achieve high quality, skills such as thoroughness, order and organizational skills can help.
The classic image of a software developer as a nerd tinkering alone in the garage or the basement has long been out of date. Nowadays, interdisciplinary teams develop high-quality software in close cooperation with the customer. To this end, they most often use modern development practices such as Scrum or SAFe, which emphasize and require teamwork and communication. However, these new methods and techniques place certain demands on the developers which they can meet with the help of soft skills such as self-organization, personal responsibility and communication skills.
Further development of soft skills
The examples just mentioned show that soft skills have a great impact on daily business in software development and are a cornerstone of the success of a team or even an entire company. However, soft skills are almost never taught. Of course there are exceptions, but in most cases these skills are not developed at school, in training or during university studies. The same goes for professional life: the majority of training is aimed exclusively at hard skills. Soft skills are often only addressed in advanced training once employees attain a leadership position. But isn’t it far too late for that by then? For the most part, you acquire soft skills over time by adapting them based on observing and imitating your parents, teachers, friends, colleagues or other people. Nevertheless, or perhaps exactly because of that, soft skills should be trained and further developed. It does not necessarily have to be expensive training, you can already incorporate certain exercises into day-to-day activities. Here are a few tips and tricks for three selected skills.
Learning and teaching
Since software development is one of the fastest-moving industries in the world, every software engineer must inevitably undergo continued training. However, the benefits of knowledge sharing should not be underestimated. Two methods which include both learning and teaching are now becoming increasingly popular: Code review and pair programming. These methods are very effective and powerful and help not only in terms of continued training, but they also have a positive impact on the quality of the software, for example. In both techniques, the level of knowledge of those involved is not always decisive. Even experienced developers can always learn something new from juniors.
So-called tech talks are another way of disseminating knowledge and promoting the exchange of knowledge. For example, employees could be provided one to two hours a week for tech talks that can be used in different ways. For example, Code Katas can be performed, experience reports can be shared, discussions can be held or Live Codings can be viewed and evaluated. This format can also be used to further develop presentation skills.
Social skills are a collection of numerous abilities, such as communication, choice of words, active listening, body language, eye contact, empathy, emotion control or self-control. These skills significantly influence social life and interpersonal relationships. However, they can also have an impact on professional life and help you get your dream job, for example. There are two exercises to train social skills: the 60 Seconds Game and the Compliments Game.
The basic idea of the 60 Seconds Game is to get to know a new person. This exercise can be done almost anywhere, for example while waiting for the bus or when you go into a cafe. There is only one rule in this exercise: You have to introduce yourself to an unknown person within 60 seconds of entering the room or place. It is important that you do this within the first 60 seconds, because after that the fear of embarrassing yourself is already too great.
The Compliments Game is very similar to the 60 Seconds Game. The only difference is that this time you are not introducing yourself to a stranger, but rather complimenting someone sincerely and honestly. Ideally, you should do this three times a day.
Both exercises help you gain self-confidence in unfamiliar situations, improve communication skills and leave your comfort zone from time to time. In addition, you have the opportunity to meet new people and to bring joy to others.
The multitude of disruptive factors such as Facebook, Twitter, mail, chats, colleagues or smart watches has never been as wide as it is today. These disruptive factors and the attempt to multi-task are radically complicating effective work. There are also a few tricks available for such issues. To cope with these challenges, the Pomodoro Technique is a good option. At the beginning, you define the task that you want to work on and write it down to clarify the goal. Then set an alarm to 25 minutes. You can choose a shorter iteration, but not a longer one. Now you pay full attention to the defined task for 25 minutes. During this time, you don’t tolerate any disruptions. To this end, it helps to inform your colleagues beforehand about your new work method and make the iteration recognizable, for example with a light or a sign. There can of course be exceptions for a disruption during this time, but this should really only be in case of an emergency. When the first 25 minutes are over, take a 5-minute break and gather strength for the next iteration. Depending on the size of the task, you either continue working on the previous task or define a new one. After every four iterations, take a longer break, about 20 to 30 minutes.
You don’t always need to introduce a completely new working method. It’s often enough to deactivate certain disruptive factors and notifications. Most notifications from applications such as an mail client, Facebook, SMS, Twitter or similar can be switched off. In addition, in most cases it is perfectly adequate to read and answer formats such as mail or Twitter only two or three times a day.
A regretfully often neglected and underestimated method to increase focus is by taking breaks. There is a helpful rule of thumb for this:
- After 45 minutes, a 5-minute break
- After 90 minutes, a 10-minute break
- After 4 hours, a 30-minute break
The break can also be used to have a coffee or tea with colleagues or go for a walk. This promotes team structure, and very often problems are solved just by talking to your colleagues. Breaks are never unproductive. On the contrary, they have a positive impact on focus and productivity.
Soft skills can make the difference between the failure and success of teams or even entire companies. They are an important part of our everyday life. The word “soft” leads us to underestimate these skills far too quickly. Soft skills are definitely not just something for blabbermouths, but for everyone – this includes and maybe especially applies to software developers. Everyone should work on their soft skills and also attend further training, not just for the hard skills.