‘How does the culture & dynamics of high-performing dev teams look like?’ with Leonardo Andreucci, Tech Advisor and Fractional CTO

In the recent episode of ‘Beyond the Code’, Host Kshitij Mohan welcomes Leonardo Andreucci, an esteemed Tech Advisor and Fractional CTO. The central theme of the discussion revolves around –  How does the culture & dynamics of high-performing dev teams look like? 

The episode kicks off with a fun fireside chat which serves as an entrée into his personal journey and experiences. Moving forward, the discussion takes a deeper plunge into shifting to the customer approach and solving the right problem. 

Further, Leonardo delves into the leadership dimension, highlighting the significance of offering autonomy to team members and cultivating trust in their abilities.

Wrapping up, Leonardo imparts a valuable perspective on what constitutes the right team culture within the developers’ realm.

Timestamps

  • (0:06): Leonardo’s background 
  • (1:04): Fireside chat with Leonardo 
  • (6:52): Balancing limited resources and achieving more 
  • (8:59): Balancing autonomy and agility 
  • (10:58): Overcoming the challenge of differences of people’s opinion
  • (14:51): Leonardo’s thoughts on what constitutes the right team culture

Links and mentions

Episode Transcript

Kshitij Mohan: Hello everyone. I’m Mohan your host back with another exciting episode of Beyond the Code by Typo. Today’s guest is special and unique in his own ways, right from being a VP of people to VP of Engineering, he has seen it all. He has been in the engineering ecosystem for more than 20 plus years and currently acts as a technical advisor and fractional CTO to organizations.

Please meet Leonardo. Hey Leo, welcome to the show.

Leonardo: Hey, Mohan. Great to be here.  It’s a pleasure. Thank you for the invite and yeah, I hope we can speak about interesting stuff for the audience. 

Kshitij Mohan: Definitely, Leo, your experience speaks the volume, so Definitely. And thank you for sharing your time today with us really means a lot.

Leonardo: Great, great pleasure. My pleasure. 

Kshitij Mohan: Perfect. So, given the kind of this unique experience of people, culture, and engineering that you bring, Leo. So today we would love to talk about how to build the right dev dynamics and culture in the right teams. But I think before we get started, we have to go through our fun fireside chat with you. That’s when us and the viewers would love to know the real Leo, and that’s what it aims to be. So if you’re ready,  let’s get started. 

Leonardo: Sure. Let’s go. 

Kshitij Mohan: Perfect. So let’s go. So question one for you, Leo. Since you come from this beautiful Brazilian country, which has its own unique cultural heritage, how do you celebrate this heritage in general? What’s the fun way to do that? 

Leonardo: Yeah,  there are lots of traditional,  parties celebrations,  holidays, and everything. ,I think the most famous one is Carnival.  It’s four days holiday in February or March. And each region,  celebrates it in a different kind.  The one you probably know you’ll see on TV is from Rio de Janeiro .  So it’s a huge avenue and  they’re actually groups that they compete against themselves. Right. So it’s a competition for the best samba school, the best parade, so to speak. And this is huge and people prepare all year for that. I actually prefer smaller environments, so I have some friends that do it, and, it’s very popular in Rio and Sao Paulo nowadays too. So you have people going through the streets,  a group of, I don’t know, 20, 30 people playing instruments and people just moving around in streets, singing, dancing, having fun, having a few beers.

Kshitij Mohan: Haven’t you been doing samba, Leo?

Leonardo: I actually played when I university for a year or so,  but I prefer the listening and drinking part. 

Kshitij Mohan: Drinking part, obviously. No, perfect. I think this leads to the second question that how do you unwind yourself? What’s your favorite way of yours to do that?

Leonardo: For the last two or three years I’ve been playing a sport called Footvolley which is very interesting. I’m addicted to it.  It’s like beach volley, like two people in each side of a court in the sand.  But you cannot use your hands. So it’s feet, shoulder, chest, and head. And it’s the same as beach volley. Like you have three passes in one side. Then you attack on the other side. And it’s super interesting. I’ve been doing it for a while and. I wanna play it every day. It’s great. 

Kshitij Mohan: Whoa. That’s fun, isn’t it? Tough not to use your hands and like, do all the other stuff. 

Leonardo: It’s, but it’s why it’s so fun.

