How to Build an Engineering Team
In software development, the engineering team is the group of developers and managers responsible for the actual production and building of the given product or service. They are the ones carrying out all of the sprints and working on new or necessary features, updates, and fixes. Much of what the customer uses and experiences with the end product is built and/or maintained by the engineering team.
When building your own engineering team, there are several important factors to consider. What roles will you need? What team structure will work best for your company? The answers to these questions will depend on what will best help maximize the effectiveness of your team.
Key Engineering Roles
A company’s engineering team is made up of several different roles that support one another and collaborate closely throughout the production process. An effective engineering team will include a combination of developers, managers and team leads, and quality assurance specialists.
However, as with many industries, tech companies have vastly different needs and therefore will have some varying engineering roles or titles from one to the next.
The Software Developer
Though obvious, an engineering team is nothing without its developers. Software developers are the ones writing the code, and their job is purely technical. Most software developers are considered individual contributors, meaning this engineering role typically has no management or HR responsibilities.
Still, the role of a software developer in today’s tech culture is no longer the cliché lone wolf hunched over a keyboard with headphones blocking out the office around them. Today’s tech companies and agile frameworks emphasize close collaboration between developers, which then calls for additional non-technical skills like communication, teamwork, and flexibility.
A typical software developer career path may look something like…
- Junior Developer
- Senior Developer
As you’d expect, the primary difference between the above roles is the amount of experience and seniority. For example, the title of Senior Developer is typically given to software developers with about 5-10 years of coding experience.
Software Development Team Leads and Managers
The software development team leads and/or managers are like Software Developers whose primary role requires management responsibilities. While they will often still be needed to write some code or help design new products or features, the team leads and managers are also in charge of a number of direct reports; a team of engineers they must manage and lead. From company to company – and based on the specific management level or responsibilities – engineering Team Leads and Managers could have anywhere from under 10 to hundreds of team members under their lead.
There are several different types and levels of team lead and management roles within an engineering team depending on its structure and specific needs. Some typical specific roles include:
- Engineering Lead and Senior Engineering Lead
- Engineering Manager and Senior Engineering Manager
- Director of Engineering and Senior Director of Engineering
- VP of Engineering
- Senior VP of Engineering
It’s important to also note that not all team leads (such as the Engineering or Senior Engineering Lead roles) are always management positions. This will vary from company to company as team structure must always be unique to its specific needs and goals. For example, a small startup company would not require the same number or kinds of management roles as a large tech giant like Google or Amazon.
Quality Assurance Engineers and Managers
Last–but certainly not least–are the quality assurance engineers and leads/managers.
Quality Assurance (QA) Technicians are responsible for testing the products and any new updates. While they may need to write code for testing purposes, Quality Assurance Technicians do not work on the initial build that is carried out by the Software Developers.
Similar to software development team leads and managers, QA Managers often will need to do some testing or code writing, but their primary duties include management responsibilities.
Some typical QA roles within an engineering team structure may include:
- QA Engineers (I-III)
- Senior QA Engineer
- QA Lead and Senior QA Lead
- QA Engineering Manager and Senior QA Engineering Manager
- Director of QA and Senior Director of QA
Common Engineering Structures
Establishing the right structure for your engineering team is just as important as the roles that make it up. There are many different ways of structuring an engineering team based on the unique goals and characteristics of your company. Simply adopting another team’s model, no matter how successful it proved for them, may not always be the right fit.
Different engineering structures have different pros and cons. Some favor technical specialists and a waterfall approach to production, while others put more emphasis on a cross-functional team and agile production frameworks like Scrum.
The three most common engineering team structures are:
- Technology Team: The technology team structure is mission focused with a waterfall approach to the production queue and an emphasis on technical specialists over a more cross-functional team. The downside to technology team structures is an often slower speed to market for new products and updates.
- Product Team: The product team structure is also mission focused, though it instead utilizes an agile approach to production (ie: Scrum) and a cross-functional team setup. A huge benefit of this agile approach is faster deployment times, meaning teams are able to more easily keep up with user expectations and deliver continued improvement. This team structure also favors a cross-functional team
- Matrix Team: The matrix team structure (also known as the “Spotify” team structure) falls somewhere in between the technology and product team structures. While matrix teams are often cross-functional like product teams, they may report to different managers as opposed to a single manager. Managers in this team setup are more personnel managers than product leaders.
Technology, Product, and Matrix team structures are often referred to as part of a so-called triad. Each structure has its own benefits and drawbacks, while also sharing some similarities with the others. Nowadays, companies are “tweaking the triad” and creating customized team structures that work specifically for them.
How to Manage Your Engineering Team
Managing an engineering team is a constantly evolving process. It’s important to actively monitor what is working for your team, what isn’t working, and make adjustments to continuously improve your team’s efficiency and the effectiveness of your processes.
Some tips for managing your engineering team include:
- Make sure your engineering team has a psychologically safe place to work. Each team member should feel well-supported and listened to by their peers. Create a workspace that promotes a problem-solving mindset rather than pointing fingers or passing blame.
- Set clear expectations. It may sound overly simple, but clarity must be a core value among your engineering team. Clear communication between team members will encourage better collaboration and allow for frequent and more specific feedback.
- Be flexible and adaptive. With software production, things will always come up that are not expected. An effective engineering team must be highly adaptive to changing circumstances and look for opportunities where challenges arise.
There is no cookie-cutter science to structuring and managing an engineering team. Your team must be as unique to your company as the products and services you create. Take the time to determine what it is will maximize your team’s efficiency and then choose the appropriate roles and team structure that support those same goals and values. To learn how PagerDuty can partner with your organization’s engineering teams, contact us and start a 14-day free trial today.