featured_image

Barnabas Tumuhairwe

Before we talk about how to work in a high-performance team, it is important to define what it means. Well, one could say it is a team whose performance is high, but that’s quite vague. Clearly put, a high-performance team is a kind of team whose expectations are high, delivery time is short, quality of results is high and the quantity of output is seemingly unrealistically huge to most.

For many engineers who work in high-performance teams, it is not uncommon to feel a bit overwhelmed sometimes. If you’ve ever felt like this, chances are your team is a high-performance team.  Throughout this article, I’ll be expounding on three key aspects that you need to concentrate on as you go about your work on such a team, so as to build the capacity needed to thrive on the team.

Growth Culture

Growth is one aspect that is unavoidable on a high-performance team. I occasionally ask Andela engineers why they joined the company and, among other reasons, one thing that always stands out is the fact that most of them wanted a challenge. For the less experienced, the challenge was in starting a new career in software development, while for the more experienced ones, the challenge was in delivering work and adding value that is competitive on a global market (simply put, competing with Silicon Valley).

That kind of challenge-seeking environment is a growth culture (or call it a mindset) that you need to cultivate throughout your time on high-performance teams. Whether you’re managing the team or you’re the rookie on the team, if you’re going to succeed, you need to cultivate a growth culture by thinking about how to add value to yourself, first and foremost, and then to your team. The reason we say we want to feel challenged is that we realise that it is only through doing complicated things that we get better and improve our skill set (technical and soft skills).

Yes, you can be challenged by a soft skill. You could be struggling with communication, or it could even be integrating with the new team that’s giving you a hard time, and it feels like a challenge. The one thing that’ll carry you from your comfort zone – which could be that you’re more introverted, prefer to stay in your own corner and work things out on your own – will be a growth mindset. Ask yourself questions like “would it help me to improve my communication?” or “What do people who communicate better achieve from it?”. Questions of that kind instantly trigger a growth mindset that’ll make you hungry to raise your communication game.

Communication

Yes, we’ve talked a bit about communication to exemplify the significance of a growth mindset, but now we’ll dive deep into communication and why it is key to your success on a high-performance team.

First things first, mere communication may not be entirely important. You read that right. First I said communication is important and now I’m saying it probably isn’t. I’ll explain what I mean.

Communication is simply the art of sending and receiving messages between two or more people. It can, however, be broken down into two components; effective and ineffective communication.

Ineffective communication is the kind where the person that’s sending a particular message doesn’t really bother with confirming that the recipient understands the message they sent. It is the kind where we just say things and don’t care to make sure that what we said made the intended meaning. That kind of communication is, in every sense of the word, pointless.

Effective communication, however, is the kind where the person that’s sending the message makes sure that the recipient of this communication has got the right meaning from the message. They make sure that they’re concise, clear and courteous with their communication. This is the kind of communication that you need to cultivate on a high-performance team. Why?

When you say something like “Barnabas, how could you write the code between lines 102 and 107? It isn’t good,” the very first thing Barnabas is going to understand from this is that he isn’t good enough and probably can’t be  —  this, in itself, is already a misunderstanding that doesn’t breed a growth culture. Secondly, he will feel like his competence is being attacked, and will feel reluctant to communicate with you. When this happens, the team is going to spiral into the low-productivity kind

As opposed to the latter approach, the more effective way of communicating this would be something like “Hey Barnabas, the code you wrote between lines 102 and 107 isn’t as optimal as it should be. My kind suggestion is that you refactor it by removing the second for loop and utilising itertools to carry out these iterations which would make your code more optimal. What do you think?” Now, this message isn’t exactly positive but you realise that Barnabas won’t be reluctant to engage with you and share his thinking about the subject in question. He will be induced to think about optimising this piece of code and as such, his growth mindset is being nurtured. Also, when he reaches out to give you his opinion, you will get the chance to ensure that he understood what you wanted him to understand. Also, words like “kind”, “please” and many more are polite and quickly enable someone to pay attention to this message since they feel welcome to the message.

I attended an Atlassian User Group meetup where this topic was being discussed and a speaker at the event shared that when he works on a team with a plethora of dialects, he always ensures that the rest of the team is in sync by declaring initially that he might pronounce some words wrong due to his local dialect, but the rest of team should feel comfortable to interrupt him whenever something isn’t clear and in his words, “…I will also kindly ask the same of you”. In doing so, he is setting up a comfortable environment for people to ensure that they effectively communicate their message.

In summary, effective communication cares about the listener or reader of the message as much as the message being sent.

The 7C’s of Communication will definitely come in handy.

Advocacy

Advocacy is something that many developers don’t like to do. For some, they feel like it is an attack on their egos, while for others, it is simply very difficult to say good things about themselves — probably because they suffer from imposter syndrome. I used to think my work was supposed to speak for itself and if any advocacy was necessary, then that meant that what I’d done wasn’t good enough. But what does it really mean to advocate for yourself?