Kshitij Mohan: Oh,  perfect. I think now coming to the third part of gadgets, right? Android or iPhone, which one are you? 

Leonardo: This is gonna surprise you, but actually none. I’m not a huge fan. You know,  I have an iPhone, but I use a Windows on a Dell notebook. So for me, it’s just a tool and whatever gets a job done. 

Kshitij Mohan: Whatever suits you better.

Leonardo: Yeah,  I used to be bullied by my software engineer colleagues. Because everybody had a Mac and I was on my windows, and they would make fun of me. But yeah, whatever. 

Kshitij Mohan: Perfect. Now coming to the fourth question, Leo, what’s your favorite Portuguese saying that you live by? 

Leonardo: Yeah. it is not actually in Portuguese. I’ve heard in the Manager Tools podcast. This is a great podcast. I highly recommend it, and it’s something that I’ve tried to live by my whole life, and then they summarized it. It’s “you must not lie or cheat or steal, nor tolerate others who do it”  and it’s so funny because it’s so difficult to not tell little lies in our day-to-day lives. So even to our kids and everything. So  I’m really trying to speak the truth at all times.

Kshitij Mohan: Ah, beautiful. Beautiful, Leo. Perfect. I think then one last thing coming to these advice is that what’s that one piece of advice that this calm experienced Leo of today would love to give his younger version of selves. So what was that one piece of advice that you’d like to share? 

Leonardo: Yeah, I don’t think I’m gonna stop at one, but please stop me if I go too far.  But the first thing that really changed me a lot is having scheduled weekly one-on-ones with each member of my team,  this increases trust and you’ll get to know people on a personal level, and for me, it’s the basic stuff when you lead people. The second would be not to go into desperation modes like things will go wrong. You will have tough days, you will have tough weeks. You’ll have tough challenges and everything, but man, it is part of the job and it’s part of life actually. So just take it easy, keep working, and know that it’ll pass, you know, you’ll overcome the challenge that sometimes we’ll overcome you. Things might go wrong. You might lose your job, or, I don’t know but then there’s a lot of learning opportunities when things go wrong. So even if they do go wrong,  there’s a still learning to have.  And especially when you feel stressed about work, I don’t know, one year from now, will you remember why you were so stressed about it? Probably, probably not. So just try to take things easy. And the other thing I’ve seen people in companies that sometimes they’re really restless and I think I am one of these people that I always trying to improve things and move things forward and this not good, this not good. Not exactly perfection, but moving in the right direction, right?  And I’ve seen people say, oh, maybe I shouldn’t be doing this and I always say, yes, you should, because these are the people that move the company forward. So if you’re a restless person, keep trying to improve things and never be satisfied with the status quo, like things can all go, or, things can always improve. And actually, if they’re not improving,  they are getting worse. It’s hard to keep flat,  yeah. So you either improve or you worsen. 

Kshitij Mohan: No. Perfect. I think this truly is insightful and I think this totally resonates to what I personally believe that this too shall pass. So what you mentioned, right? So it’s good or bad. If it’s good, it’ll pass. If it’s not good, it’ll pass. You have to just keep moving. So, perfect. This kind of really helps Leo, thank you for being so candid and being true to us. So thank you so much. Now I think getting to the real stuff, right? So you have scaled, seen the entire growth journeys of startups, right? And while building these dev teams, I think the first biggest question that everyone has is how to do more with less, right? You are always short on resources, but you would always want to do so much. I think your given experience,  your thoughts on that Leo? 

Leonardo: Yeah. So  I think this is not the answer you want to hear, but I wouldn’t worry about doing more with less. I’m worried about doing less, like how do we do less?

But we do the right thing it’s having laser focus on what you really want to achieve, what you really need to do right now.  And for me, this goes through talking to customers all the time. It’s something you’ve heard before, but go out of the building and talk to customers. Understand what you’re really trying to build and sometimes in a software product, it’s better to have fewer features, but features everybody really uses than have feature creep and other things that nobody uses. And then it gets so complicated, then you don’t know where to start.  And also to do things that don’t scale. Because when you’re doing things that don’t scale, you are learning a lot and you’re doing things manually. So if you’re doing things manually,  it’s much easier to change things right, it’s easier to learn and easier to change. If you want to start with an Excel spreadsheet. Go ahead. If you want to start to type form or the low code or no code or just a lead form, and then you call your customer and try to solve their problem offline, that’s fine because then you are learning and you’re actually working on the thing that really matters, and okay. When you get to the point that you cannot, you have so much demand that you really cannot do things manually, then you have a very good problem you start thinking, you start to focus on engineering and scaling and everything. So that’s my point. And  I think not that many companies and products are at this stage that, oh, we need to scale to millions of users.  So let’s focus on solving the right problems. 

