DEV Community

Cover image for Non-technical Skills for Developers
Brennan K. Brown
Brennan K. Brown

Posted on

Non-technical Skills for Developers

Trying your best to remember the human, too!

Personal Skills

  • Emotional intelligence is your ability to respond appropriately to questions, engage in meaningful conversations, feel empathy and show kindness. Checking up on your coworkers and making sure they’re doing alright is a small example of this. EQ is very important in the health of a well-functioning team.
  • Intellectual maturity appears when you ask meaningful questions, seek to understand problems or perspectives, or you can adequately articulate your thought process to your colleagues.
    • For software engineers who spend a lot of their time asking questions to better understand problems, this type of maturity is necessary in order to be able to constantly further yourself.
  • Curiosity is the passion to know more, or maybe a desire to understand how something works or the desire to explore something new. Curiosity is a valued trait among engineers because it’s the precursor to innovation.
    • And, because software engineers are almost always working on products that really push society forward, curiosity is hugely important.
  • Perseverance is the ability to stick with something even when it’s difficult and to see it through to completion.
    • You’ve probably experienced how important this is for software engineers yourself. Without it, we’d all be walking away from bugs in our code all the time and just leave them sitting there.
  • Lastly, confidence is the feeling that you can rely on yourself. People want to work with other people who know what they’re doing or who have the self-belief to know that they could figure things out.
    • When you’re able to work from a place of strength and capability, it shines through as confidence, and it’s awesome.

Non-technical Skills

  • Problem-solving ability is an umbrella term you hear a lot in the tech industry. Given that software engineers need to figure out how to do things with code for a living, being able to solve problems is really important.
    • Generally, what people mean when they say they want to hire someone who is a good problem solver, is that they want to hire someone who can use what they already know, whether they obtain that through school, reading, or experience, to accomplish something specific in the workplace that may not be well-defined.
    • One way to demonstrate your problem-solving ability or to try to get better at solving problems is to start by asking good questions about the problem itself.
  • Asking good questions is very related to the first point above. Good questions have a number of qualities:
    • They should be specific. They should let the person you’re asking know what you already know so that the other person can build on top of that. And good questions should also be asked of the right person.
    • This means the person who can answer my question the best, and who is also the least busy. Sometimes the process of asking questions to try to better understand a problem uncovers some unconscious assumptions you are making about the problem itself.
  • Understanding bias and assumptions is a really important skill, specifically your own, because if you’re unaware that you’re bringing biases or expectations into a solution, the solution may wind up not solving the problem or doing the task effectively.
  • Understanding constraints, similarly to understanding your assumptions, the skill of identifying and of a problem is also something engineering managers are looking for in their team mates.
    • A team whose engineers know what their boundaries and limitations are, won’t spend time trying to come up with solutions that aren’t feasible or that are ineffective. In the end, this saves everyone time and time is money.
  • Finally, there’s collaboration. This is another word I see used a lot in job ads and I hear engineers say all the time that they love collaborating with their team.
    • Collaboration may be something you’re innately good at, or not, but it is a skill you can develop. If you’re a good collaborator, it means you’re skilled at both listening to others’ ideas and questions and sharing your own ideas and questions.
    • It means you work with a partner or a group effectively toward a shared goal and that you do so with respect, even if you disagree.

Top comments (0)