Competitive pressures have pushed many organisations to outsource their IT and software development services around the globe.
According to DiamondCluster International's third annual Global IT Outsourcing study, more than three quarters of the Global 1,000 plans to increase its use of IT outsourcing this year, with software outsourcing being a big portion.
While the motivation behind this trend can vary depending on the organisation, the primary motivation is simple: cost savings.
The attraction of low-cost, high-quality labour is just too tempting to resist for many organisations. Add to that the ever-increasing expectations that the business places on software to achieve business goals.
To that end, outsourcing also offers the lure of being able to build and maintain a greater number of applications for the same budget dollars.
On paper, outsourcing leads many organisations to believe they can expect up to 70 per cent savings in their IT budgets. The reality though is closer to high single or low double digit returns. The discrepancy lies in the downstream challenges of making software outsourcing a success.
Software development is a complicated beast. It involves not just technical skills but a general understanding of the business' priorities and an ability to balance the tradeoffs that continuously occur in development around spend, scope, quality and schedule when those business priorities shift.
Giving another party control of one of your business' most important assets and trusting that they can manage its complexity and deliver a quality product is an important issue. It is an issue that requires some serious planning and consideration.
Below are five questions you should ask yourself before moving forward on an outsourcing endeavour.
1. Which projects or tasks can I afford to outsource?
Before even investigating a service provider, consider which projects are good candidates for outsourcing. There are strong arguments for selective outsourcing.
For example, applications that have well-defined requirements and those that have established and repeatable processes in place for developing the application might be the best candidates.
In these cases there is less risk that the delivered product will deviate from the desired scope. Also, take the time to evaluate the skills that you have in-house, understand the expertise you may be missing, and assess which tasks can be handed over with minimum risk.
2. What kind of relationship do I want to have with my outsourcing supplier?
Companies can choose to pursue different models of outsourcing based on the projects or tasks in question.
The model one chooses invariably affects the type of relationship that exists between the outsourcer and service provider, as well as how the outsourcer organises its own internal development teams.
For example, in a contract resource model, the outsourcer typically views the supplier more as a 'vendor' than a 'partner', utilizing them for extra bodies or to provide incremental capabilities missing in their organisation.
Compare this to a valued supplier model, where the outsourcing organisation has made it an imperative to ensure there are mutually defined processes in place and seamless integration between the teams.
Defining the model and relationship upfront can help team members on both sides of the table manage expectations and better understand how to make the arrangement more successful.
3. Does my team have the right skills and processes in place to make this work?
In many situations, when an organisation makes the decision to outsource, the makeup of their internal team shifts from 'doing' to 'managing'.
Roles such as project managers or acceptance test managers become more important to ensure the timely delivery of quality projects.
Organisations must be sure that their own internal team has the appropriate skill sets in place to manage the complexity that outsourcing brings.
Effective outsourcing also requires well-defined processes across both the outsourcing organisation and the service provider.
This includes processes for how employees need to perform their respective roles and how they should interact with other roles across both teams. The core processes within the software development life cycle should also be well-defined, managed and enforced.
This includes requirements definition and management, configuration and change management, program and project management, and life cycle quality assurance.
4. Do both teams have the right technology in place to automate and enforce these processes?
It's important to know if your outsourcing provider is relying primarily on manual processes for important areas such as requirements, change or quality management.
If so, it may result in little to no visibility into whether the processes you've established are being followed, and can result in a delivered product that is lower in quality than anticipated. Application lifecycle management (ALM) solutions are key enablers for optimizing the software delivery process - especially across distributed teams.
An ALM solution, for example, can facilitate the articulation and communication of business, performance or compliance requirements among team members.
A good ALM solution can automatically trace those requirements through development and testing to ensure they meet pre-set business or performance goals, ultimately helping to reduce errors and rework as well as improve quality of the end product.
It can also provide an infrastructure to define and automate a workflow process for making project management, asset management, change management or version control more efficient and predictable processes.
5. Have I established measurable goals so I know what success looks like?
By baselining and setting measurable goals, organisations are able to translate the end result into business value. Executives should work with the outsourcing vendor to agree on program rationale and understand how to regularly measure progress toward specified goals. This will help to sustain the interest and effort that is required to make the project a success.
By measuring and benchmarking information throughout the process, not just at the end, managers can understand the quality and efficiency of the development teams when there is still enough time to make changes in the process if necessary, and to make them when it's less costly and less detrimental to the project’s success.
Preparation pays off
Software outsourcing still holds tremendous promise for businesses that seek lower costs, higher quality or faster time-to-market.
By asking the right questions at the beginning and ensuring both teams have the right skills, processes and technologies in place, it's possible to avoid many of the common outsourcing pitfalls the lead to missed expectations. All it takes is a little preparation.