In one sense or another, we’ve all heard the term “body shop.” In the world of automobiles and mechanics, it refers to a shop that repairs or modifies car bodies, but in software development, it refers to outsourcing vendors who use contract labor to fill their requirements. Let’s say at the outset, this isn’t an inherently bad practice. Many, if not most, larger vendors started out as body shops (0r temporary staffing providers – another similar term) and eventually grew beyond the practice. There are many well-established vendors who are essentially filling the place of in-house recruiters and have a network of contractors they have used repeatedly that make the process of filling short-term needs an easy job for their clients.
But, the problems start when an outsourcing vendor doesn’t disclose their business model and you assume from their website or on the basis of a phone call that they are offering a team for a software development project that has a full-service house behind it.
What’s the difference?
In most cases, a full-service outsourcing provider can offer:
- In-house staff – Trained, supported, and backed by an organizational structure that includes infrastructure, formal methodologies, processes, and benefits that promote success and staff longevity.
- Organizational-level expertise in technology, verticals, project planning and initiation, risk management, automated testing, and other areas that make their teams more robust and create a better opportunity for project success.
- The ability to shift quickly to fill a team role if a resource becomes unable to finish a project for some reason. Generally, established vendors have some “bench” – resources not fully committed to existing projects that can step in when needed. Because the technologies, methodologies, and processes they use are formally supported in the organization, staff members that join a project after initiation are likely to be able to get up to speed relatively quickly.
- Established infrastructure (virtual and physical) including up-to-date workstations, secure Internet connections, managed IT resources, and the project-level resources necessary to support development operations such as continuous integration, testing automation, shared repositories, VPN connections, etc. When these resources are already in place, there are practices in place to operate and maintain them, setting up a secure, reliable project structure is relatively easy and the resulting operations are robust, reliable and secure.
Body shops generally offer:
Relatively quick access to individual resources or the ability to pull together small teams from contractors. Most cannot offer a great deal in the way of project planning – their business model is to provide experienced resources, whose resumes, skills, rates, and availability have been checked – not to provide full-service for longer-term engagements.
- They may offer some level of infrastructure at the organizational level, mostly virtual, but since their resources are generally remote, this means they will have difficulty providing the same level of security, methodology, and practices that you would find in a full-service vendor with a data center.
- Relatively low-cost resources for short term, well-defined engagements. They offer little in the way of project oversight so it is incumbent on their clients to provide the project planning, requirements, and organizational resources the project needs.
When Things Go Wrong
As we mentioned earlier, projects go off the tracks when you assume or are told your vendor’s business model is one thing and it turns out it is another. If you go to a full-service provider to fill a spot need (a few weeks to a month with one or two resources) you are likely to be surprised when you read the quote. Their proposal will generally include options or steps you might have assumed you would do in-house or weren’t needed. Their resources will be more expensive when compared on skills and experience and their value will be harder to judge against vendors who do not have the same level of overhead, staff and organizational support.
If you go to a body shop and expect the vendor to be able to provide an experienced team for a longer engagement, you are likely to be surprised that you are expected to take responsibility for bringing together everything needed to ensure the project operates with industry-standard methodologies and the team collaborates in ways that provide strong production metrics, reliable and maintainable code and proactively manages risks while avoiding “feature creep.”
There are a lot more things that could be said about picking a software development outsourcing partner with a business model that is not suited to your needs, but the point is – when you don’t know what you need or what the vendor is really offering – the outcome can be more expensive and less successful than it should be.
If you don’t ask, most vendor sales are likely to be opportunistic. They want more business above all and will present the picture they think you are looking for. Somebody shops will provide resumes on their letterhead to make it appear the resources are in-house. They might even go so far as to recast past experience as “in-house” when in fact the contractor offered was working directly or for another provider. Some full-service vendors will offer junior resources for short assignments or staff from the bench that cannot be committed more than a few hours or days at a time. They aren’t being “dishonest” – they are trying to get full utilization and lower their overhead, but in the end, if you call them back for that resource again, they may be unable to break them loose. The same may be said of the body shop, however, since they generally cannot fill the available hours of their contractors for every day of the year, they will often have to substitute with another resource if you need to bring someone back to continue work.
The Right Vendor for the Need
All this comes down to one thing – regardless of your need, you need to have outsourcing vendors whose business model you understand and that gives you the ability to use the one that fits the need you are resourcing. This means having conversations, relationships, with your vendors and establishing a partner-level dialogue so you have confidence in what they can do for you successfully. It takes time and attention throughout the relationship to maintain the level of communication needed and it should be as much from the vendor as from you. But, if you can establish partnerships with your outsourcing vendors, the outcomes should be better for both sides.
In that “best case” scenario you might use your “body shop” partner to provide:
- Spot resources to fill short term needs within your own teams or to bring a specific skill when needed that is otherwise time-consuming to find and contract.
- Low-cost resources that you plan to manage in-house and provide whatever they need to be successful in working with you.
- Replace positions lost through attrition, illness, vacations, etc. while you search for permanent replacements.
And you could use your full-service development shop partner to provide:
- Small to large experienced teams to become an integrated but largely self-sufficient part of your operations that can be responsible for strategic projects without straining your internal staff.
- Agile project teams that can use the methodology effectively to develop less defined but critical applications collaboratively with your staff.
- Dedicated teams that work as a part of your larger DevOps system for continuous app development either as part of enterprise or product teams for client-facing applications.
Either scenario represents putting your outsourcing partner’s business model to the best use for your needs, not bending either one into a configuration that could be a bad fit for both you and your service partner. If your organization is small or a startup, it may seem like a lot to take on to take the first step, establishing a partner-level relationship but in the long run, even a small operation can benefit from an atmosphere of shared understanding and trust – perhaps even more than enterprise-level organizations who have more leeway for risk.
Scio is a full-service, nearshore provider for software development outsourcing to our clients in North America. We seek partner-level relationships with our clients to help us provide the right services tuned to their needs over the long run with less risk and better project outcomes. Whether you are unsure where your needs fit or you have a clear idea of how to resource your project, please consider contacting us to discuss what our services can offer you. We would be happy to work with you.