5 Noncoding Skills That’ll Set You Apart as a Developer

5 Noncoding Skills That’ll Set You Apart as a Developer

Top skills for developers in 2022 and beyond

There was a time when working as a software developer just meant getting to the office on time and entering your ID code on some keypad to signal you’ve arrived.

Maybe I’m dating myself by saying this, but I was part of that group. And I remember what happened if, by the end of the week, your recorded times of arrival weren’t optimal. However, as our industry and the world evolves and changes, remote work is more and more common these days.

And as software developers, we’re presented with more opportunities to perform our work from the sanctity of our home office (or as I like to call it, my couch). But are you sure you have the skills required to effectively work remotely in this day and age?

Here are five of the top skills I consider must-haves for any developer looking to shine in the eyes of their remote managers.

Time-Management and Prioritization

These are two tasks that can make you shine both when working remotely or in the office. Having the ability to correctly manage your time without having your manager micromanage you every day is a definite plus.

However, this is especially true when you’re remote, because doing micromanagement of someone who’s not physically by your side can be even more exhausting. And if you can add on top of that the ability to understand priorities, you’re going to shine like a star in the eyes of anyone leading you.

How can you do this?

Understanding priorities for your project requires you to care about your tasks.

What I’m trying to say here is that for you to shine, you need to care about the project’s well-being, just like your lead or manager does. If you look at the overall state of pending work and listen to other people’s updates, you can start gathering details about missing deadlines, emerging problems, and even unexpected changes of requirements.

Consider the following diagram:

A Ven diagram. Circle 1: Work on your tasks. Circle 2: Pick up emerging tasks. Circle 3: Help your teammates.

As a team member, you can either:

  • Work exclusively on your own tasks (top corner). Focus on them, and forget about the rest. This implies that any emerging tasks (e.g., new requirements) will be ignored, and your teammates having problems will have to find a solution with someone else. If you do this, by the end of your sprint, your work will be done, but the entire project could be on fire. And you’d be showing you don’t care.
  • Focus on helping your teammates (bottom-right corner). This may cause your own tasks to suffer, potentially not be getting delivered on time, and any emerging tasks will have to be done by someone else. You’re extremely helpful, up to the point where you’re causing teammates to depend on you constantly. This can feel great, as you’re the go-to person on your team; however, you’re becoming the bottleneck for everything, and your own tasks are suffering the consequences.
  • Constantly jumping between emerging tasks (bottom-left corner). This can happen, especially in complicated projects where there’s no way to ignore or mitigate the impact these new tasks imply. Usually there are one or two developers who know the system end to end and spend their entire time working on these emerging tasks. They have very little time left to work on the features they need to tackle.

As you’ve guessed by now, none of these extremes is where your manager wants to you be. In fact, the ideal autonomous developer would be able to always stay in the center, right at the intersection of all three areas of influence.

However, we all know that’s not possible — you’re not a machine after all. But as long as you can keep orbiting that point, so to speak, you’ll be able to stand out as someone capable of understanding priorities and able to manage their own time successfully.

Understand How to Work With Remote Teammates

Remote work requires a special brand of soft skills, especially when it comes to dealing with other people. Just as it happens with online comments on social media, when we lose the ability to see the body language and hear the intonation of the person having a conversation with us, it’s very easy to misunderstand comments and attribute intentions that aren’t really there.

This is why communication with remote teammates requires extra care.

How can you do this?

There are many different ways to interact with other remote teammates, but just to generalize this a bit, we have the following channels:

Remote face-to-face conversations: Otherwise known as video calls. Make sure you enable your camera whenever you have the opportunity. This gives the person you’re talking with the ability to read part of your body language (just make sure you remember you’ve enabled video and don’t start making weird faces when someone else is speaking). This might feel awkward at first, but it’ll also help bridge the gap the remote nature of your situation is causing.

Written long-form and asynchronous conversations: These are most likely emails. It’s very easy to think of email as the text-message alternative to chat; or, in other words, it’s easy to think you can use the same communication standards in both. However, this isn’t true — emails require a bit more attention to detail because the person reading it has no way of reading between the lines.

Consider the following email:

Hey John, what’s up?

Can you send me the report I asked for last week?

John won’t be able to answer the “what’s up?” part because his mind has already moved onto the second question. You’ve now missed hearing about rough week — how since Mike is on sick leave, he’s had to pick up his work. In a real-life conversation, he would’ve been able to answer you, and you would’ve been able to adjust your intention and intonation for the second question.

However, email doesn’t allow you to do that, so instead, write something like:

Hey John, how have you been? I hope everything’s alright on your side.

Did you have a chance to finish the report we talked about last week?

Cheers

That email is giving your teammate the benefit of the doubt. If you both know you discussed the subject last week, he’s probably busy with something else.

It’s all about the subtleties, but that change in tone can help you a lot.

Also, notice how I properly used punctuation and I capitalized the first word of every sentence. I personally hate when I receive a poorly formatted email because it only shows that the person who wrote it didn’t care enough to correct grammatical errors. Nowadays, every piece of writing software provides some form of spellcheck, so unless you’re using Notepad to write your emails, you have no excuse.

Written, short-form, and immediately answered conversations: We know this one as chat. This type of conversation is the remote version of turning around and saying something to the colleague sitting next to you. However, you wouldn’t spend 10 minutes explaining what you needed from that colleague if you had them sitting next to you, so don’t write chat messages that could be sent over emails. It’s easier to say “Hey Kate, I sent over an email — please take a look at it when you have a minute” than to actually type that into an email.