Advocacy is the act of pushing for a certain idea that you believe in or a recommendation for something you think is right. It could be your work, a way to improve certain workflows on your team or it could be another person’s work.

Sometimes, on a high-performance team, it is easy to fall prey to groupthink — where everyone gets in sync to the point that they are almost impervious to new ideas and decisions are no longer critically evaluated. New ideas and innovations tend to get stunted or come too few and far in-between.  A high-performance team should quickly react to change without compromising the quality and quantity of their work. How does that change come about? Change is effected after someone has advocated for it. How do they advocate for it?

I’ll answer that question with a small story. One time on my apprenticeship team, one member realised that our stand ups weren’t being recorded. He realised that we’d need text records of this information to enable us keep track of progress, but there were none at the time. He then suggested that we have a Slack stand up bot where we’d record our individual stand ups in addition to the Zoom call.

In doing this, he was advocating for a change in a system that had been used by many developers before him, and it was taken up. Now, we have a record of these stand ups and still do the Zoom call, because we realised that it helped us create rapport with each other. Advocacy is what helped us improve our performance despite the fact that we were already a high-performance team before this change.

Even in a high-performance team, improvements can always be made, and they can get implemented if you advocate for what you think is right. Your workflow could be something you think needs to be changed, for example. Perhaps you think that instead of tasking your Technical Team Lead to write a story on Pivotal Tracker (or Trello), each team member could create the story and make it faster for everyone to continue working, as opposed to waiting on one person to create more than 15 stories on the Pivotal Tracker. You could even write some code which someone on the team thinks needs to be changed but your work will not always be in a position to speak for itself (like I initially thought), so you’ll need to explain why you don’t think their suggestion would be efficient, but also be ready to listen to their viewpoint and ensure you reach and agree on the best solution at the end of such a discussion.

I’ll leave you with a short quote about advocacy:

“To say nothing is saying something. You must denounce things you are against or one might believe that you support things you really do not.”  ― Germany Kent.

featured_image
About the Author

Barnabas Tumuhairwe

Software Engineer at Andela

Thanks for subscribing!

 

June 13, 2019

How to work in a high-performance team

Barnabas Tumuhairwe

Before we talk about how to work in a high-performance team, it is important to define what it means. Well, one could say it is a team whose performance is high, but that’s quite vague. Clearly put, a high-performance team is a kind of team whose expectations are high, delivery time is short, quality of results is high and the quantity of output is seemingly unrealistically huge to most.

For many engineers who work in high-performance teams, it is not uncommon to feel a bit overwhelmed sometimes. If you’ve ever felt like this, chances are your team is a high-performance team.  Throughout this article, I’ll be expounding on three key aspects that you need to concentrate on as you go about your work on such a team, so as to build the capacity needed to thrive on the team.

Growth Culture

Growth is one aspect that is unavoidable on a high-performance team. I occasionally ask Andela engineers why they joined the company and, among other reasons, one thing that always stands out is the fact that most of them wanted a challenge. For the less experienced, the challenge was in starting a new career in software development, while for the more experienced ones, the challenge was in delivering work and adding value that is competitive on a global market (simply put, competing with Silicon Valley).

That kind of challenge-seeking environment is a growth culture (or call it a mindset) that you need to cultivate throughout your time on high-performance teams. Whether you’re managing the team or you’re the rookie on the team, if you’re going to succeed, you need to cultivate a growth culture by thinking about how to add value to yourself, first and foremost, and then to your team. The reason we say we want to feel challenged is that we realise that it is only through doing complicated things that we get better and improve our skill set (technical and soft skills).

Yes, you can be challenged by a soft skill. You could be struggling with communication, or it could even be integrating with the new team that’s giving you a hard time, and it feels like a challenge. The one thing that’ll carry you from your comfort zone – which could be that you’re more introverted, prefer to stay in your own corner and work things out on your own – will be a growth mindset. Ask yourself questions like “would it help me to improve my communication?” or “What do people who communicate better achieve from it?”. Questions of that kind instantly trigger a growth mindset that’ll make you hungry to raise your communication game.

Communication

Yes, we’ve talked a bit about communication to exemplify the significance of a growth mindset, but now we’ll dive deep into communication and why it is key to your success on a high-performance team.

First things first, mere communication may not be entirely important. You read that right. First I said communication is important and now I’m saying it probably isn’t. I’ll explain what I mean.

Communication is simply the art of sending and receiving messages between two or more people. It can, however, be broken down into two components; effective and ineffective communication.

Ineffective communication is the kind where the person that’s sending a particular message doesn’t really bother with confirming that the recipient understands the message they sent. It is the kind where we just say things and don’t care to make sure that what we said made the intended meaning. That kind of communication is, in every sense of the word, pointless.

Effective communication, however, is the kind where the person that’s sending the message makes sure that the recipient of this communication has got the right meaning from the message. They make sure that they’re concise, clear and courteous with their communication. This is the kind of communication that you need to cultivate on a high-performance team. Why?

