Episode 28 Codurance talks: How to create your dream team

In this podcast Rushali Parikh, co-founder of Incubyte, a consultancy firm that embraces Agile and Extreme Programming practices, Francisco Ávila Engineering Manager and for a very long time now an agile consultant, Maciej Durkiewicz craft people at Codurance, and José Enrique Rodríguez Huerta, MD at Codurance Spain, talk about teams. Without exceptional, motivated, skilled and motivated teams it would not be possible to do a great job. Why is it necessary to work to get this type of teams? What formulas can we apply to achieve it?


José Enrique Rodríguez Huerta: Hello and welcome to another episode of Codurance talks, the podcast where we talk about all things in technology, software development and craftsmanship. Today is a great day and I hope you're all thinking the same thing, because we're going to be talking about something essential to doing great work in most organisations. From service to product companies, from small businesses to multinational enterprise, at the core of delivering great products and services, does the same thing. Exceptional teams. Teams that are motivated, that are skilled, that are driven. And I think we all agree that without them, it wouldn't be possible to do great work. And to talk about why, what and how to achieve this holy grail in organisations and what that elusive formula looks like for what we will call up a dream team, we have three very special guests today. 

It is my pleasure to be joined by Rushali Parikh. She is a co-founder of Incubyte, a consultancy firm that embraces Agile and Extreme Programming practices as a way to help their clients to deliver great software overseas.  We also have Maciej Durkiewicz. He's one of our craft people at Codurance. And besides his knowledge of computer science and building products in retail, bioinformatics, healthcare, Maciej also has a background in Psychology. Maciej, if I'm not mistaken, you've also recently done a group of talks on teamwork in this kind of subject. Is that right?

Maciej Durkiewicz: Yes, so that's primarily on soft skills in this sort of confines of software development. So we generally talk about what sort of personal attributes or what sort of non technical aspects are quite relevant and crucial within the confines of software engineering, the whole process, etc, and how it's actually critical. So we have tried to build the whole case around this, and highlight its importance, because when you think about it, they're actually most of the funding for training and a focus on training, everything is on the solid, sort of very specific technical aspects. Everything else is sort of forgotten.

J.E.R.H: Well, if you if you're interested in knowing more about this topic, which is very much related to what we're going to be talking about today, don't forget to go to the Codurance YouTube channel, where those things are recorded, so you're more than welcome to go and check them out. 

And last but not least, we have Francisco Avila. He's right now an Engineering Manager at badger maps, and for a very long time now an agile consultant . And as part of his work, he had to help more than a few organisations and CTOs for both big and small companies to not only introduce changes, but also create that environment where people can do their best work and adopt new practices and new ways of working to enable all of that. So I'm very happy to have you all here today. How are you doing?

Rushali Parikh: Very well. Thanks for that introduction. This topic is obviously very close to our hearts. And we have a lot to talk about for sure.

J.E.R.H: So, let's start at the beginning, because I've noticed that sometimes there’s some misconception or confusion about what a team is, and how people tend to think that you grab a group of people and put them together and call them a team. And suddenly, by magic it just happens that we have a team. So let's start there. What constitutes a team, in your opinion? Rushali, would you like to start?

R.P.: There's obviously several things that make a team. One is the right set of skills, of course, so you want a team with diverse skill sets. And since we're specifically talking about a dev team,  the idea that the team should own everything from design to development to delivery, and not have silos that makes a good team from a topology standpoint. So having not only developers in our team, but also the product owners and the testers as part of the same team moving towards the same goal which is releasing successful software products. So a set of skill sets working towards a common goal where each person though has their own individual responsibility. So that's kind of the textbook answer to that. But of course, there's a humane aspect of that as well, which I could probably let Maciej or Fran talk about

J.E.R.H: So anyone else? Do you want to go for it?

Francisco Ávila: Well, I'm pretty much aligned with Rushali. We are talking about teams, not great teams, right?

J.E.R.H: Let’s start with regular teams.

F.A.: A group of people that are needed to achieve a goal, and they are trying to achieve something together. So that, for me, is the most simple definition of a team: a group of people trying to achieve something. And then is how the team can become a great team, or what are the things needed to make that something that is achieving the goal in a great way or what are the parameters that you have in consideration, but the most simple one, for me, is a group of people trying to achieve something.