Your teammate is probably busy doing something else, so taking that into consideration and being as succinct as possible over chat is better than asking for their full attention right at that moment.

Remote communication with developers can sometimes be a problem since this is a field where being social isn’t mandatory, especially at the entry level. This is why developing communication skills, even in remote environments, can set you apart from the rest.

Understand Video-Call Etiquette

In line with the previous point, video calls are very common today. The fact is, we as developers tend to hate them because they’re distractions. A video call is probably an email that someone was just too lazy to write, right?

Probably, but sometimes video calls are required, and even if they’re not, showing proper etiquette when in a video call can make you stand out in the eyes of your manager.

What’s the proper etiquette for a video call?

That’s a perfectly good question.

Over the almost two decades I’ve worked, I’ve seen a lot of successful video calls, and I’ve also been part of monumental wastes of time. So here are my two cents on the subject:

  • Make sure you’re on time. Personally, I consider being on time as arriving five minutes early, but that’s just me. The point is to be there when the meeting starts. If you’re late, you’re showing you don’t care enough about everyone else’s time.
  • Mute yourself when you’re not speaking. There’s nothing worse than not being muted and having a conversation with someone else next to you when you’re supposed to be listening to the person talking on the call. But there are also minor things — such as your phone ringing or you typing on your keyword while taking notes — that interrupt or distract the speaker. So make sure as a rule, you’re always muted if you’re not going to speak in the next five seconds.
  • Enable the camera when it makes sense. Granted, there might be situations where there’s no need for a camera, such as big groups where everyone’s just there to listen to a speaker. But if you’re part of a video call where you’re expected to actively participate, having your camera on will show everyone else you’re present.
  • Don’t interrupt the speaker. If you want to speak yourself, make sure the software you’re using doesn’t have a raise-your-hand feature. If it doesn’t, find another way — maybe through chat (most video-call solutions provide some form of chat to help you ask questions without causing an interruption).

Understanding how to behave in a video meeting is just as important as behaving correctly in a physical one. And showing proper etiquette means you respect the time and the presence of everyone involved.

Remote-Work Tooling

Collaboration tools are a must-have skill when it comes to working as part of a remote team. You can’t be expected to not collaborate with other developers during a project. It’s not just about pushing code and moving to the next task.

And email, chat, and Zoom aren’t enough. Those can be considered as the three cornerstones of remote interaction, but they’re not enough if you want to effectively interact with other developers.

What can you do?

The key word here is collaboration — you have to keep it in the back of your mind at all times when trying to interact with others because if you were all sitting in the same physical space, the ability to collaborate would be implicit.

Tasks such as code reviews, which tend to spark a lot of conversation, can be done remotely, even asynchronously with tools such as GitHub (if your code lives in that platform) or Crucible (Atlassian’s solution for code review), which integrates perfectly with other known tools such as Bitbucket and Jira. There are others as well, that depending on your specific situation, might come in handy.

Other tasks, such as SCRUM-estimation meetings, which are a common practice in our industry, can be hard to accommodate when doing them remotely. However, there are platforms, such as PlanITpoker.com that solve all the remote-related issues with a very handy and easy-to-use UI.

Even pair programming, which is a very one-on-one practice, can be accomplished remotely with solutions such as Visual Studio Live Share from Microsoft. If your team uses VSCode, this can come in handy because it allows all developers to work independently and to collaborate on the same project at once, while communicating over voice and visually showing what everyone’s working on.

Many practices within the software development industry were originally conceived to be done in person. However, the shift our industry is experiencing right now toward remote work is forcing developers and companies to find or develop tools that’ll allow them to maintain these practices even across huge distances, so there’s really no excuse.

Learn How To Learn

This isn’t just about being remote but simply a byproduct of the rapid evolution of our industry. Every day new frameworks are being released. New languages are being created. And new technologies are being developed and made available for everyone to work with.

The rapid ecosystem shift we’re experiencing is causing a lot of us to feel a bit dizzy at times. It’s very easy to see yourself as being obsolete or just unable to keep up with all of the new requirements and new tech stacks every few months.

The sad truth is that, as developers, we need to embrace that situation — we’ll always have to learn. I started working on web development using PHP, and back then, it was the best option for anyone getting into that field. That’s now changed, and the number of options keep growing. I remember using jQuery for the front end because it was all there was. That has changed a lot as well.

And the same can be said for other fields; Hadoop and MapReduce jobs were your bread and butter at one point if you were working on big-data transformations. But now you have so many other options that writing an MR job feels like working with assembler language.

What can you do?

Embrace it.

If you expect to always work with the same technology, then you’ll grow obsolete very soon. That’s a fact.

Learning how to learn is a key skill to help us stay updated and relevant. And don’t get me wrong, it’s not about learning everything but rather picking one of the predominant tech stacks and mastering it until the next one is released.

There’s plenty of information out there — some of it’s even completely free of charge. There’s no excuse to not pick up a new tech, so stop being the victim of analysis paralysis, and start learning.

Conclusion

Understanding how to work with (or as part of) a remote team has been a major skill for developers, but it’s even more important now after 2020 — the year where remote work wasn’t only forced but made permanent for many of us out there.

So make sure you understand working remotely isn’t just like working from the office but without seeing your colleagues. There are changes you need to make regarding communication, best-tooling practices, and self-managing your own time and priorities.

Master these skills, and you’ll stand out as a great remote worker. If you fail at it, you’ll also stand out, but for the wrong reason.

What do you think? Have I left any major skills out of the list? What has your experience been like during 2020 dealing with the shift to a remote work environment?

Did you find this article valuable?

Support Fernando Doglio by becoming a sponsor. Any amount is appreciated!