With a recession on the horizon, business leaders across the board are focusing on cost reduction and leaner operations. According to a recent report from industry research experts, Morgan Stanley, outsourcing is one of the key areas where CIOs and CTOs are looking at reducing spending. For many tech and software businesses, however, outsourced talent accounts for a great deal of their development capacity.
Reducing spending doesn’t have to mean cutting outsourcing altogether. Here, we’ll look at how having the right metrics on hand can help you manage your outsourcing costs to keep your software development efforts running, without breaking the bank.
Why outsource your software development efforts?
In one of our recent articles, we looked at some of the advantages of outsourcing software development. Key reasons some tech companies tend to retain external service providers include:
- Hard constraints on hiring
- Pressure from higher management to reduce internal costs
- Internal teams lack specific skills and expertise
- Projects with tight deadlines and heavy workloads
- Working on tedious or undesirable tasks for developers
The effects of recent major world events and supply chain disruptions at every level have led to rising inflation rates and a dim economic outlook for the coming year. In response, tech and software executives have started taking aggressive cost-cutting measures. Major tech and software companies like Apple, Alphabet, and Meta have already started cutting back on hiring and in extreme cases, there have been layoffs of non-critical staff.
While trimming the fat is a good idea to achieve leaner, more agile operations during an economic downturn, you still need to deliver quality digital products and services to stay competitive.
So, how do you maintain productivity in your development projects, while keeping costs low?
Capitalize on data to reduce costs
We’ve spoken about how using software intelligence tools can ensure outsourced software development provides positive ROI. Measuring performance on your applications in development provides high-impact insights into software teams’ activity. By monitoring the ongoing performance of both internal and external development teams you gain the following advantages:
- Productivity and performance of teams
- A useful bargaining chip for dealing with external contractors
- Insights into technical debt build-up
Here’s why these insights are so important.
Measure productivity and performance to refine your process
Everyone knows that famous management quote, “You can’t improve what you don’t measure.”, attributed to management guru, Peter Drucker. While his advice was meant for project management, it’s especially true for complex processes like software development. When your development efforts are spread out over internal and external teams, it can be even more important to track performance across software projects.
Identifying performance trends in your software development teams can signal areas of interest. Negative trends, for example, typically arise when issues that have gone unaddressed for too long consistently affect your development process. Negative trends indicate the presence of inefficiencies in your team’s development process that slow them down and hamstring your ROI. Identifying blockers and working to remedy them leads to smoother, more efficient processes, less waste, and better performance on investments.
Without the right KPIs, however, you may not even notice declining performance or productivity until it’s too late. This is why regardless of where you are in your organization’s growth, measuring your software development efforts should be a top priority. Whether you’re just starting, or already scaling up, it’s never too early to start tracking your teams’ productivity and performance.
Leverage insights for better Terms of Service from contractors
When your software projects depend on the work of external contractors, there’s always a lot to consider. Aside from finding and vetting trustworthy contractors, several major concerns can arise, including:
- Reduced transparency and managerial control
- Less engagement and buy-in from external teams
- Potential for higher technical debt
To maintain control of your projects and ensure that you’re getting the best service for what you’re paying, it’s important to measure the performance of your external teams across projects.
Two ways you can capitalize on performance and productivity KPIs are:
1. Tracking productivity across projects for different vendors, to determine which one provides the best service at cost.
When working with multiple vendors, it’s a good idea to track productivity on the applications under their purview to determine if they are worth the investment. By measuring the performance of multiple external contractors, it’s possible to evaluate and compare their relative costs to the ROI on their contributions.
With objective, standardized metrics, making more cost-effective business decisions regarding contract renewal for future services or choosing whether to switch contractors or not becomes much easier.
2. Tracking external team performance for better negotiating power
When you’re locked into a contract with an external service provider it’s important to negotiate terms of service. Balancing what you’re willing to pay against the degree of service they can provide is one way to ensure that your software development investments bear fruit. However, as we’ve mentioned, one of the issues that can often come up is the lack of transparency and oversight. Without measuring how your contractors are actually performing, how do you know if you’re getting what you’re paying for?
This is where having the right combination of productivity and code quality KPIs can help. Productivity-wise you can see how your teams are progressing towards targets, while with software quality metrics, you can track the health of your codebase as time goes on. When it comes time to negotiate new contracts, these insights provide useful data points you can leverage to your advantage. For example, negotiating for lower costs, or increasing the scope of work to cover other areas of development like maintenance or technical debt management.
Proactively manage Technical Debt to reduce costs
Technical debt builds up when code quality declines because of pressure to meet release deadlines. This is often true for external teams where contracted projects might be viewed as “one-and-done” engagements. While it contributes speed to development, code quality, architectural stability, and security can often take a backseat. Coupled with a lack of transparency and limited internal ownership of projects, technical debt accrued by external teams can lead to bigger problems down the line. These hidden issues can hurt not just your ROI, but your bottom line as well.
When retaining external contractors or development teams, it’s especially important to stay abreast of progress on projects from a quality and security standpoint. With the right KPIs, tracking code quality and technical debt in your applications support forward-thinking decisions that can secure the long-term health and wellbeing of your products. Proactively managing your technical debt helps to reduce the risk of critical failures in production. While regular static testing and automated QA methods are necessary, identifying files in need of maintenance and areas of your codebase that feature common software antipatterns is also important.
Keeping track of your external contractors
Software intelligence tools are a great way to keep track of development efforts from both internal and external contributors. Most software intelligence tools connect to applications or project repositories to provide high-impact insights into team performance and software quality. Foreworth’s platform, for example, provides easy-to-use insights into developer productivity based on the size, complexity, and quality of contributions. It also offers a range of objective, standardized, and automatic metrics to track code quality, architectural stability, and data security.
With insights like these monitoring the performance of both internal and external development teams, as well as technical debt build-up, becomes fast, easy, and reliable. Whatever solution you go with, the important thing is to ensure that you have the data and the insights you need to really get the best out of your development investments.