M.D: Well, I think on top of everything that’s what you’ve already  said. I was thinking the other day why we even have teams. And you have teams because you have tasks that are too complex to be done by yourself as a single person. Basically, the team should be able to be like an übermensch and act like a single person, but with many limbs and many brains working in sync. And I think many things that apply to your sort of personal like going for a certain goal they apply for a team, but you need this like a layer of this sort of collective consciousness of thinking going around them. A really interesting concept, when you think about the teams  is to think about the sort of collective something that they have, that they should act as a single person to do something that a single person wouldn't be able to do. That's why we have them in the first place.

J.E.R.H: There's one aspect that I think hasn't been completely mentioned. And I think it's relevant, because it's not just about having a common goal, but it's also about that interdependence. Like that idea in which everyone needs to contribute in order to reach that goal. And it doesn't make sense if I can reach the goal, but you can't. We either all succeed or all fail. And that’s an important aspect, specially because you tend to find these things that they're just a group of people working together, but although people think it's the same goal, they're not entirely the same goal, if you know what I mean. And I feel that goes a little bit against what we all understand as a team.

F.A.: I put this function in the team, because I'm pretty sure that we always have been working in teams that we say, "Yeah, actually, these three members are totally not needed for the team, but they're still part of the team". So because they say that we have great teams with a great characteristic that we also have teams that are bad teams, because they lack something to succeed, or they're not needed, or they are not cooperating or they are not having the same goal. So I think that they’re teams too, but really bad teams.

J.E.R.H.: So what makes a great team, or a dream team if you will?

F.A.:  A group of people that are individuals, so they have the consideration as a team, but also as individuals. So they don't lose themselves, just because they are part of the team, they have that common goal that they are trying to reach, they have something that is bigger than the goal. Some kind of mission that compels themselves to make something great. They have the capacity to celebrate the success together. But also the capacity to suffer together when things are not happening as expected or they need to push harder together. I think that the two key aspects are that they need to help each other. If you're with a group of people that they are suffering, and you cannot help, you're disconnected from that team. To be part of the dream team, you need to help in any way. Because there's always ways to help. And finally, for me, the key aspect is that everyone on the team are honest, if you are not honest, if you're not clear with each other, and you're, you're hiding things, and it's just the same work, but for a dream team, that the best thing that I fought with, it was the most open, honest, and that facing conflict in an honest way. And that was what made the team progress.

R.P: Yes, and I was just gonna rephrase that, and say pretty much the same thing in my own language. As long as their individual goals are aligned with the team goals, it makes a great team. So if everyone has the same ideology, and everyone wants to work as let's say, if we believe in a proper software, craftsmanship mindset, if there is one person even who does not believe in that mindset, and who has their own agendas and or they are not aware of the mindset, even a lack of education for that matter, might make that person misaligned with the team goal. Even that is a recipe for quite not failure, I'd say that's, that's too strong a word but unease in the team. So having a common ideology, having a common goal, which is aligned with your own personal goal would probably make a big team, in my opinion.

M.D.: I'm a simple person. I don't know if it feels like the dream sheet. Like all of the recipes that you see in different places, they are quite complex. And one thing that we know some sort of like runs complex, or like multistage recipes, like those, there's a lot of space for failure injure. And there are some things too unachievable, like when you tried to cook something awesome, and you just open a cookbook, and you see a recipe span several pages, like you ain't gonna cook, it's you ain't gonna do it. You know, even though it's out there is just too complex. For me, actually, I think the dream team starts with one sort of crucial ingredient. And it's actually a leader. I know, we've probably touched on leadership some point later. But I think it actually starts with a sort of brain-like structure in order to be able to say, their left hand skills like that, and the right hands do the other thing and then let’s  go forward.  So I would just go simple and just put a leadership of some sorts whether it's verbalise, something to sort of be able to start to do stuff, at least very early on.

J.E.R.H.: So I guide by the faces, I can already see that this is a topic that we're going to get more time later on. You can't deny that leave, she has an impact on all these things. But to what extent and that's a good point. We'll talk more about that. I think, just to add a bit more, and that is his base, you know, Richard Hackman research on teams. And I think it's Peter Hawkings and some others. There’s an agreement that there's a few things that need to be happening, whether you call it one way or another. They need to be constantly learning about themselves how to improve and that kind of stuff, they need to have a clear focus direction, understanding of who they're serving or what it is that they're trying to fulfil, and for whom they need to have great skills for collaborating internally, and making that work happen. And to some extent, it's called differently in different places. But there's also another aspect. Can you have a real team without the context for it to happen? Like if you have a great team in a poor context, in a poor organisation where they're constantly having to fight against the things that they're trying to achieve. Does that impact make them less of a dream team? What do you think?Context is everything, isn’t it?

