How to Build a Great Software Engineering Team

Written by Madeline Hester
Published on Dec. 18, 2019
Brand Studio Logo

“Hiring the wrong person is a very costly mistake,” said Francis Sullivan, CTO of ScaleFactor. 

He’s not wrong. According to the U.S. Department of Labor, a bad hire costs a company about 30 percent of the employee's first year earnings. As a software engineering manager, this means it’s important to understand what qualities you want your team's culture to embody before interviewing a candidate.

When building his own engineering team, Sullivan said it's great to look for top-tier technical skills, but if personalities don’t align, nothing is going to get developed.

We talked to three tech leaders who shared what other factors they consider when building their software engineering teams. Along with creating an effective recruitment methodology, building a team-oriented work culture and encouraging cross-collaboration were essential. 

 

ojo labs
ojo labs

By fusing machine and human intelligence, OJO Labs is building tech products that they hope will empower people to make better decisions. Until that tech can make smart hiring decisions, however, Senior Director of Engineering Feroz Patwa believes he’s found an effective recruitment methodology to build his software engineering team.

 

What are the most important factors to consider when building a great software engineering team? 

Building a great software team starts with having an effective recruiting methodology. Hiring the right people at the right time for the right opportunities grows the person, builds the team and brings success to the company.

Promoting an empowered culture is crucial to having an engaged team. Our team has the proper context of who we are solving the problem for, and why it is important. With this context, our team figures out what solution to build, and how to build it. 

We aim high and promote a culture of continuous improvement by consistently challenging ourselves. We learn from our mistakes and we strive to deliver maximum value by being efficient and reducing toil. 

Everyone at every level is encouraged to dig deep and constantly seek out ideas and strategies that will make our product, team and organization the best it can be. 

We aim high and promote a culture of continuous improvement by consistently challenging ourselves.

 

What challenges have you faced as you’ve scaled your software engineering team, and how did you overcome them?

As we continue to grow, it is critical that we stay aligned. We need to effectively communicate information to and between our teams. Leaders provide frequent updates and ensure that everyone has the right context. This is done through regular one-on-one meetings, all hands, Slack channels, etc. 

For cross-team communication, our teams organize events that foster camaraderie and generate new ideas. Events include hackathons, lunch-and-learns, show and tell, tech talks and more. 

 

scalefactor
scalefactor

Francis Sullivan, CTO of ScaleFactor, said his biggest challenge is finding qualified people. To build his software engineering team, he continues to recruit outside of Austin and hire passionate recruiters who believe in company culture.  

 

What are the most important factors to consider when building a great software engineering team? 

It is important to hire people that are culturally aligned. Every company's culture is different, so it's important to hire for fit because technical skills can be taught, but the culture is more about who a person is and can’t be taught as easily.

Hiring people who are team-oriented and are able to communicate effectively is also crucial. Most software projects require more work than a single person can do quickly, so people need to work together as a team. 

Finding people who are able to learn quickly and build products efficiently requires constant learning about what works and what doesn’t, and then adjusting. It is very rare to start on an idea and get it 100 percent right from the start. Rather, standard software methodologies like Agile promote rapid cycles to improve learning opportunities and focus on solving the actual problems being addressed.

Getting people who are team-oriented and are able to communicate effectively is also crucial. 

 

What challenges have you faced as you’ve scaled your software engineering team, and how did you overcome them?

Finding qualified people is difficult in this environment, so the natural tendency is to lower the bar. But lowering the bar will not win in the long term. Some of the ways we have solved this challenge are by hiring outside of Austin and hiring recruiters who care about the company culture and find the right candidates.

Hiring the wrong person is a very costly mistake. We need to partner with recruiting to help with retention. If you are hiring someone for a specific job, you are not looking for a long-term fit. Constantly remind yourself that a job is temporary, but the outcome is permanent.

Another challenge is the competitive market. A way to make sure that you set yourself apart is to ensure the candidate understands how they would fit in with the company’s vision. Explaining how tech talent aligns with the business, and showcasing what working closely with the product delivers for the company can be powerful. At the end of the day, software engineers want to build a product that is used and adds value.

 

ccc

Director of Architecture of Telematics Technology Todd Rigertas emphasizes the importance of empowering talented engineers at CCC. For him, making a good engineer “great” means giving teammates “authority, information, resources and a compelling mission.”

 

What are the most important factors to consider when building a great software engineering team? 

Great software engineers empowered with authority, information, resources and a compelling mission make great software engineering teams. As Jim Collins wrote in his book “Good to Great,” “Get the right people on the bus, the wrong people off the bus, and the right people in the right seats.” Simply put, great software engineers hire other great software engineers.

Engineers must have the ability to set their processes, execute independently, retrospect, course correct, lather, rinse and repeat. We have found that these attributes enable advanced growth of individuals, which leads to great teams.

Simply put, great software engineers hire other great software engineers. 

 

What challenges have you faced as you’ve scaled your software engineering team, and how did you overcome them?

As with any startup, the Austin telematics team started primarily with only software development resources and senior leadership. As the customer base has grown, product owners, scrum masters and software developers in-test have been added. The new roles and responsibilities required processes and ownership adjustments for all team members, with the primary development challenges of shared software quality ownership and development agility. 

Emphasizing retention of static analysis and unit-testing responsibilities, while adding test automation plan reviews with comprehensive team participation created a more scalable SDLC. The combination of unit tests, functional test automation and load test automation have provided developers with the confidence to accelerate the development of new customer requirements.

 

Responses have been edited for length and clarity. Images via listed companies.