CodersLink

How to enable engineering teams to deliver their best performance
Leadership and Management
How to enable engineering teams to deliver their best performance with Jose Delgado

How to enable engineering teams to deliver their best performance with Jose Delgado

by Carlos A. Vázquez   |   November 25, 2020   |     9 min read

The engineering world has been in constant change for the past 20 years, at the very least. New technologies, new programming languages, new applications, and new hardware have played a part in this change. We’ve seen most of our innovations in this same period.  From a management standpoint, it has also presented managers of those teams responsible for creating these innovations with a new challenge: how to properly and efficiently lead a team of creatives and creators. 

We had a chance to sit down with Jose Delgado, a software engineering manager at Olo, who’s been in the middle of this evolution and constant change for more than ten years. 

Software Engineer Onboarding Handbook

Jose’s story starts on a funny note; he got inspired to get into engineering by a radio ad! The ad said “networking administration in the future,” so he went and got an associate’s degree in it and got his first taste of the technology world.  Fast forward to today, the ad was not spot on, but wasn’t all that mistaken – it’s been software development that has turned into the future. 

Jose’s been working and leading teams for the better part of 8 years. He focuses on being an enabler as a manager and empowering his teams through tools to be productive. We talked about remote work, general management, engineering management, and hiring in the tech world. 

Here’s the full podcast episode for you to listen to:

Remote Work

As you know, remote work permeates our everyday lives and has become the new normality. Still, the tech industry had been making headway into remote work before the vast majority of industries. 

Why do you think we’ve evolved into remote work?

It’s a combination of things: Internet speeds have allowed us to communicate and work seamlessly from any part of the world. We have access to better security tools at the edge (laptop, phone, etc.). Even apps have evolved to provide better communication remotely (Zoom, Slack, Microsoft Teams). SaaS changed our mindset from locking our information down to we are ok with someone else managing our data. They are all enablers right there, so remote work just became very natural; we were just waiting for this big explosion of people working remotely to realize that there is a different way to work.

What advantages do you see when working remotely?

The biggest differentiator is that we don’t reward presence anymore. We used to reward the person who showed up early at the office, attended the most meetings, or stayed late. Those were usually the high achievers that want to be close to their bosses to executives, and that’s how you move up in that world.

With remote work, while it’s possible to have a presence with a one-on-one meeting via Zoom or to have your status on Slack, the added value here is that you look more at what comes out from your work, what value are you adding to the company and not how much presence time you have in an office.

That change in mindset is one of the most significant advantages of working remotely.

What are your expectations about remote work? Where do you see it going?

Increasing a lot more remote-first opportunities.  Especially now that COVID forced that function on a lot of companies

Are there some positions in tech that are better suited for remote work than others? Can you list some examples?

Unless you are maintaining hardware in a data center or doing physical security, you can probably be remote. The software is there, the connectivity is there, so there are virtually no excuses not to be remote. 

General Management Practices

Management is no easy task, and there’s a lot of different ways to approach it. In your eyes, what’s the role of a manager?

The role of a manager has changed or at least is in the transition to change. When the old books teach about management, they teach reward and punishment – carrots and sticks. Reward people when people do well and punish if they do wrong, which is very common across many industries.

But when you manage software engineers, you are dealing with creatives; then you find that the carrots and sticks approach doesn’t quite work with them. So the switch is to become what the industry refers to as “servant leadership,” where you become an enabler for the team. Instead of managing with carrots and sticks, we remove roadblocks, coach team members, and allow for autonomy, mastery, and purpose.

To be there telling people what to do, how to do it, and when to do it, it’s no longer the manager’s job. A manager’s job is to get the team together, help with processes, get everybody on stock, and then allow them to be masters of their domain. You hire them because they’re experts; let them be experts.

What’s your approach to management? Do you have a set of principles you follow?

  1. Team accountability – nothing happens in a silo – bug due to PR, requirements, testing, QA – Getting code out to production is a team effort; we are responsible and accountable.
  2. Time management over working late – block time, introduce WIP limits, ruthless prioritization.
  3. Constraints to spark creativity – Get used to being uncomfortable to think smarter. This sparks creativity to do more with what’s available.
  4. Simplicity first
  5. Value the individual, learn their intricacies and work within them.
  6. Build Trust – psychological safety is the most critical aspect.