M.D.: Yeah, context is everything. Let’s go back to cooking. It depends on the kitchen that you have. If you’re  cooking in the woods, on an open fire, you'll not be able to do the same thing. Same with the teams. If you have great people, there'll be great for a certain context. I think context is everything in certain scenarios, and you have to tailor your team for a specific context if you're tailoring a team. I can't imagine an universal team would go anywhere. And they'll be like, yep, that's fine. Yeah, we can do it. That's no problem.

J.E.R.H.: So the question becomes: the dream team for what? Basically, like, what is it that was that they're going to be doing now? What is it that? Yes, that's a good point.

R.P.: I was gonna jump in and say not only what it is that they want to know, but also where are they going to do it? Are they going to be working remotely? If the dream team is working remotely might be a different team than the dream team in an office environment. So the environment as well plays a big role with people's personalities online as well as in person.

J.E.R.H.: So if we then move a little bit forward then. So how do you go about doing that? Let's say that you have a blank canvas and you're giving this opportunity. So let's put together a team or let's build or develop that team without any constraints? How will you go about doing that?

R.P.: Is that an answer to that?

J.E.R.H.: I don’t know… it's just a quiz. Where do you start with something like this?

F.A.: That's interesting. Oh, you have a green field! But it doesn’t happen! So if I need to start from a place, for me it’s  always the selection process. So if you can start from the scratch, just pick the right people. Pick people that have the mindset of collaborating, the mindset of pushing together, the brainset of sharing, the brainset of being versatile and jump from one role to the other, to help each other... So do the right selection. But sometimes you have the opportunity to select because people are already there. And yeah, that's another scenario. For me, the starting point is the hiring process.

R.P.: And specially being in a country like India, there are so many software developers here. Every other person is a software developer pretty much and there's so many outsourcing companies as well, which hire people in the thousands, and do a lot of software development, maybe not following the right practices, but that's what's prevalent. So in terms of selection, it becomes even more critical to select for having the right skill set, the ability for these people to do really good quality work, and hire people who are interested in learning and interested in growing. And just filtering out people who are not following the same mindset that itself becomes very, very difficult, but also critical to having this dream team.

J.E.R.H.: That's interesting because a lot of the hiring processes are focused on the technical skill set or on the technology they are going to be using and so on. But these things have a big impact. Few minutes ago, we were talking about leadership, we were talking about soft skills and so on, and very few processes, when it comes to software development in general, they tend to look at this or at least they look at it very superficially. Don't you think?

F.A.: Yes. There's a massive amount of plus three years in JavaScript. There are lots of people looking for that and I've seen that this is something that doesn't add any value or doesn’t help to recruit someone that is a good asset for the team. Or the kind of the typical, really complex algorithm just to feel they compare… I mean, it's cool to have someone that can solve that problem. But there's a lot of places that have zero effort in looking for other things, for other kinds of skills. It was like: What is that? Well, we're looking for this extra thing that not everyone has. This extra thing that is pushing for. And there was a big conversation with people who were in the recruitment. It was weird! They said: No, but do you need to put something because we need to filter for what kind of language that person uses or what kind of learner. This is not what we're looking for.

J.E.R.H.: Just reminded me of “The Interns”, I think it's called the movie, where these guys go to Google and they're like “Oh, the Googleness!”: the extra around, the culture, the attitude that makes things… Why do you think it is so hard? Why do you think that's not happening?

M.D.: Before we go there, I see that there's one step that sort of is happening in other stuff like selection, if you want to sort of go this route, like we can almost change like level. But it's rare that the selection process is like a two way road, where you want to select people, like cherry picking the stuff but it's rarely the other way around, when we allow people to actually select us as well at the same time. I think that this is where the mismatch comes in. Because I'm pretty sure I could fake pretty much any quality, I would think the recruiter wants from me, and I think people are pretty good at it as well. Like, you want me to be a team player, get them out, I'll tell you, I have a very good team player, and I'll be able to tailor a story like on a spot. I think this is the part where he also says: To what extent would you like to do that? Because we're searching for someone that does this, this and that you're not it. But is this your aspiration to go there? And I think I would much rather have people who are under skilled, but are like: “Yeah, I want to be this, I really want to do that”. Or I'm already here, and I want to stay where I am. And if this is what I want, as well. And if this is the outlines on both sides, so both people sort of go like: “Yes, let's do it” rather than you trying to impress me, that I think is more useful, you're more likely in line to actually start building that team, because the building should go from both sides. Not just one side. So I know how we presented this like, very single sided process where we recruit people to do our job, and they're just people that we cherry pick. I think it should work both ways. Like they should also be like part of this building from the very beginning.

