Outsource with Certainty

As a business owner, you want to cut the cost of software development without compromising on the quality and timeliness of the delivered software. One significant and widely used tool has been outsourcing, because of its apparent cost advantages. Outsourcing is often seen as a no-brainer. Or is it? While the cost advantages can be compelling, how do you ensure that you are also getting a high-quality application for your money? Are you sure you’re getting a solution to your development problem, and not a complex hard-to-maintain code base that will give you future headaches?

While cost is a key factor, it cannot be the only factor when you are trying to solve a business problem. Quality of the delivered software and ongoing visibility into quality status and trends are equally important. When you outsource your development project, you increase your chances of success by defining clear and objective acceptance criteria that include software quality and maintainability. Even better, you can define and use these criteria frequently during the outsourced development to avoid surprises and finger-pointing at the end. In short, you need tighter controls so that you can see and manage issues before they become full-blown problems.

Whether your project is outsourced to an on-shore domestic vendor or an international offshore firm, you are wise to be concerned about the code quality because you’re accepting the software that your partner delivers. If you maintain and enhance it in-house, you want to make this as easy as possible, starting with a smooth transition of the software and supporting tests from the outsource partner. If you plan to use your outsource partner to maintain and enhance the software, you want to make sure that you won’t face high future costs.

To ensure your confidence in your outsourced projects, you need:

  • thorough unit tests;
  • tight metrics;
  • continuous visibility;
  • contractual "teeth."

AgitarOne can help you increase control of your outsourced software development projects by enforcing objective quality levels using our Quality Level Agreement.

Quality Level Agreements

When you outsource a software development project, you increase your chance of success by agreeing with your outsourcing partner on some clear and objective measures of the outcome of the project. These measures should provide insight into the progress of the project, not just a final report. Tight metrics are needed so you can measure and understand where the project is in terms of quality, not just "percent complete" or "man-days of effort." Important metrics include how much of the code is tested at the unit level (code coverage), how many test points there are, how often these tests are run, and whether the trend is toward higher coverage and better quality, or toward less of both.

Agitar's technology not only provides you with all these metrics, but helps your developers identify and fix defects faster and with less effort.

Continuous visibility is needed because your project team isn’t on your premises, and isn't under your direct control. If metrics are only provided once a month, it's harder to tell how your project is going. Agitar's management dashboard provides visibility into how your project's quality is progressing – daily, automatically, objectively, without interfering with your developers' work.

Contractual enforcement is possible only if you have solid metrics and agreed-upon terminology about quality and team progress. Agitar pioneered the use of Quality Level Agreements (QLA) to formalize the levels of quality achievement required for the acceptance of outsourced project deliverables. Like Service Level Agreements, QLAs have numerical thresholds for the key indicators of project quality: percentage of code that is tested, number of test points, frequency of running tests, allowable numbers of failed tests, required period for fixing failed tests, and other measures.

Using Agitar and QLAs can give you much more visibility, control, and assurance when outsourcing, off-shoring, or procuring Java software.

Click here for a sample Quality Level Agreement (Word Doc)