Kshitij Mohan: Oh no. Perfect. Rather than doing more with less, think of doing less, but with the right set of attitude and things coming together,. Great perspective view. I think this totally aligns, right? So while doing all this, while being in that mode of building and doing everything together, there are two values that I think everyone talks about is autonomy and agility. Because this is what when the right combination fit in is what leads to high-velocity teams. But your take on that, because that’s what the biggest challenge is, how do you balance this stuff together? 

Leonardo: Yeah. So  I’ve been studying a lot about self-directed and self-managed teams.  One important thing to clarify is like a self-directed team is a team that the team defines where to go and this is not the reality of many people, right?  When I talk about self-managed teams, what you usually have is somebody defines a direction, probably the CEO or the board or the stakeholders or whomever and then the team organizes themselves towards that goal. So these are self-managed teams and what I think really works is like having boundaries for action. So let’s agree as a team or as a company, what can the team do by itself?  What does he need to ask for permission?  What are the things, like, what are the values? What are the things that we should be working in which way should we be working? And this needs to be aligned, right? So I always say to have alignment between the team and leadership and what should the team do by themselves or not. And another thing that really strikes me is that I’ve heard it recently, and it’s treating adults as adults. So you are hiring a very knowledgeable people. You are hiring knowledge workers.  You’re hiring people that  have studied a lot to be where they are. So you don’t know that much.  If you have these people, why not trust them to do the right thing?  So I really believe in autonomy and having people decide on how they work. How do they approach problems and how do they get stuff done? Because after all, they’re the experts here, so this is important for me. Yeah. 

Kshitij Mohan: But I think, as you mentioned while doing all this, there is always this difference of opinion, right? People coming with different perspective, different thoughts. And then I think that the biggest challenge becomes in that how do you make people agree to disagree or commit to one cause? And then just moving and going about it? How do you think is the right way to go about it? 

Leonardo: To have people agree or to decide the way to move forward?

Kshitij Mohan: Exactly. Because everyone comes with their own set of thought processes. They think, oh no, this could be the right way, or this could be the right way to build, the right way to move. How do you bring those thought processes in line? 

Leonardo: Yeah, I think the first perspective that not everybody really thinks about is how much time do we have to make this decision? What’s the deadline? If the deadline is five minutes, I would decide right now and we’ll not talk to anybody because there’s no time. So, it’s not common, but it might happen. Okay, so assuming it’s not a five-minute decision, how much time do we have?  And then, I need to decide which people are gonna be involved in this decision, right? So it’s my direct reports or is the whole team, or is the whole company?  And this, depending on the decision could be more people or less people, right? If you have more people, you have more, buy-in from everybody. But probably the decision takes longer to be made. So  I have to balance this. And then another part is, Okay. If we know the people and we know the timeline, how are we gonna reach a decision? Is it majority through voting? Is it consensus? Is it give information? But I decide or give information but that person decides. So there’s actually two decisions should be made. How are we gonna risk the decision? And then the decision itself. And  I like consent-based. So somebody would bring up a proposal and say, okay,  here’s the decision I wanna make. Is anybody strongly opposed to this? I’m not asking would you do it differently? Maybe you would do it differently. But are you strongly opposed as the way I’m proposing or anybody’s proposing? ’cause that’s the way we move forward a little faster, right? It is not, I wanna have it my way, but it’s this way is fine with me. I like the good enough for now, safe enough to try approach. So this is good. And I also like to stress the solution with questions.  And to think if it can evolve, because we probably won’t get it right this time, right now. But can it evolve? Or if we uncover new perspective or new things or new challenges and the environment’s gonna change, right? Things are gonna change, technology is gonna change, our customers are gonna change, but can this definitely decision architecture or whatever, can it evolve? And if we have a path forward, great. The problem is making a decision,  if we uncover it was the wrong decision, then we need to throw it away and start all over again. So these a bad one.  But if you can evolve, that’s fine. 