F.A.: Yes, absolutely. But at some moment, you need to start from scratch and if there's no people, that people need to come in some way. And I think that, probably, is about how we think in selection. For me the selection process is not something you make in a really quick way: half an hour phone screening, then one hour of technical things and another hour of personal interview and that’s all. For me is a process that requires a massive amount of investment for both parts to make that work. Just to put the most recent example: one of the things that I was asking for in the selection process was: “I want to spend one day in the office, I want to meet everyone that I will work with. I want to do what I'll do regularly with them”. Because it is about how you show yourself and what you can do. But also what you see the reality is. You can fake anything in one hour. But, for example, in another selection process that we had in another company was: “Ok, you’ll come one day as a developer, and you’ll be working one day in that team, fading with the guys”. Faking six hour of paper is really difficult, then you see what are the trends he has when he's doing something, how easily he argues or how difficult he makes things. So I think that theory requires a lot of time for both sides. Because also, as an employee, you want to be in the right place. And as an employer, you want to have the right employee. So both sides require that massive amount of patience to minimise the risks, because even if you fake it, it's always kind of wrong. That's why we have a probation period and something to address when we make those kinds of mistakes. But the more we invest to select the right people, that kind of deviation is less.

R.P.: I want to add something to that as well. Because in Dubai, during COVID, we ended up being a remote company. So you toss out of the door, the in person interviews are obviously critical. Traditionally we've really relied on those. But what do we do with our selection process? How do we replicate that? And we batted around a lot of things internally and narrowed down on starting with a technical assessment which the person has to take. So that's where your time commitment comes in. And what we noticed is the people who take the assessment are the people who've spent enough time to learn about our company, to learn about the culture and only if they are committed to it, they take the test. So that itself is a good filter for finding “marks”, as you said, and the people who really think alike. So that was an interesting initial gateway. And we constantly have this debate with our recruiters. They say: “Hey, there are so many people who are not taking the assessment, so maybe we should be calling all those people first. And maybe we should be doing something else first, as opposed to just shoving this assessment down their throat. But at the end of the day, it's that match which this assessment head says.

J.E.R.H.: I would say that there's also this aspect of doing a technical test that you can have a kind of checkbox. Now I have to go through and more or less based on that sort of result of that test. But when we're talking about soft skills, we are talking about emotional intelligence, or leadership or this kind of thing, it becomes a bit more difficult to assess that in a reliable or consistent way. It will also require people doing the interviews to have a different skill set, as well. And to some extent, I think that that's also something that influences whether that gets done or not, although it is happening anyway. Because when you're pairing with someone, part of the question that they were asking is: Would I like to work with this person? Do I see this person feeding it with the culture and so on? And you're sort of by interacting with them. You're getting this feedback and trying to answer your own question and assess if that's the case. But then how do you make that a standard process? Because that's very much interviewer dependent. That depends on who you're pairing with, depends on who is interviewing you and I feel that's also an aspect that makes it a bit more difficult. So if you don't mind, let's move on. We don't have the clean slate kind of starting point all the time. So what do you do if you are already working with a team and you want that team to be as successful as possible? What do you want to take? What if you want to take them to the next level of teamwork and of cohesion and so on?

R.P: I think that's always a moving target. No matter where you are in your journey, you'll always want to reach the next milestone of the team working cohesively together. So it's where obviously there's many cookie cutter approaches like you throw in coaching, sometimes you throw in mob sessions. And it depends on where the team currently is in their journey around and what sort of things you do with the team. And I'm talking purely from a managerial perspective here, not as a member of the team myself.

F.A.: Yes, and you need to know where you are and where you are going. And for me, the first question is: Is that working? So if we continue doing what we are doing, will we arrive at a place? Do we need to start to change things? So I think that the awareness for every team member is needed. That’s all of us need to realise: Yes, that thing is working but we need to improve X, Y or Z, or we have this lack of knowledge in that area that they need to achieve something. Because sometimes we are not even aware of what's the situation, or how do we want to operate as a team, or why do we need to operate in that way. Why is that needed? Maybe I don't care, I'm just working my day by day and that’s all. But it's not working for what you want to achieve. So starting from where you are, where you want to go and if that’s working, I think that is the beginning to have that awareness.

