I’ve know Tiago Sousa for a really long time. We were both students at ISEL, we did some classes together and actually ended up doing our thesis together. We worked at Orion’s Belt, a massive online multiplayer game, and it was one of the best experiences I had as a developer.

We then started working at Safira and then moved together to PDM where we worked on several projects. We later parted ways and each one of us had our own path.

Tiago is a seasoned developer and currently is working at Sky. He had several team leaders and managers and on this interview I try to understand what’s his opinion on being the best manager.

Hey Tiago, what can you tell us about what you have been doing at Sky?

My work is a little bit wide, I can do a simple programming feature, but I can also be evolved in an architectural decisions or even in discussions about new approaches to problems.

I’m part of the support team too, so I need to have a pretty good global vision of all our application. The phone rarely rings, but when it happens I need to have the ability to look at logs, identify the problem and make decisions if it’s a critical incident and we need to be attack it ASAP, or if it’s a problem in an external service and we need to contact other teams, or is a simple punctual problem and can be resolved in the next working day.

Internally I already worked in multiple teams, and in a couple of strategic projects, with lots of different people so I consider I’m a lucky guy because almost every day I can learn something new with someone.

So you’ve done lots of stuff on several teams, and you also worked with several team leaders I’m guessing. What’s in your opinion the best and the worst traits of team leaders?

I know this is a common expression, but is so true: “A true leader should lead by example”.

A good team leader should take care of the team and help each member to grow. Each one in its own way. Ensure a good balance between what makes the team happy and what is required by the business. For example, you can’t always ask the team to make an extra effort to make the business happy, but sometimes is needed. And a good leader knows how to ask it and knows to reward it, and the reward doesn’t need to be monetary, you just need to recognize the extra effort.

On the other hand a bad leader is the exactly the opposite. But I’ll add something more. Having a leader who you feel he doesn’t mind about the project’s direction, who you feel he doesn’t trust you or the team, who you feel he is more worried about himself… for me is a very short way to undermine the final result.

When you say that that a leader should lead by example, how much coding do you feel that the team leader should do? Should he be an authority on the technology side? How would you leverage a more technical manager against a manager that makes the team happier and more productive?

I already had the 2 types of managers, and as a guy how likes technology I would say that a manager with coding skills it’s a nice to have but isn’t the most important. Saying this I think is fundamental to a manager to have a technological background, otherwise how can he know if something is possible to be done, or how much time it should take, or how can he defend a point of view in a meeting?

When I said a leader should lead by example, it means a leader should listen to all members of the team, should know how to manage conflicts, should put the boots of each element of the team and the developers who he interact’s with, and feel what they feel. A manager is a manager, is not a developer.

That’s a great description, that’s for sure. Let’s change then to things that managers should do. I see a manager with the responsibility of growing the team members. Imagine that in two years you are 10x better and more productive. What part should your manager have on that and how can he help you accomplish that?

That’s my normal. :) :) :)

Jokes aside, everyone have things that likes more than others, if I’m doing something which I like surely I’ll be stimulated do to a good job, to investigate the best solution. A manager should know each element of the team, so if I like working with SQL the manager should give me issues with SQL, if my colleague likes CSS he should have issues with CSS, and so on.

Challenging the team is good too. A manager that knows the product and have a problem and challenge the team to find a solution for it, looks like a child play, but it’s a very smart approach which result in every team element starting to investigate, study, trying to know better the product, the technology and probably will find some new trends capable of resolving the problem.

Improving in technical terms is very important and rewarding for developers indeed. But what about soft skills? Communication skills? Do you believe the manager should go for that? In your case, would you like that and how could the manager take the most out of you in non-technical issues?

Of course. In fact most of the recognition a developer can achieve is because he’s a good communicator, can explain clearly and simply his ideas, is not because he’s a great coder, don’t be deceived. I already told to some colleagues - “You sell yourself very bad, you are great, but you don’t know how to show that to other people.”. You can’t compartmentalise people skills, if you work with someone you have to live with a good or bad developer, a good or bad team member, a good or bad friend, and so on, a person must be seen by the complete package. If you ask me if I prefer to work with a great developer that is a despicable person, or a average developer which is a great team member, in a blink of an eye I will pick the second.

Like technical skills, communication skills or other skills, is something you are born with the predisposition to. Nevertheless you can train them. You can do soft skill training and have coaching. You can learn reading books, there are an dozens of ways you can develop your soft skills.

I definitely agree with you. Thanks for your time answering my questions. It was really good to see your point of view and managers will learn something from it. As a last question, anyone you’d like to suggest for me to interview next?

It was for less than 2 years, but I worked with a young guy who marked me a lot, I look at him as a model of what I like to have as a team-mate. Is name is Manuel Felício, he is really brilliant, and every one around him learned a lot with him, technically he one of the bests I ever worked, and as a person he is always available to help everyone. Definitely he is a guy who you want to know a little more about is professional experience.