Software Development Analytics for Outsourcing and ROI

Quick Summary - Do you hesitate to outsource fearing it means a lack of visibility on and accountability of distributed team members? If so, that fear could be costing you 6-7 digits a year. First, you may be hiring employees when you can outsource with confidence. Second, even the most mature development teams can improve their efficiency and productivity.

Software Development Analytics for Outsourcing and ROI

First, what is software development performance analytics?

Do you use Google Analytics to track your website’s activity? Software performance analytics is like that except for tracking all of the code-related work for a software project. This presumes that you are working with a version control system like Git and a Git repository manager like GitHub, GitLab, or BitBucket. Every change to your codebase is tracked – pull requests, merges, who did what, when, and a lot more. All of the associated software development metrics are tracked automatically so your engineering managers and team leads can see what’s going on at a glance.

Some developers may debate the value of development analytics or fear that they’ll be used somehow to punish them. That’s understandable, but these aren’t the objectives. First, given the shortage of software developers, the focus is on helping developers improve and expand their skills. That’s a process and endeavor that is beneficial for everyone – the developer, their team, company, product and clients. Companies offering development analytics typically offer some guidance to help managers make appropriate use of the metrics – to maintain context and avoid comparing apples to oranges.

Who provides software development analytics?

A number of companies offer software development performance analytics as “Software as a Service.” All of them offer a free trial and make it pretty easy to get going right away. Though it’s possible to start receiving insights right away, their greatest value comes from long-term analysis. As with all software tools, we recommend doing your own research to find the right price, feature set, and support for your team.

There are many options available, but here are three of the most popular and interesting options:

Waydev – In their own words: “Waydev analyzes your codebase, PRs, and tickets to help you bring out the best in your engineers’ work. Use metrics to enhance your organization’s code review workflow. Learn how teams work and optimize engineer collaboration.” Waydev is compatible with Github, Gitlab, Bitbucket, and Azure DevOps. They offer a free trial with premium plans starting at $449 per active contributor.

Gitential – According to their site, “Our mission is to provide software development teams the most powerful automated analytics platform available to continuously improve their team’s performance on any given project.” Gitential is compatible with Github, Gitlab, Bitbucket, and Azure DevOps. They have a “Free for Life” limited option and an enterprise-level subscription of $25 per month per active developer.

PluralSight Flow – Per their website, “Accelerate velocity and release products faster with visibility into your engineering workflow. PluralSight Flow aggregates historical git data into easy-to-understand insights and reports to help make your engineer teams more successful.” Compatible with GitHub, GitLab and Bitbucket. Offers a 30-day free trial with premium plans starting at $499 per active contributor per year.

Why should everyone use performance analytics?

It’s hard to improve what you aren’t measuring. The single greatest expense in software development is tied to the work or time of your software development team. Stripe’s 2018 Developer Coefficient points out that software developer inefficiency averages around 31.6%. Inefficiency equates to delays or a loss of productivity. Inefficiency can be the result of many and varied root causes. The individual causes may seem trivial, but they add up to where you may be paying for three developers to perform the work of two – across your entire organization.

Software development performance analytics is instrumental in:

  • As your development team is the largest expense in producing software, optimizing performance has everything to do with our profitability and ROI.
  • With more team members working from home or halfway around the world, you can verify their coding time and productivity based upon their Git interactions.
  • The cost-benefit of work-from-home employees carries a huge premium vs outsourcing.
  • Identify bottlenecks in your work processes.
  • Identify where individuals or entire teams are challenged on a project.
  • Allow managers to proactively address possible issues before they become problems.

There are many ways to improve efficiency. The improvement process starts with being able to measure a wide range of metrics to identify the contributing factors so you can plan and prioritize which issues to address first, for optimal effect. Even mature development teams can find ways to improve efficiency. Most developers want to improve and expand their skills, too – analytics provides an objective method for developers to see and measure their progress.

The cost of the status quo with in-house developers

Today, virtually every company that uses data is using it to improve their company’s performance and profitability. Companies not using data are increasingly going out of business. That should be self-evident. Some developers hesitate to outsource believing they won’t have full visibility on what their developers are doing. With lockdowns persisting, that would also be the case with your in-house developers working from home. In both cases, software analytics provides a more comprehensive and objective view on what all developers are doing.

The reasons for why a company would want to outsource vary. In Israel, it’s more about being able to rapidly access a larger talent pool. In the United States, cost is likely to be more of a factor. But, unless you require your developers to wear uniforms and show up at the office during set working hours – you’re likely better off outsourcing.

This is not to suggest a sudden transition from in-house developers to outsourcing. Weigh the cost and benefits when replacing developers who have moved on to other jobs, and when you want to grow your team and its development capacity. Planning ahead is also important for startups. If you are successful raising funds, you may need to scale up rapidly.

image

The cost of depending entirely on in-house developers

  • Fully-loaded employee expenses typically add 25-40% of salary in taxes, health insurance, benefits, and miscellaneous expenses. Here we add just 20% considering savings on office space ($5-10k per employee per year).
  • An In-House Feature Team considers a team lead, 2 developers and 1 junior developer.
  • A Lean Feature Team includes one in-house team lead and 3 outsourced developers.