How is managing remote teams different from in-person teams?

Lots of asynchronous communication happens in remote teams. Real-time is not the norm anymore. So, everything gets written down to allow all team members to get the information asynchronously; this is even more important in teams in different time zones.

How do you manage performance?

As a team, as mentioned before, everything happens as a team, so we all keep each other accountable.  Having good trust within the team makes it so that we can call each other out on detrimental things to the team.

Also, provide individual support; there are circumstances that we are not aware of, so have those 1:1s, see if they need help, provide the resources necessary.

How do you engage with remote teams? 

1:1s, breakfast club, meetups, tech talks, postcards, gift baskets.

Once the COVID pandemic is over, we look forward to re-implement in-person meetups. They add significant value, get to know some in person, have dinner, build trust, and it’s one of the best if you’re fully remote. 

How do you hold remote team members accountable? Do you use any kind of monitoring?

Hold the team accountable; we measure team outputs, not individual ones.  We want everyone aligned to a common goal, not competing with each other and hiding their peers’ knowledge.

A guide to building high performing engineering teams from day one

Engineering Management Practices

Managing a remote tech team is an entirely different animal than just managing a remote team. Let’s dive into that. 

Do you have any specific processes or frameworks (besides agile) that you use to manage your engineering team? 

We like Kanban a lot. The reason we use Kanban is its simplicity. It’s very easy to understand.

What are some weekly practices you follow with your team?

Stand-ups Monday and Wednesday and 1:1s. I’m mindful of my engineers’ time concentrating on what they’re doing rather than spending time in meetings. 

I’m very serious about time management. We actually use calendar tools that help the team manage their time. I preach the “Pomodoro technique,” I don’t force it, but I use it a lot personally. 

Are there any codebase management practices you recommend? 

Use tools that you’re familiar with. I usually go with what most people know because then you get better support. Because I’m always thinking about hiring, using tools that everybody knows the most likely, I’ll find candidates that are more familiar with them.

If a manager was starting a remote team, what would your recommendations be?

Start listening. The path to management leads to a point where you think you are in that position to tell people what they need to do and how to do it, but that’s completely wrong! Your job is not to do that anymore. You have engineers doing engineering work; your job is to enable them to do that, which requires a lot of listening. 

Second, start writing things now. If you can start a blog, that’s a great idea. But keep things that you learn written somewhere.

Lastly, lead by questions. You might know the answer, but don’t say it out loud, ask questions instead. Again, you have expert engineers that are building the system for you, and if you tell them what to do, your relationship can become defensive.

Hiring and Firing

How is hiring remotely different from hiring in person?

Hiring remotely is not that much different from hiring in person. You might lose on somethings like non-verbal communication that make a significant difference. When you interview someone remotely, you don’t rely on that information to make a decision. So, keeping your remote processes consistent is very important to give everyone a fair chance.

Also, you need to be ok with kids in the background, noises understanding that the interview is at their homes. So, all the “office rules” sort of going away.

So don’t punish people for little things in the interviews. Keep that remote mindset when you’re interviewing.

What traits or skills are more important in a developer when hiring remotely?

  1. Humility 
  2. Communication
  3. Team players / No solo programmers

Have you worked with international talent? 

There are differences in culture, and as a manager of international teams, you do not assume that people elsewhere work as they work in the U.S.

What are your general thoughts about them?

They are all excellent; they all add value to the team.

Are there any onboarding challenges when hiring a remote developer? How do you get them to understand your workflow fully?

The main challenge of remote work is communication, so we write every down.

Last Word

Lack of clear communication is the number one cause of project conflicts in a remote team. Of course, misunderstandings happen, but you can do your best to mitigate any adverse feelings by being very specific about things like timeframes, the project’s scope, and expectations.

Download our tactical guide, “Software Engineer Onboarding Handbook” to learn more about it.

Leave a comment