Waverley is an outsourcing software development company, but over the years we’ve learned that not every engineering project is a suitable candidate for outsourcing. Projects that engage core competencies, require significant internal management and coordination, or for which there isn’t a significant cost advantage may be better tasked internally. But many other projects are either suitable or may be suitable with some forethought and planning. In this article we review key questions that highlight some trade-offs of the make-or-buy decision for application development.
Is this a project that would require a large investment on your part if you did it internally? This is more than a financing question. There are a limited number of core capabilities in which your organization can develop innovative and operational excellence. If the project you’re planning fits within that group of core capabilities, it may only require a modest additional investment and it may be reasonable to keep it internal. But if it is outside your primary areas of expertise and not in an domain in which you plan to make a large investment, going to an external engineering firm makes sense. As an example, say you need to make your software available on a server platform your organization isn’t familiar with. This is a good project to give to an external player that develops and ports on this platform all the time.
Is outsourcing this project an idea that your internal team can get behind? Hiring an external company to do a project is likely to have organizational implications. If your internal team is going to resist giving the project to an outsourcing company, you’ll have to consider the trade-offs. If the reasons to go outside are compelling (no resources internally, time-to-market is critical, out of bandwidth), then internal resistance is something to manage through. If the reasons to go outside are valid but not vital, then perhaps there are ways to work around the resistance by putting clear boundaries around the project requirements: making it a black box. Or you could make an effort to build a strong relationship between the two teams, combining the outsourcer with your internal people.
Is this a project you can put clear boundaries around? Some projects require more integration with teams and individuals than others. A porting project can be clearly defined and handed off to another group with less need for interaction with your teams. A systems integration project on the other hand will require extensive and ongoing interaction and negotiation with your organization, making it a more delicate project to outsource.
Does outsourcing this project give you more flexibility in managing your resources? Let’s start at the extreme of a project that you would not outsource. If you have an engineering function that has a predictable workflow, is part of the core capability of your company, and is constantly in need of changes and additions, it would not make sense to outsource this function. Moving in the other direction — projects that are less a part of the core, have intermittent needs for resources, and unpredictable workflow, these are projects for which it would make sense to cultivate an outsourcing relationship to absorb the fluctuating demand for resources.
Does outsourcing this project give you access to expert knowledge you might not otherwise be exposed to? One of the benefits of going to an external company is that they can expose your organization to new techniques and practices. The outsourcing company has done many projects of the type you need to be done, they’ve worked with many clients in the industry and seen what works best. They may even be driving industry standards and practices. Working with a company at the forefront of a particular technology can mean getting the project completed at lower cost while exposing your organization to cutting-edge practices.