J.E.R.H.: There’s another aspect there: when you've been working in a certain way for a very long time you sort of become numb. Sometimes you forget about what it was that made me join this company in the first place. I'm passionate about and what is it that I want to do and all those things and I feel that, for a team, to become the best team that it can be, those things need to be aligned. The whole needs to be aligned with those individual drives or individual motivations. And starting to bring in that energy and restarting now almost like a patient who's had a heart attack. That idea of creating not only awareness of where we are, but also what it is that we want to get out of this. You have to make that question that I mentioned before: “Are we the best team that we can be?”. That's a very powerful question that I think teams need to answer if they really want to improve. Because if your answer is “No, I think it’s okay”, that's gonna be a challenge. How do you work with that? It's very important. 

But also of assessing where people are, what kind of tools have you used in the past? Let's say to make that information available or more visible to a team and to create that awareness of “Oh, this is where we are” or “This is what we need to improve”, etc. Could you tell us a little bit about that?

M.D: I guess it's something that she basically incorporates as a part of it assuming that we work in Agile. And you have structures like a retrospective and stuff like that. So this is the point at which you can use a sort of probe and check, a sort of health status or maturity status, if you will, of your team and see what's actually happening, to see what's what's there. So you might look at the most common access and I personally think that one of the most important ones is what is the sort of safety level within your team. So that's the first thing because this will impact everything else that goes after that. Because if people don't feel like comfortable, don't feel safe to share their opinions and how things actually are, they will basically just say “Everything is great, let's do this” and they'll even pretend to be quite enthusiastic if you suggest that you're gonna shake things up and we're gonna see some changes. I have a plan and then they'll just do nothing. So I think you’ve got to establish a sort of safety level, that's the first thing. Then you might look at stuff like how they perceive it, what is the structure and the clarity of goals within a team. You might start probing around to see people: who is who, who does what, and when, and where, etc. Then you should go into that, and probe around different sorts of assets, like dependability: Can you depend on other people? What's the meaning of work that we do? What's the impact of work? So there are quite a few of them, and you will tailor it depending on the context in which you are. But I think that, universally, safety goes first. How psychologically people aren't comfortable to do things like take risks or share their opinions or share situations in which they feel vulnerable. And I think mature teams will have this pretty, and to the full functioning team as well, they will have this pretty well and honestly developed. And the things Fran said before (honesty and all of that) I think they’re also included in this sort of psychological safety.

F.A.: Can I have a couple of things that I've done and did work for me? How do you create that psychological safety? How does it work? Because maybe you are in an organisation that this is already a given. And that's great. Nothing needs to be done. This is already there. But there are places where it doesn’t exist. So I'll just share a couple of things that I've done to move to that place of this psychological safety. When I arrive at a team I briefly try to create connections with each of the individuals to a point that there's some trust at different levels. Not just on a personal level, but also on a professional level: “Oh, this guy knows what he's talking about”. So that is something that, making that trust, makes it easiest for you to start saying things. So then you have created that,  making a mistake and recognising politically that mistake, it's like: “Oh, nothing happened. This guy made a mistake here” 

J.E.R.H.: Okay, You show vulnerability, isn't it?

F.A.: Yes, and I think it's easy because I make a million mistakes every day! So I just need to pick one and say “Yeah, nothing happened”. One step forward.  And then I like to use two tools that I applied with teams. One is a retrospective. This is the “Superhero” one. Basically, you create your own character of a superhero and say what your superpower is. But also, you have to say what your kryptonite is. So it's a good way for you to say ”I'm really good at that. And also, yeah, that's my mess”. And then we do shuffle and share the cards. So then you add a second superpower to the other team member. So what you are doing is recognising the superpower other adding another superpower, but also you are owning the kryptonite as a team because in the moment that you are aware of the other person's kryptonite, now it's your responsibility as a team. And that's pretty good. 

And then the other tool that I used to apply is the “Skill Matrix”. So basically, we recognise the business areas and technical areas and everything and each of the team members scores himself their knowledge on that area. So in the moment that you are scoring yourself, we use 0-1-2-3 or 1-2-3-4, it doesn't matter but it’s always an even number, so you never can be in the middle, you're forced to not be in the middle. At the moment that you show “Well, actually I have no clue about the business area. Now, it's a team responsibility to make me grow in that area”. So you feel less uncomfortable showing that you have weaknesses, because now it's shared with the whole team and the whole thing set as a goal that we need to improve each other, on the different areas to reduce the risks, and remove those weaknesses. It's a way to feel comfortable saying I don't know things, or I make mistakes, because everyone is doing the same thing. And now everything is something, it's something that I've done in the past, and it worked for me. So  I try to link it with each team, every time that I can.