For the past few years, the tech industry has taught us that some universal social skills are required in order to be productive and efficient, skills that have gradually become mandatory to possess without us realizing it.
When we apply for an office job, that implies collective work and collaboration, skills such as communication, teamwork or time management are expected from us, and might not even appear in the requirements in the job description or even among the subjects discussed at the interview. In the same way, English is expected to come automatically in the package next to the hard skills when you apply for a job at a company with a multicultural environment, even though the applicant might have not studied English at the required level.
For a long time, people have created some stereotypes when it comes to the people working in the tech industry, and have attached an image to them that is both funny and true sometimes. For instance, when we imagine a programmer at work, we might see a guy with his big techy headphones over his head, concentrating in front of hundreds of lines of code only he understands, not very sociable, and not in contact with the beneficiary of his work, silent in meetings, using his own lingo when talking to people from other departments. Of course, this image has changed a lot in the past few years, the “lonely wolf” works now in a dynamic team, contributes to the code of the software that is being developed along with the rest of the colleagues and is surrounded by inspiring people.
But in order to be able to function in such an environment, it is required to have some soft skills in your backpack besides the hard skills. It is not that the evolution of technology itself implies more human input of this kind, but the way in which more and more companies have organized the work between and inside teams has changed a lot, shifting the responsibilities and duties from the individual to the collective.
Nowadays, we are lucky that our everyday lives help us develop these social skills through different means, starting with the roommates we have in college and share the same personal space with for a certain amount of time, all the way to the explosion of social media and all the chapters it has gained control over. Getting along with your work colleagues gets easier, helping them is not a great effort, and managing to transform these connections into beautiful friendships becomes more natural.
But once accepted into this new environment, what’s next? Usually, the companies have put in place multiple career paths for their employees that could be simplified into two: the management line or the skill line. Of course, the knowledge of the field weighs heavily when it comes to upgrading on the company ladder, but it is not the only deal breaker that would happily complicate your life.
Any path you would choose for yourself between the two mentioned above come with great challenges, the first one implies getting in contact with more people in different positions, maybe a role of intermediary or coordinator between different parties, while the second one implies great effort in expanding the knowledge on different technologies, languages or procedures, putting more responsibilities and pressure into the process of making the final product before delivery. In order to get prepared to cross that bridge when you come to it, here are some less common social skills that, if possessed, would help you in any path you’d like to follow and that are the result of a long and easy to pursue a process that comes with benefits for your personal life as well.
Even if you are a junior developer and you think you have nothing new to bring to the table, you are probably wrong. There are probably people inside or outside your circle that would have something to learn from you. If you have a fellow junior colleague who might ask for help at a certain point, don’t just provide him with the solution, if you have it, and avoid developing the subject. Try to explain it to him the way you would explain the situation to a person that has not written code before. This would help solidify the concepts and knowledge in your mind because when you are explaining it to somebody else in your own words, you explain it to yourself as well. This situation could be reasoned by the following analogy: it is said that if you manually write a piece of text, in our mind it is the equivalent of 20 readings. Don’t hesitate to do this, in the end, you have no way of knowing how much the other person understands without further clarifications. On the other hand, if you find yourself on the other side of the context, and you are given explanations related to a problem you are facing, in the end, just double-check everything that has been discussed: explain it in your own words to the other person and wait for a confirmation or information of what you understood.
If you don’t have another colleague that goes through the same things as you do, look for other opportunities to solidify your knowledge through teaching even when interacting with senior developers. Given the stack they are presenting on a daily basis, it is often hard for them to keep track of all the updates on different versions of a programming language, library or even technology. Don’t just assume they know it all and don’t expect or accept help or guidance. Just imagine how relieving it should be for them to have somebody else updating them with the latest changes, instead of them having to search online and do the research by themselves.
In the end, if none of the situations presented could become reality in your case, try to remember how you were at the beginning of your career and where you found most of the answers to those bugs that were mysteriously inserted in your console or terminal without you doing anything wrong, and these words would probably pop up in your mind: Stack Overflow.
There are so many beginners and young developers at the beginning of their learning curve, and they would appreciate any help that comes their way, any solution displayed under their questions on the platform. While handing out one possible solution, try to explain to them the process behind it as well. Go the extra mile for them, it costs nothing. Of course, Stack Overflow is just one platform and one suggestion, your input might be valuable on other forums based on your stack and your interests.
Through teaching and spreading your knowledge around with people who might return the favour at some point, you might be surprised by the sense of fulfilment you get at the end of it. Who knows? You might turn it into a passion and become really good at it, and might just become the tutor or mentor you wished you had when you were just a student, and even get paid for it.
2. Emotional Intelligence
Ok, what does emotional intelligence have to do with all the changes you push in your pull request on GitHub at the end of the day? Surprisingly, it has a lot.
Emotional intelligence is generally defined by 4 attributes:
Self-management refers to the ability to control emotions in healthy ways, take initiative and easily adapt to any circumstances you find yourself in. If you are self-aware, you create a realistic image of yourself in your mind, with all your strengths and weaknesses, and help you act accordingly. When we talk about social awareness, we refer to the level of empathy you possess. It helps you understand the emotions and needs of the people around you and to pick up on the dynamic of your workgroup or organization. Good relationship management allows you to become a source of inspiration for others, better manage conflict and easily find your place in a team.
So yes, all the things mentioned above help you maintain a good and healthy work-life balance, giving you the tools to cope with the amount of stress you have to deal with daily, giving you confidence in your decisions, makes it easier for you to ask for help and ease your work, better communicate with your supervisors and colleagues, etc. Usually, people that choose a career path in management must acquire these skills in time, before being handed out to a team to coordinate.
But a developer with mature emotional intelligence would probably commit those changes on GitHub a lot earlier than somebody else, even if the experience in the field would not qualify him for this, but during the day he’d probably ask for help or guidance without any fear, would take short breaks when his focus fails him, would take the decision of creating the pull request without staying over time and would gladly take accountability for it tomorrow if bugs are discovered.
All good, but how do you develop emotional intelligence? The answer is not that simple. There are a variety of small things people can do daily in this case. During your time spent at work, ask for feedback from your supervisors or colleagues and analyze the results. In this category, we can include code reviews, a small chat regarding a presentation that you had to prepare, or a meeting in which valuable input was requested from you, and try to understand the other person’s point of view and perception of the subject. Being able to receive feedback without interpreting it as ill-intentioned criticism or personal attack is not an event, doesn’t happen overnight, but it is the result of a long process of internalizing other people’s opinions of you. This would ultimately lead to good self-awareness and self-management and would give you the tools you need to overcome your shortcomings.
After work, on your time, we recommend you read some literature. Studies show that reading literature with complex characters can improve empathy, identifying with characters and trying to see things from their perspectives helps us gain insight into their thoughts and actions and understand the motivation behind them. If you haven’t exercised your reading in a while, it might take some time to find the niche that best suits your interests and desires in terms of content, but after you find it, you won’t have enough time in a day to read everything you want. More empathy would help you understand why your colleague has delayed the completion of a task or why the client wants to do some things in a certain way, because, at the end of the day, there is no effect without a cause in everything that surrounds us.
3. Understanding The Big Picture
Understanding the big picture means that you understand the connections between basic tasks and long-term targets, as opposed to only focusing on details and how to achieve small tasks in a short period, with a low impact on the overall project. Some workers need to be told what to do or what to achieve on a daily basis. Their sole focus is on the current work, without having to make any decision regarding the next step in a project. This is not a bad thing, but they won’t probably have valuable input in the trajectory that needs to be set for the project they contribute to because they only have the chance to understand fragments of it, fragments that might not even be connected with one another.
A project or task needs to be understood fully by somebody to provide estimates in time, availability of the team, budget etc. That person or group of persons needs to master both detail-oriented thinking and big-picture thinking. This way they ensure they create goals for the entire team which are more efficient and achievable.
When it comes to the individual that doesn’t take part in the decision-making process, cultivating big picture thinking will help him fully understand his place and contribution to the project, create links between it and the company goals, step out of his comfort zone in order to understand concepts related to the project but outside of the scope of his work, and probably end up to be a go-to person for advice or even fixing problems at some point.
Besides these, knowing as much as you could about the project you are involved in creates new perspectives for the future, might lead to a subtle shift in personal goals, helps respond to obstacles objectively and patiently and manage your time at work more effectively, being fully aware of the next step. Understanding the direction of a project and anticipating future challenges make planning more efficient.
Not to mention that for a junior developer, all the small things that build a project might be new territory. By understanding the project as a whole, his learning curve would probably take a more accelerated turn and will help him expand his knowledge on different subjects more easily. There are a few things you can do to slowly cultivate big-picture thinking: set both short and long-term goals for yourself, divide your daily work into high and low-priority responsibilities to be able to manage your energy effectively throughout a certain time, and most importantly, conduct formal or informal discussions with your teammates.
Don’t be afraid to dig deeper and ask why some things are expected to happen and why the next step was chosen to be a priority at the expense of the others, what’s the connection between two tasks, what is expected to be achieved at the end of a project, etc. The company or even others might benefit from your well-informed ideas and suggestions at some point, and they might be the ticket for a new challenge or a new position.
Making small steps toward personal growth at work will definitely improve the quality of life someone has after closing the laptop, and vice-versa. The world of a developer doesn’t make an exception, and sometimes the constant learning required in this position makes it hard for people to keep up with everything. Besides the daily tasks and deadlines, the perspective of a successful career and better future rest constantly in the back of everybody’s mind, and it would be a shame not to achieve the goals which would ensure them because the mind is focused on small details and filled with stress and anxiety.
Remember, non-technical skills and required everywhere in the tech industry you go nowadays, but it is the small initiatives and small differences in a mindset that make the difference between a good and an excellent developer. Start small and grow naturally!