At a time when organisations in all sectors are expected to be rapidly digitising their operations, significant demands are being put on software engineering leaders and their teams to create the apps and services users need in order to meet business objectives.
That requires high-performing talent. But what does it take to build such a department, particularly when remote working and disparate workforces are the norms? We have spoken to a number of engineering leaders over the course of the last few months to find out how they build their teams. Through this, we have identified seven factors that need to be considered when developing and deploying talent that can deliver what employers need.
1. You need velocity plus impact
Brian Zotter, vice president of Product Engineering at Medium, while speaking at the Elevate conference, once defined a high performing team as one that focuses on “maximizing long-term, sustainable velocity”. In this instance, velocity is seen as the value delivered to customers over time (with customers as likely to be stakeholders within the business as they are external audiences).
The key is to understand how each customer defines value. So, if a customer is looking for a product that works first time, then a high performing team would be one that delivers a perfect solution, irrespective of how long it takes. Conversely, if the audience is focused on speed to market with a minimum viable product, then a high performing team will be one that can quickly deliver a basic working iteration.
However, what we heard consistently was that this velocity, or productivity, only goes so far – ultimately whatever the team is developing needs to have an impact on the business. In other words, the applications and services creating value for customers need to generate revenue as well.
That means that engineering teams need to consider the business aspect of what they’re creating as well.
2. That’s why communication between developers and the company is critical
Any specialist, whatever their field, has experienced having a customer, or stakeholder, that is dictating deliverables without understanding the implications of a change here, an accelerated timeline there.
Unrealistic deadlines and roadmaps, coupled with scope creep in sprints and projects, are common challenges many engineers face. Where high-performing teams differ is in their relationships with stakeholders — they continually communicate to establish understanding, manage expectations and build trust.
While there are always going to be external pressures, clear communication ensures that stakeholders realise the consequences to their ‘small’ requests, and engineering teams have the confidence, and ability, to have a say in the process.
3. Setting achievable tasks that can be accurately managed
Like many leaders, engineering heads often wrestle with how to direct teams without resorting to micromanaging. From our interactions, one suggestion was to break down the tasks and the features into the smallest possible chunk. In doing so, teams can accurately measure progress, reach milestones, and demonstrate tangible achievement throughout the project lifecycle.
In high-performing teams, drawing upon the experience of senior developers can help both managers and more junior colleagues be clear on how tasks can be broken down and delegated effectively.
‘As CTO you are responsible for both engineering and product’
4. Building teams by developing trust
That last factor also contributes to establishing trust, both for managers in teams, and vice versa. When a manager trusts a team, they know that they can assign tasks and they are likely to be achieved with minimal input, freeing up the leader to focus on other more strategic work, such as stakeholder management, team development and performance measurement. Equally, when a team trusts their manager, they are likely to be more engaged and, therefore, more productive. They are also more likely to back their own judgement and produce work that goes above and beyond expectations.
5. Giving developers ownership of features
Ownership goes hand in hand with trust. With engineering teams under such immense pressure, managers need their teams to deliver their tasks and move on to the next one with minimal fuss, in order to meet complex business demands. Giving developers ownership of certain parts of the project is one way of speeding this up — with different aspects delegated, not only are developers empowered, but more work can be achieved, and managers do not act as bottlenecks to progress. Yes, oversight is still required, but it can be delivered with more of a light-touch, ensuring quality control rather than being required at every step of the task.
6. Tracking the right metrics
Another element of trust is knowing how to incentivise teams. As one of the engineering managers we spoke to noted, if you start incentivising employees for time spent in the office, you create a culture within the team that focuses more on presenteeism than productivity. It is therefore vital that you select the right metrics and are aware of how they can influence behaviour. High performing teams strike a balance between tangible (such as commercial targets) and intangible (more focused on living cultural values) results that are both linked to incentives.
7. Using remote working effectively
Finally, the COVID factor. With long-term remote working a part of life currently, engineering leaders need to be conscious of the risks of burnout, even as they see and benefit from increased productivity. Virtual social events and gifts may work in the short-term, but they will struggle to re-engage overworked developers. Therefore, keeping in touch with teams, replicating watercooler moments and being rigorous in connecting with individual employees on a personal level need to be integrated with realistic workflows. It is also critical that leaders realise that even the top performers will handle situations in their own ways and need to be managed accordingly. One manager forced all their developers to take a day off Zoom and calls to focus on their daily work, helping to cut down on virtual meeting fatigue.
Being able to build high-performing software engineering teams is critical for organisations to not only develop the apps and services their audiences expect but as part of their ongoing transformation. Therefore, having a clear understanding of how these teams are nurtured and managed is vital.