Recently I had a roundtable discussion with my engineers on what makes a great engineer. What are the traits that you would like to see in yourself or your peers? What was interesting is that there is no standard accepted definition or trait. Everyone had their own unique perspective and thoughts on who they would like to work with.
The following are some of the skills that we discussed engineers need. These are not in any order, and if you notice, most of them are soft-skills. We’re not talking about languages or frameworks. Being an engineer is much more than your technical skills!
Understand the impact
An engineer should be able to understand what is the impact of the problem they are solving. They should understand who they are solving this for and what makes this problem so special. An engineer should also understand the business impact of the problem. What does the company gain from solving this right now?
Open-minded
How do you respond to what your colleagues say? An engineer should be able to listen to ideas and keep an open mind. How do you know your idea is the right one? Engineers should take in all perspectives and all data to help make their decisions. There’s not only one path to success.
Ability to problem solve
This is probably one of the best skills for an engineer to have. Especially because most of our days are spent thinking about problems and how to solve them.
Ability to learn
Our profession is changing all the time. Twenty years ago, there was no iOS and Android. You’d be writing code for a Nokia phone or creating a website in Geocities. Our industry is evolving so much faster than many others that the ability to learn is the single biggest skill you’ll need to have a long career as a Software Engineer.
Understand the problem
An engineer should dig through the sales speak of a Product Manager and figure out what the true problem we’re trying to solve is. This will help you find the ideal solution rather than one that is just a patch.
Ability to break it down
Sometimes the problems we get are large and will take many weeks, months, or years to complete. The ability to break down a problem into manageable and deliverable chunks will help make you a great engineer.
Creativity
I recently read that creativity is the most in-demand skill of 2020. Being creative will help you develop unique approaches to the problems and help you put on your designer/UX/documenter hat to help the end-user.
Not being afraid to fail
As an engineer, we need to be able to fail fast and learn from those failures. Whether that is in a system design failure, a bug, an incident, or an MVP. We need to try those new languages and write some bad code before we write good code. If you’re afraid to fail, you’re afraid to grow.
Accept feedback
Being the mature people we are, we should receive feedback from our peers, managers, and stakeholders. Code reviews are the most common way we receive feedback. However, there might be some soft skills that you can learn from your managers or some deadlines you missed because of the decisions you made.
Have empathy
We need to understand that not all engineers think alike. We also need to understand that product and design might not understand our technical jargon. We should make sure we know what others’ limitations or situations are before giving them feedback or saying unthoughtful things.
Teamwork
A great engineer is someone who can work in a team. One of those on my teams quoted the following.
If you want to go fast, go alone. If you want to go far, go together.
African Proverb
Engineers are not lone-wolves. We generally work in teams, and to do that; you need to have great teamwork and others’ trust. Your team is in it for the long haul, are you?
Communication
Finally, we have communication. Everyone knows of the stereotypical image of a software engineer. This is a man in his 30s wearing a conference t-shift who lives in a basement. Fortunately, the world is a more diverse place, and we don’t all hide in basements. In fact, some of us need to be able to communicate well with our business partners. If we can’t communicate how we’re solving the problem, how can people trust us?
So, while you might be technically awesome and be the 10x engineer in your company if you don’t have these skills, are you a great engineer? I would be curious to see what others think out there in the world. What are the skills you think makes an engineer great?
Leave a Reply