When you say something like “Barnabas, how could you write the code between lines 102 and 107? It isn’t good,” the very first thing Barnabas is going to understand from this is that he isn’t good enough and probably can’t be  —  this, in itself, is already a misunderstanding that doesn’t breed a growth culture. Secondly, he will feel like his competence is being attacked, and will feel reluctant to communicate with you. When this happens, the team is going to spiral into the low-productivity kind

As opposed to the latter approach, the more effective way of communicating this would be something like “Hey Barnabas, the code you wrote between lines 102 and 107 isn’t as optimal as it should be. My kind suggestion is that you refactor it by removing the second for loop and utilising itertools to carry out these iterations which would make your code more optimal. What do you think?” Now, this message isn’t exactly positive but you realise that Barnabas won’t be reluctant to engage with you and share his thinking about the subject in question. He will be induced to think about optimising this piece of code and as such, his growth mindset is being nurtured. Also, when he reaches out to give you his opinion, you will get the chance to ensure that he understood what you wanted him to understand. Also, words like “kind”, “please” and many more are polite and quickly enable someone to pay attention to this message since they feel welcome to the message.

I attended an Atlassian User Group meetup where this topic was being discussed and a speaker at the event shared that when he works on a team with a plethora of dialects, he always ensures that the rest of the team is in sync by declaring initially that he might pronounce some words wrong due to his local dialect, but the rest of team should feel comfortable to interrupt him whenever something isn’t clear and in his words, “…I will also kindly ask the same of you”. In doing so, he is setting up a comfortable environment for people to ensure that they effectively communicate their message.

In summary, effective communication cares about the listener or reader of the message as much as the message being sent.

The 7C’s of Communication will definitely come in handy.

Advocacy

Advocacy is something that many developers don’t like to do. For some, they feel like it is an attack on their egos, while for others, it is simply very difficult to say good things about themselves — probably because they suffer from imposter syndrome. I used to think my work was supposed to speak for itself and if any advocacy was necessary, then that meant that what I’d done wasn’t good enough. But what does it really mean to advocate for yourself?

Advocacy is the act of pushing for a certain idea that you believe in or a recommendation for something you think is right. It could be your work, a way to improve certain workflows on your team or it could be another person’s work.

Sometimes, on a high-performance team, it is easy to fall prey to groupthink — where everyone gets in sync to the point that they are almost impervious to new ideas and decisions are no longer critically evaluated. New ideas and innovations tend to get stunted or come too few and far in-between.  A high-performance team should quickly react to change without compromising the quality and quantity of their work. How does that change come about? Change is effected after someone has advocated for it. How do they advocate for it?

I’ll answer that question with a small story. One time on my apprenticeship team, one member realised that our stand ups weren’t being recorded. He realised that we’d need text records of this information to enable us keep track of progress, but there were none at the time. He then suggested that we have a Slack stand up bot where we’d record our individual stand ups in addition to the Zoom call.

In doing this, he was advocating for a change in a system that had been used by many developers before him, and it was taken up. Now, we have a record of these stand ups and still do the Zoom call, because we realised that it helped us create rapport with each other. Advocacy is what helped us improve our performance despite the fact that we were already a high-performance team before this change.

Even in a high-performance team, improvements can always be made, and they can get implemented if you advocate for what you think is right. Your workflow could be something you think needs to be changed, for example. Perhaps you think that instead of tasking your Technical Team Lead to write a story on Pivotal Tracker (or Trello), each team member could create the story and make it faster for everyone to continue working, as opposed to waiting on one person to create more than 15 stories on the Pivotal Tracker. You could even write some code which someone on the team thinks needs to be changed but your work will not always be in a position to speak for itself (like I initially thought), so you’ll need to explain why you don’t think their suggestion would be efficient, but also be ready to listen to their viewpoint and ensure you reach and agree on the best solution at the end of such a discussion.

I’ll leave you with a short quote about advocacy:

“To say nothing is saying something. You must denounce things you are against or one might believe that you support things you really do not.”  ― Germany Kent.

featured_image
About the Author

Barnabas Tumuhairwe

Software Engineer at Andela

Thanks for subscribing!

 

More Blog Posts

Insights

The Efficacy of Lean UX

The concept behind Lean UX is that the first design iteration isn’t conclusive, so don’t spend too much time on it. Build a minimum working product based on assumpt

16_October_2018
Insights

Why Coders Should Care About Ethics

The average coder’s work isn’t partic

6_September_2018
Insights

Andela Program Manager, Chimdindu’s Journey to Google I/O 2017

This is a guest post by Andela Developer,

16_May_2017

Partners

Tap into a global talent pool and hire the “right” developers in days, not months.

Developers

Accelerate your career by working with high-performing engineering teams around the world.

BECOME A DEVELOPER

Hire Developers

We take great pride in matching our developers with the best partners. Tell us about your team below!

preloader_image

Thank you for your interest

A member of our team will reach out to you soon.