Audit of Outsourced Software Development

If you haven’t run an audit on your outsourcing strategy in a while, there’s a good chance that it looks different now than it did a year ago.

An outsourcing audit is a continuous process designed to maximize the success of outsourced software projects by identifying risks, new opportunities, and problems in your existing strategy.

The idea is to identify and eliminate inefficient or unnecessary procedures that, in turn, allow you to make improvements that ensure every project delivers tangible benefits.

Outsourcing Audit Checklist

An audit of outsourced software development isn’t just about making sure your outsourcing team delivers decent work. Additionally, the focus should be on making sure your entire strategy is set up to maximize business value by identifying risks and weaknesses so that you can address them and get the results you were hoping for.

With that in mind, evaluate your outsourcing strategy by looking at the following areas:

Business value

It all starts with the guiding strategy.

What are you trying to do? How effectively have you communicated those goals to your outsourcing partner?

Look at the following areas to ensure your outsourcing strategy is focused on outcomes and aligned with core objectives.

  • Do you have a formal plan? Does your plan include major milestones/deadlines/project deliverables? Does it define criteria for success?
  • Are the scope, objectives, and costs clearly-defined? Have they been communicated to all of the involved stakeholders?
  • Are you prioritizing the right work? Is your outsourcing strategy enabling you to capture more value than your internal team could on their own?
  • How are you tracking spending? Allocating budget? Does current spending align with current business goals? And are you funneling resources to high-impact initiatives?

Quality

Because in-house work can be managed with visual “checks” and in-person interactions, organizations often have concerns about the quality of the product when working with external development teams.

By running an audit of software development performance, companies can check whether the end-product does what it’s supposed to do. But before digging in here, establish a quantitative definition of what “quality” means in the context of what you’re trying to measure.

  • Look at measurement systems. Do they reflect metrics and goals that make sense for working with external teams? Additionally, make sure that you’re not focusing on superficial or irrelevant metrics that indicate “business” or “output” but don’t tell you much about the quality of work produced.
  • Quality and performance should be measured using the same quality standards as your in-house teams. Check this by performing a comparative analysis of metrics between teams.You will be able to measure outcomes despite the lack of visibility—though it’s worth noting, this logic falls apart if you micromanage your in-house team or base performance on their ability to pump out busywork. The point is, don’t introduce bias to the evaluation process just because you’re working with an outsourcing firm.
  • Check your documentation. Is your developer documentation up to date? Are those documents available to all team members?
  • Do you have testing documentation in place? Does your testing team have access to the resources needed to measure the quality of the product (This includes devices, VPN access, software, access permissions, etc.)?

Deliverables

Another way to assess the ROI of your outsourcing strategy is to look directly at the deliverables. Since quality is subjective, determine an easy way to evaluate whether outsourced teams delivered what was promised, based on measurable metrics.

Here are some things to consider as you audit your outsourcing strategy:

  • Do you have a method for tracking milestones/deliverables? How much work is completed/delivered within a specific timeframe? Are there target dates for each milestone? How often is work delivered on time?An anonymous Tiempo employee suggests looking at “how long it takes to turn an idea into a piece of software, and how that changes based on project complexity.” Software Engineer Paul Estrada recommends looking at “team velocity over time, ability to solve critical bugs per the SLA, and how delivered work compares to planned work.”
  • Have you identified and documented the interdependencies between different roles/activities? How does information flow between teams? What does the collaboration process look like between internal/external teams? Try to determine whether you’ve inadvertently caused a project to stall. Did your outsourcing team have to wait for access permissions or information from a specific person to move forward?
  • Have you documented responsibilities for sprints? Are those expectations clearly defined and communicated to the team? For example, if you find that teams aren’t delivering work on time, you might look at your documentation to find out whether you’ve effectively communicated deadlines to your team.

Customer Experience

Of course, it’s the end-user who has the final say whether or not a project is a success or failure. Make sure your audit takes stock of the following to ensure you’re creating products with your customer in mind.

  • What is your process for capturing/analyzing feedback? Can you easily analyze user sentiment? Read and respond to reviews? Manage support tickets? Is customer feedback organized in a way that makes it easy to review and implement?
  • What kind of feedback are you receiving from customers? What are you hearing from customers, both directly and indirectly? Is there a difference in feedback on products developed in-house vs. those developed by outsourced teams? Have you seen any improvements? Do product releases match real-time expectations?
  • How are you passing feedback to the outsourced team? What is the process for implementing it? How long does it take? How do you know if feedback has been received/implemented?
  • Is it possible to close the loop with customers? In other words, are you letting them know when you’ve fixed a bug or released a new feature? If so, what kind of feedback are you receiving after releasing new versions?

Available talent

Look at how you’re using the talent you’re paying for. Keep in mind, it’s not enough to “plug in” people with specific skills. A long-term strategy is one that grows alongside your company and evolves with the times.

  • Are you using your outsourcing team as effectively as possible? Are there opportunities to leverage skills/knowledge from outsourcing partners to deliver more value to the business? Consider whether you’re hesitating to outsource specific projects traditionally kept in-house. If that’s the case, you could be missing out on opportunities to deliver better products to market. In turn, you may be able to generate more profits and goodwill among your core audience.
  • Are your teams (in-house and outsourced) learning from each other through daily work and collaboration? Are there opportunities—formal or informal—for teams to learn from each other? What resources are in place to facilitate those interactions? This one might be hard to measure, but you might look at customer satisfaction metrics, code errors, bug fixes, etc., to find out whether your teams are learning from each other.
  • Do you allow the outsourced team to develop new skills on the job? Or do you hire someone new every time you’re looking for a specialized skill? It’s important to note that you’ll need to hire someone new for a specific, hard-to-find skill at times; no one person will fill all the gaps on day-one.

Operational service levels

Ultimately, outsourced work should align around company objectives—just like in-house projects. A few final things to include in your audit:

  • Make sure every outsourced development project has an internal owner with SMART objectives and KPIs. Assign an internal team lead to outsourcing projects to ensure that nothing slips through the cracks.
  • Are teams communicating effectively with stakeholders? With each other? According to Tiempo’s Rodolfo Carmona, “The best metric is always user feedback. Internally speaking, success is determined by good collaboration between the client and the development team.”
  • Are all project dependencies clear to everyone involved? Make sure documentation includes expectations from both sides. Internal stakeholders and the outsourcing firm should work together to define milestones and KPIs. It’s not a one-way street. Ultimately, you’ll get more out of this arrangement by listening to input from your partner.

Final Thoughts

An audit of outsourced software development outcomes is an important step toward ensuring your external team is delivering the results that were promised and that you’re providing access to the information and resources that make it possible for your outsourced team to do so.

Tiempo’s nearshore business model provides affordable access to experienced development teams who follow mature Agile practices and collaborate closely with clients to deliver exceptional outcomes. Contact an expert today to learn more about what it’s like to work with us.