When it comes to increasing your development team’s productivity, solving persistent problems, or delivering your product faster, adding more headcount isn’t always the right solution. In many cases, it only makes the problem worse, especially if you’re behind schedule. Perhaps it’s counterintuitive. But it’s also true. Let’s see why.
First, as we all know, software development is a complex and interrelated task. It takes time for new team members to get up to speed and be meaningfully productive. Even for experienced developers, it can take up to four weeks to fully ramp up and understand all previous workstreams.
Acquiring the necessary know-how or achieving complete understanding also does not happen without doing anything. Existing teams may have to spend time onboarding staff, which can distract them from the task at hand.
The problem is compounded when new talent doesn’t have the right skillset. You may (unintentionally) have negative effects, such as introducing bugs, which will take more time to fix. And of course, introducing new personalities to your team can sometimes disrupt working relationships and impact productivity.
It’s also worth remembering that the larger the team, the more difficult it becomes to manage. Lines of communication are stretched, coordinating the “right” work becomes a challenge, and monitoring becomes difficult. This is certainly the case when capabilities are distributed around the world. In today’s post-COVID-19 world, a remote-first environment has certainly leveled the playing field, but time zones and multiple handoff points can still cause problems.
Understand the problem – Is productivity really the problem?
This can be difficult, but staying calm and applying calm analytical thinking to what is really going on and why can help you determine what the real problem is. Often this means differentiating between symptoms and causes to determine the actual cause of the delay.
This process should include an assessment of whether slippage is real or whether initial expectations were overly optimistic and perceptions of progress need to be readjusted.
Teams tend to learn more and gain momentum after they start, so regularly assessing expectations can help avoid negative perceptions.
Similarly, the inability to transparently report on individual deliverables or communicate effectively across organizational boundaries can create negative perceptions regarding time frames.
Forecasting reliable deadlines and revising schedules for project completion can go a long way in fostering better and more open collaboration with business sponsors. Make sure everyone’s expectations are known and managed realistically.
Poor communication can also lead to misunderstandings. Often a number of step-by-step tasks are completed. However, it is easy to get caught up in the day-to-day work and forget to continue evaluating sponsors and stakeholders. Similarly, it can be difficult to articulate the “invisible” work that is essential to success. And developers aren’t always the best people to do it. The value of having a “translator layer” (someone who can explain processes in clear business terms to less technical leaders) should not be underestimated.
Finally, if your development team is working well but is still struggling to get your code into production, the problem may lie with the delivery mechanism itself. Without the right tools and technology, your team will spend countless hours wrestling with inefficient processes and frameworks that hinder rather than enable productivity.
Three ways to get your project back under control
1. Diagnose and overcome obstacles
The problem may be inefficiencies in the production pipeline or backlogs that require improved hygiene. But if you don’t know that, no amount of engineering horsepower will help you. Identify root causes, bring in expert support, and equip your existing team with the skills to address root causes. By doing so, you can break down immediate barriers and build higher-performing teams for the future.
2. Create a new team instead of a large team
You may have decided that someone with a more specific skill set would speed up the work. In that case, aim to create new, smaller, separate teams with clearly defined roles and tasks. Avoid disbanding or adding to existing teams. As mentioned above, this can affect dynamics and slow things down.
3. Build the right organizational structure and clarify domain boundaries
Check to see if your systems and processes are empowering your employees or creating artificial boundaries. With the right structure in place, your team will quickly become more efficient. They will also be happier.
Inevitably, we have taken a rather simplistic view of a complex problem. In some cases, you may need to rethink how processes like CI/CD are implemented to unblock the production pipeline and clear the way for project teams to execute. Other scenarios may require highly specialized skill sets to solve particularly niche problems. And you may actually need additional functionality.
Ultimately, however, a perceived lack of team performance or developer productivity is more likely a symptom of a broader problem. If you get to the root of it first, you might not need to bring it up to others because you’ve already solved the problem.
I hope this blog has raised some important points for you to think about. If you would like to discuss these further, please contact us.