We’ve seen time and again how productive software development teams can be one of the core drivers of business success. Efficient, productive, and organized teams accelerate faster, are more cost-efficient, and typically offer greater ROI. With a global recession inching closer day by day, executives in businesses that rely on software development need to find new ways to support business operations and ensure sustainable growth, competitiveness, and flexibility without jeopardizing the quality of their software output.
As with any area of management, performance depends on informed decision-making and iterative progress. Without the right metrics and insights, you could end up wasting more time and money on trial and error than on seeing results. That’s why having objective and easily digestible data on their development process should be a high priority for executives in tech.
In a recent article, we talked about the importance of securing software team buy-in. Without sufficient buy-in, it can be challenging to see real gains in your team. In that article, we also offered some helpful tips on how to bring your team around to embracing software development analytics. At Foreworth, we are big believers in the power of analytics and metrics, so today, we will share how we use our unique platform to improve and support our developers in their day-to-day work.
How we use Foreworth to improve our developer productivity
In our team, it’s important to us that our developers are supported and have everything they need to do their best work. When devs are underperforming, your product can suffer and when the product suffers, your clients feel the pain. As the Development Director, my job is to ensure that our projects run smoothly and that our development team’s efforts are allocated where they can offer the most value. To achieve this, our developers need to be used where their skills and talent can really shine.
With Foreworth’s platform, we have a very useful overview of our applications that lets us see detailed information on:
- Which devs are involved in different areas of the application
- How much work each developer has contributed
- How involved they have been in the project
- What security vulnerabilities have been identified
All this information is compiled into a comprehensive performance assessment with a range of powerful metrics covering the entire history of the application. We can drill down into the data for even more granular views of our application, to see exactly where our developers are putting in the hours–and what kind of code they are producing.
Two functionalities we use quite often to monitor team performance are the Productivity and Technical Health areas of the platform. By keeping a close eye on how our devs are performing we can stay updated on changes to their output or the quality of their work. We tend to focus on these parameters because they are also the most crucial elements for a developer’s professional development. So, how do we do this?
Taking action with software metrics
Take for example the case of a new back-end developer. We get them set up and begin monitoring them from their first month on the team. We might see their output and quality scores are initially lower than our more senior developers. Now, this is natural as they have only just joined the team and the ramp-up time can vary from developer to developer.
We would then continue monitoring their performance in terms of output and quality in the following months. If we don’t see any increase in their scores then we need to ask some important questions, like:
- “Why is their productivity still low?”
- “What problems are we seeing in their code?”
- “What mistakes are we seeing repeated?”
- “What can we do to support them?”
From there, we have several options to approach the situation. Combined with our knowledge of the context (e.g., the experience and expected skill level of the developer, the area of the application they are working on, the languages being used, etc.) we can see what the best options are for supporting them. For instance, we could allocate a senior developer to assist with reviewing their work directly, set up pair coding exercises, or schedule time to help them get up to speed. For us, the goal is to ensure that everyone has the resources they need to do their best work for the team.
Ongoing monitoring means ongoing support
After any intervention, we continue monitoring our developer's performance to determine if the intervention was successful or not. Through iterative progress and gradual improvement, we strive to enable our team members to do their best work. It’s very important to us that our software team knows that we have their backs. Our team is built on trust and as the head of that team, it’s my responsibility to ensure that while our developers have the freedom to tackle problems on their own, they’re never alone when they need help.
The first step for us is identifying that there is a problem and then finding out what that problem is. Typically, to resolve developer issues effectively, we have to dig a little deeper to understand what caused those issues in the first place. Only then can we start to determine what resources the team or individual developer needs. Using the Foreworth platform, getting that information is a snap, but the real key is having those initial insights readily at hand to point us in the right direction.
With the metrics our platform provides, we can see exactly how our developers’ performance changes over time and where in our applications we can provide better support. It also helps us to figure out where best to allocate each of our developers based on their experience working on our applications, their expertise working with certain technologies or programming languages, and their past performance to help inform expectations.
Without our analytics engine, identifying performance and tracking it over time would be complex, time-consuming, and cost-ineffective. What’s more, converting those metrics into readily usable information to quickly communicate our devs’ ongoing productivity would be an additional hurdle. That kind of analysis requires manually tracking commits, reviewing code, debugging, and then repeating this process month by month–and that’s just for a single developer. Imagine doing this for an entire distributed team.
Getting the best from your team takes time
It is important to remember, progress isn’t a “one-and-done” deal. Developers are after all, only human. We all have good days and bad days, but when those days turn into weeks or months that could signal serious problems either in your team or in your process. In my experience as a development manager, monitoring how your devs are doing over time provides constantly growing knowledge and helps to uncover important trends in your team’s performance. This gives you the power to make incremental improvements in an informed and precise way. With that knowledge, when things go wrong you can course-correct to achieve the productivity and efficiency you know your developers are capable of.
Learn more about how tracking team productivity can benefit your organization, here.