Kshitij Mohan: Sure. I think, but you must have been,  in a situation where, hey, you thinking X, but the consensus comes on y then any specific experiences that you had on this? So was it my way or highway then?

Leonardo: Yeah, but I’ve been proved wrong many times by my teams. So I usually trust the teams and if I have some people that I really trust that I know are very confident and, and they’re telling me the other way to go is the way to go. And if I cannot have a strong argument against it,  I’ll go with the team. And also depends who’s gonna be accountable for the outcome of this decision, right? If the team is responsible, is accountable for it, okay, let’s do it.  It’s trusting their people. Treating adults as adults 

Kshitij Mohan: Exactly. Coming to the autonomy. So that definitely has to be, has to be felt in. Perfect. I think one last question, Leo. So we’ve been talking about people in engineering and everything together. So what’s the Leo thought of that Utopian or the right culture for dev teams and every role that a stakeholder has to play in building that piece up? So your thoughts on that, Leo?

Leonardo: Yeah. So the first thing I like to think is what’s a good software engineering teams, right? In terms of skills so I like to have, I don’t know, five people in teams. They should all be great software engineers, great in writing code and everything. But,  I like when they are great software engineers and they have an additional skill. So imagine a team of five that one person has good product skills and the other has good cloud skills. And the other is very keen on agile processes. And the other one’s very good on metrics. And the other one’s very good on quality. Man, this is a dream team for me, right? So 

Kshitij Mohan: Yeah, that’s a dream team!

Leonardo: Everybody will, everybody will write great software, but they’ll get this adjacent skills,  would be very helpful to the team. And then when I think about leadership and managers and everything. I really believe in servant leadership.  I think the manager is more of a facilitator, right? So I don’t think the manager is any better than the rest of the team.  He or she just has a different role and this is very important. Like, I’m not superior. I might have more experience sometimes not I might have a broader view of some things, sometimes not.  But I have a different role, so I’m not any better than anybody on my team or on my company just because  I’m a manager, a director, or a C-level or whatever, right? My role, my position does not define me. So this is important, and I like the manager or the leader also managing the system, not the people, and then reducing the information asymmetry and reducing the power distance, because sometimes you’re a manager, but you have more information than your team and then you wonder why is your team not making the same decisions as you would,? Man, because they don’t have the same information as you have. So maybe if you give them all the information, they’ll get you to the same decision or to the same thinking. So always try to give us all the information I can, I really am super transparent, and I believe this is a core value in any company-  to be super transparent and also listen to the team, right? Most of the time, if you ask your team what are the problems they have, they know the problems. And they can tell you what the problems are. They need help solving the problems, but it’s not rocket science. You know, like talk to people and they probably know  10 things they need to get to improve. So yeah, let’s discuss about it and see how myself as in a leadership position can help the team overcome these problems.

 And I think this helps solve the basic stuff.  If you do resolve all the problems in the team, you get to a very good position. And then the second part is, okay, let’s raise the bar and team. We’re in a very good position right now, but it’s very different in a retrospective meeting, you ask “Hey, do you think we work together?” And people say, yeah, we work together. Well, our team’s good. We get along fine.  We achieve great results. The product’s going, this one kind of question. But then you ask, “Are we the best software engineering team in the world?” Probably not. So how could we be the best team in the world, right? And then people will start to think like, how to go further along and how to be much better than they are right now. So yeah, it’s all about how to frame the question to invite or incite people to be better than they are right now. So, 

Kshitij Mohan: Right. So let’s pass the right information, push boundaries, I think that’s what collectively builds the right ecosystem. 

Leonardo: Yeah, exactly. 

Kshitij Mohan: Perfect. Perfect. Thank you so much, Leo. Thank you for your time today. This was great, insightful. Thank you for summarizing all your 20+ years of experience in these fine bits of conversations. So thank you so much for your time today, Leo.

Have a good day. Thank you. 

Leonardo: Yeah, no, you’re welcome.  It was my pleasure.  I hope it’s been useful. Super, super happy to contribute. 


Kshitij Mohan: Thanks, Leo.