Increasing the productivity of software engineering teams can be a challenging task. Sometimes, it's hard to decide what you should focus on. Technicalities, like better tools, processes, or tech stack? Or human-related factors, like relationships within the team, psychological safety, or candor feedback.
Here, you will find some ideas on where to start.
Google researchers tried to answer the question - What Predicts Software Developers' Productivity? with the scientific method. Hundreds of engineers from Google, ABB, and National Instruments rated their agreement with the following statement:
"I regularly reach a high level of productivity."
Based on the answers, they devised an ordered list of factors correlating with (self-assessed) productivity.
If you want to get more detailed information about this research, check one of Abi Noda's newsletters, where he explains the paper in more detail.
Top Ten Factors of Developers' Productivity
Out of 48 factors, here are the top 10 which correlate with productivity the most:
- I am enthusiastic about my job
- People on my project are supportive of new ideas
- My job allows me to make decisions about what methods I use to complete my work
- My job allows me to make my own decisions about managing my time
- People who manage my project are highly capable, efficient, thorough, communicative, and cooperative
- The information supplied to me (bug reports, user stories, etc.) accurate
- I feel positively about other people on my project.
- My job allows me to use my personal judgment in carrying out my work
- My project resolves conflicts quickly
- People who write code for my software are highly capable, efficient, thorough, communicative, and cooperative
- "My software" refers to the main software engineers develop
- "My project" refers to the team of people engineers work with
As you can see, there is very little about technology and very much about people interaction. It's a hint for you, engineering leader, that tech stack, SDLC, and tech debt - while still important, are often secondary to what matters the most for your teammates and their productivity.
What you can do as an engineering leader
Here are some practical pieces of advice and actionable steps for each of the top ten factors (download the cheatsheet PDF from here).
1. Enthusiasm for the Job (I am enthusiastic about my job)
- Lead by example: Show enthusiasm for your work and projects. Express your passion for the work your team is doing.
- Share your vision: Communicate the bigger picture and the impact of the team's work to inspire enthusiasm.
Read more for inspiration here: 5 Characteristics of a high-performing team leader
2. Support for New Ideas (People on my project are supportive of new ideas)
- Foster a culture of innovation: Encourage team members to share and discuss new ideas without fear of criticism.
- Reward innovation: Recognize and reward team members who come up with innovative solutions or ideas.
Your job as a leader is to build a space where everyone can freely share their feedback and ideas without feeling judged. It can be a regular Guild meeting, a dedicated discussion channel, or a workshop.
Read more, for an example idea: How to not hijack brainstorming meetings