You can code, now what?

0 Comments

Image

At some point in our careers, we’re going to encounter people who have more experience than we do and/or possess higher or comparable technical knowledge. At that stage, being able to code, or rather, being able to code well is merely the bare minimum. An expectation, if you will. Standing out among our peers often requires more than just being able to tell a computer what to do.

What do you bring to the table beyond your coding ability? Even if you’re not trying to outshine others, how do you become a better engineer than you were yesterday? At a certain point, dedicating all your time to technical growth leads to diminishing returns. To quote the title of Marshall Goldsmith's New York Times bestselling book, What Got You Here Won’t Get You There.

Yes, as you might have inferred by now, in a nutshell, it's about soft skills. We have all heard about them. We've read about them and we've been told about them. It almost feels like beating a dead horse at this point. But not as many of us progress well in developing them. And for various reasons. It's easier said than done. It's underestimated. Or quite simply, we tend to forget about them.

So this article is a reminder that soft skills matter and here are a few we can start working on today.

Language skills

No, you don't need an IELTS 8.5. You don't need to rock an American or British accent. But you need to be able to put your thoughts into words, written and spoken. You need to be able to grasp messages conveyed by people around you and vice versa. The same goes for your reading skill. Researching problems and solutions, going through documentation and understanding requirements. It's built on the basis of being able to command a language. And becoming better at it gives you a head start on other skill sets.

So find some quiet time, sit down, and think of the most recent challenges or issues that you've faced that could've been prevented or resolved quicker or more efficiently if language wasn't a bottleneck. If you can't think of any, then good for you. If you've listed down any, categorise them and set up plans to work on them.

Presentation skills

If you've written good code or developed an amazing product but no one is around to see it, does it really happen?

Whether it's a product pitch, a feature demo to clients or a sprint review, having great presentation skills is vital in showcasing your work and at times, yourself. It's about making an impact and influencing decisions.

Have I mentioned language skills? Not every native speaker is a great presenter but every great presenter is a good language user. There are countless articles and techniques about making a good presentation: the Rule of Three, the Storytelling Method, the 30 Second rule, and more. Regardless of the methods, it all boils down to two things: making a great presentation and giving a great presentation. So power up PowerPoint, grab a mic and start sharpening those skills.

Communicating with different people

On the street, we run into people from all walks of life. At work, we interact with people across different functions - fellow developers, QA engineers, product managers, stakeholders and clients.

Chances are, we'll need to communicate or collaborate with all of them at some point. And while we might all be using English, the language is different. Different sets of vocabularies, different levels of context, different means of communicating ideas. What makes sense to one group might sound confusing to another. The ability to vary and adapt our language to who we are talking or writing to is so important.

It can mean the difference between efficient communication and costly misunderstandings whether it's promising the wrong things, giving out incorrect information, or setting/receiving the wrong expectations.

This skill is tricky to learn and requires a lot of trial and error, but it's worth it. In the long run, it builds trust, relationships and networks.

Functioning under pressure and thinking on the fly

I hope you don't find yourself in such situations often, but being able to work against the clock and still deliver viable solutions is well valued. No, I'm not talking about meeting deadlines, well not necessarily at least. But it's more about responding to high-stake, high-priority issues.

Whether it's a security incident or a critical go-live issue involving significant financial value or number of users, the ability to stay calm, think on your feet, and design or implement a solid solution or workaround can save the day.

And this starts small. Getting used to coming up with solutions quickly and lower stack situations helps you become more familiar and more prepared for when a bigger one hits. Importantly though, it's not about being quick, but being correctly quick.

Business understanding

Coding is a hobby. Sometimes we build things just because they are cool and fun. That does not translate well into the business world. At the core of it all, it is about delivering value. As is often said, we don't look for a problem to fit a technology, we start with the problem and find the right technology to solve it.

Knowing the why behind the what makes us more effective engineers. Regardless of how amazing your technical knowledge is, it makes no difference if you are building the wrong things. Take some time to learn about the products you are working on. Ask questions during refinements. What are you trying to achieve? What value does this bring?

If anything, it also helps you to deliver faster because you are able to understand the bigger picture.

Thinking of the big and small pictures

Speaking of the bigger picture, we don't often do so. We often dive in quickly into the specifics. What tool or technology to use, which details need fixing, which parts to optimise or postpone. But then sometimes the solutions don't quite fit despite our technical deep dive.

This is often because we are misaligned or misinformed on the broader context - what's happening around us, how the smaller pieces fit together, or what our goals are. Sometimes, and especially when we are stuck, it's good to take a step back and (re)focus on the bigger picture.

At the same time, despite our master plan, we still run into issues. As contradictory as it may seem, the ability to see small details does matter and it matters a lot. You are able to cover edge cases that might prove to be critical later on. You are able to speed up or prevent future mistakes earlier on.

It appears that we need to find the balance between looking at the bigger or smaller picture, and rightfully so, but more often than not, we don't have to choose. Knowing which stage in your process to look at which picture is what it really is all about.

Final thoughts

Obviously there is no one-size-fits-all solution to making yourself a better or more well-rounded engineer and some of these are not always going to be applicable depending on different contexts. We all have different goals and purposes at the end of the day. And if you manage to find a solution that works for you, remember, it still is going to take time.

You are likely going to struggle, make mistakes, and be discouraged. But any amount of improvement you make along the way adds up over time. Several years from now, you will notice the effect of your effort. And one day, you’ll look back and thank your past self for starting.