Analytics for continuous team development

One of the strongest use cases is to determine the strengths and weaknesses of individual team members in different programming languages. Given a global shortage of software developers, taking steps to help developers improve their skills is one aspect of retaining them longer.

  1. Define resources for team members to improve their skills in a language.
  2. Assign team members suitably simple or complex tasks in a language.
  3. A data-driven way to assign mentors and pair up developers for code reviews.
  4. Ability to optimize your development team to match the requirements of any project.
  5. A combination of metrics can consistently identify developers at elevated risk of seeking another job – or in the process of burning out.
Get a world-class developers with no stress

We build and scale software teams and R&D centres. Flexible staffing, full-time staffing, and R&D centres in Kyiv, Ukraine.

Contact us

The cost of software development inefficiency

The theoretical impact of Stripe’s report of 31.6% inefficiency in software development breaks out to:

  • San Francisco: $53k per in-house employee
  • United States: $40k per in-house employee
  • Israel: $30k per in-house employee
  • Ukraine: $16k per outsourced developer

Software development inefficiency can accrue, incrementally, as the result of many things – big and small:

  • Not maintaining and enforcing a coding standard.
  • A developer writing code in a language they aren’t suitably proficient in.
  • The size of each team tying into its administrative overhead.
  • Deploying code that’s not thoroughly reviewed and tested.
  • Accruing technical debt and not having a plan for refactoring code.
  • Lack of discipline in managing the size of your git repository.
  • Applying to a git branching strategy that’s unsuitable for your team/project.

There’ll always be some inefficiency if just owing to life issues – not getting a good night’s sleep, stressing over bills, family, or health issues.

The focus on inefficiency shouldn’t be construed as an obsession over keeping developers on task every working minute. It’s more about keeping everyone conscientious about work processes, the natural evolution of code, the inherent changes in a team owing to turnover, and other factors.

Specific metrics to watch:

A project manager or software engineering manager watches all manner of metrics. However, if they’re actively engaged in increasing team efficiency, they may actively track a few metrics at a time — likely based upon what they’re seeing is contributing most to inefficiency. They might start with test volume and coverage and then move onto code churn to improve code quality.

Software development analytics track scores of metrics – some critical all of the time, others more situational. Here are just a few:

  • Coding hours – The amount of time spent on writing code by a developer – typically derived from the average speed of their commits.
  • Code efficiency and waste – The amount of code written that’s free of defects and the amount of time lost owing to code churn and fixing defects.
  • Test volume – How much code has been tested vs. implemented? Untested code typically equates to increased code churn and more defects.
  • Code churn – There will always be some, but concerns are warranted when code churn increases toward the end of a sprint or as it gets closer to deployment. This correlates to higher bug and defect rates. Poor quality code is anathema to efficiency and productivity.
  • Velocity – Not useful unto itself, it is not useful for comparing developers or work on different projects. However, it can be useful to compare a developer’s performance on very similar projects and as a general trend over time. It’s natural to expect a developer’s velocity to improve over time when working on projects of very similar complexity. But, as a developer improves, it’s also likely that they may be tasked to work on projects of increasing complexity.
image

What can software development performance metrics uncover?

In the course of improving a team’s performance, software managers are likely to define a rough standard of what is normal or expected for a given project. In general terms, they are likely to expect all performance metrics to improve over time. Provided quality standards are consistently maintained, an improvement to one metric should cascade into other metrics. A decrease in code defect ratios should improve efficiency and productivity. But, we can get more specific with certain types of outliers and deviations from the norm.

  • Copy-paste code – A dramatic increase in velocity for a specific commit can indicate a dev has copied and pasted code – a bad, bad practice increasing chances for defects and legal liabilities.
  • Perfect code – An admirable effort, but too often a very unproductive one, the effort to produce perfect code can be identified by unusually high levels or frequency of code churn. Guarding against this requires defining what’s “Good Enough” code.
  • Reinventing the wheel – Developers should be encouraged to use existing solutions instead of creating new ones for problems that have already been solved. Reinventing the wheel is also nearly synonymous with high code churn – and delays.
  • Ready to change jobs – When a developer is looking for a new employer, a number of metrics and observable behaviors taken together are likely to show it. Their responsiveness to code reviews and PR review coverage are prone to decrease while becoming less sociable. Their utilization is likely to decrease alongside their willingness to commit to long-term projects. If permitted, they may end up delegating their own tasks to others.

Trust but verify and continuously iterate to improve performance

More options and tools for software development are available than ever before. Much the same processes involved in improving software usability and engagement apply equally to improving software development team performance. While you can rely entirely upon in-house developers because “that’s the way you’ve always done it” – it’s probably costing you. You can quantify it.

Software development analytics not only lets you track the work of every developer – in-house or outsourced, it provides you the means to improve your team’s performance – to objectively quantify and qualify results.

LET’S TALK

Tell us about what you are trying to build

  • This field is for validation purposes and should be left unchanged.
icon

Subscribe to our newsletter

  • This field is for validation purposes and should be left unchanged.