There are certain words you don’t want to hear in business: layoffs, downsizing, offshoring, etc. Outsourcing isn’t one of them. In today’s interconnected world, outsourcing is one of the big drivers of business growth, not reduction. It lets companies access proven talent and expertise where they need it, when they need it.
Nowhere is this trend more exemplified than in the code development world. While the rest of the business world has been playing catch-up on remote working practices in the face of the current issues, developers have been collaborating online for decades.
The thing is, not all development outsourcing is equal. Recruiting a whole development firm to build your company’s new product-tracking app is not equivalent to calling up your buddy to look over your code for a slice of pizza, yet they both come under the heading of outsourcing. Here, we look at outsourcing and the broad strokes of how it can be categorised.
The Four Tiers
Broadly speaking, development outsourcing can be divided into four tiers:
- Tier 4: code review
- Tier 3: high-level consultation
- Tier 2: partial outsourcing
- Tier 1: full outsourcing
Let’s break these down a bit.
Tier 4: Code Review
Code review is one of the more valuable and less recognised tools available to any developer. The act of having another developer taking a look at your code and asking questions like “Why did you do it this way?” or “What would happen if you used this method instead?” can result in your code becoming much more streamlined and less prone to errors.
Code review can cover a pretty wide range of activities, forms of renumeration and methods; at the low end, a dev can ask a friend to glance over their code for a slice of pizza or a bottle of beer next time they hang out, or just as an act of friendship/networking.
More professionally, a developer can be hired at a relatively low rate to perform code review, ranging from assessing a single file’s worth of code to analysing an entire app and its myriad interactions. The pricing structure for professional coding can be negotiated in a number of ways, from a flat rate to an hourly rate to a per-line-of-code rate. (After all, the number of lines of code is determined by the client, not by the reviewer.)
Tier 4 also covers the Quality Assurance (QA) process; a QA tester’s job is to try and break a program in as many ways as humanly possible, performing all sorts of repetitive and/or absurd actions with a program in order to identify and highlight glitches in the code, but their job is just to find the problems.
The main division between this and the next tier up is that when it comes to code review, there’s generally little to no onus on the reviewer to provide solutions to the problems they spot; they’re expected to point out those problems, but any recommendations or suggestions they provide are at their own discretion. Which brings us to the next level of outsourcing:
Tier 3: High-Level Consultation
Outsourcing at this level isn’t limited to taking the next step up from the previous level. Consultation can cover both the review process and the act of taking necessary steps to fix any identified issues.
Let’s say that a company’s app is taking sixty seconds to process a new account signup; hardly world-ending, but certainly annoying to the end-users. The company’s developers can’t figure out what’s slowing the app down, so they hire a contractor to look over the code. The contractor identifies the problem, figures out how to do it better, and writes the code necessary to make it happen. This is a classic example of high-level consultation, in which the consultant is expected to implement as well as advise.
It’s worth mentioning that Tier 3 and Tier 4 jobs rarely have any direct links. Tier 3 jobs could be critically described as “Tier 4-plus”, since they both cover the same ground. A client might hire one contractor for Tier 3 revision and then hire five more contractors (like QA testers) for Tier 4 analysis, but those contractors probably wouldn’t work together.
However, the consultation process can involve not a single line of code. Let’s say you’ve come up with a clever idea for an app that would really make your business pop, but you’re not a developer. You’re not sure how you’d go about implementing it. You’d want to talk to a professional developer about whether or not your idea is feasible, wouldn’t you? Get a professional opinion? Isn’t that consultation?
Well, yes, it is. However, in these sorts of circumstances, it might not fall under Tier 3. Instead, we might classify it under the next tier up:
Tier 2: Partial Outsourcing
There’s a lot of overlap between high-level consultation and partial outsourcing, but the primary division is that Tier 3 is focused on taking someone else’s work and improving on it. Tier 2 is dedicated to the development of wholly original content.
To refer to our previous example of a guy with an app idea, if they were to take their idea to a pro and ask them “Will this work?”, a simple “Yes” would fall under Tier 3 or even Tier 4. If the pro were asked to fully scope out the problem, providing a basic breakdown of the sort of utilities and resources that such an app would need to include in order to function securely and reliably, that would be a Tier 2 consultation.
The range of Tier 2 activities is extremely wide and varied. Hiring a freelance artist to design a new company logo, including all the digital files? Outsourcing. Hiring a design company to draw up a slick user interface? Outsourcing. User experience consultation and storyboarding? Outsourcing.
Let’s take the web development process as an example. Developers break down the steps in many different ways, but for the sake of brevity, here’s a decent outline:
- Information gathering
- Content writing and/or assembly
- Testing & review
- Launch & maintenance.
Any and all of these steps can be outsourced to different contractors, some more frequently than others, and most of these can be broken down into smaller steps which can themselves be separately outsourced.
The biggest advantage of Tier 2 outsourcing is that clients can specifically recruit firms that specialise in certain elements of the development process. Applying this sort of expertise can accelerate the development process, giving the client better results in less time. It also gives more control to the client; a lot of Tier 2 outsourcing comes from companies that have their own in-house developers, who run herd on the third-party developers and integrate the disparate components into the final product as they see fit.
The main disadvantage of this approach is that the separation of different teams can cause miscommunication and delays; to give an example, a company can hire one team to plan out their UX and UI, and another team to code those designs into reality. The design team does a great job, and the development team works hard to implement them, but every so often the dev team has to contact the design team with a list of questions, which involves setting up meetings and Q&A sessions. This sort of disconnect isn’t insurmountable, but it does make an agile development cycle harder to carry out.
Personally, I’d categorise small, short-term single-developer projects under Tier 2 as well. Hiring a single dev to build you a personal website on Wordpress does involve all of the seven steps outlined above, but a competent and experienced Wordpress dev can run through all of them and produce a high-quality website in mere hours, if not minutes. No, the next tier up really applies to the heavyweights of the development outsourcing world:
Tier 1: Full Outsourcing
Guess what? You’ve just farmed out the whole project to another company! Now it’s just a question of sitting back and waiting for the contractors to crank out the end product!
Yeah, not so much. In truth, it’s nearly impossible to truly outsource a project completely; like all the other options, full outsourcing covers a wide range of possible models and activities, and most of the more successful ones involve quite a bit more client involvement than this.
Broadly speaking, “full outsourcing” refers to a project outsourced to a single contractor, rather than being split up among multiple other contractors. A project that is divvied up among multiple contractors would be defined as multiple Tier 2 cases, rather than as a divided Tier 1. This isn’t absolute; a contractor taking on a Tier 1 project might itself farm out small parts of the project to other subcontractors, although most companies capable of taking on major projects like this will already have all of the necessary skills under one roof.
The biggest advantage to this approach is that all of the disparate elements of a project are, indeed, being handled under one roof, by a team of people that know and work closely with each other and are familiar with one another’s thought processes. This sort of unified approach tends to streamline development and reduce miscommunications across the course of development, with designers available to answer coders’ questions and testers able to give feedback straight to the devs.
It’s also the option chosen by most companies that don’t employ any developers of their own. Putting together their own teams would cost time and money compared to finding a pre-existing and proven group, and while they could recruit a project lead to merge numerous Tier 2 items into a single app, they’d be giving up the synergy that an established team would have.
The aspect that makes clients nervous about this option is that they have to give the contractor autonomy to make certain decisions on their behalf. Obviously the client has final say on what comprises the final product, but without having a liaison in the contractor’s office every day (which is almost always impractical), the client should only get involved when the project hits key development milestones.
The tiers aren’t a concrete measure; they’re more like broad rules of thumb. More than that, though, any one project can include outsourcing of all four tiers, many times over.
For example, Nintendo has come up with an idea for a new game in one of their IPs, but they can’t develop it themselves. Maybe it’s too different to what they’ve done before, maybe their teams are all busy with other projects. Rather than put together a new team, they decide to outsource it to a trusted third-party developer, such as Silicon Studio Corporation (Tier 1). SSC takes the job, but being super busy themselves, decide to subcontract parts of the game development (such as mobile-platform-specific compatibility or building the game’s website) out to other third-parties (Tier 2). They also call in a few consultants to suggest improvements for key parts of the project (Tier 3). Finally, they outsource the testing process to a QA company (Tier 4). The end result is a good solid game that is released under Nintendo’s branding, but which was almost completely outsourced.
Which One To Choose?
There’s no one-size-fits-all answer, although there are some good rules of thumb. The main questions you need to ask yourself are “How much control do I want?” and “How much time and/or money am I willing to spend?”
There are three major reasons to outsource:
- To save money.
- To save time.
- To acquire expertise.
If you don’t have your own devs, then you’ll want to either outsource in full (Tier 1) or take a month to hire a project lead and have them manage the subcontractors (Tier 2). If you do have your own devs, you’ll need to decide whether or not it’s more practical to outsource partially or fully based on pre-existing workload, whether the project falls outside their areas of speciality, how soon it needs to be completed, and so on.
Tier 3 consultation is entirely elective; we’d recommend finding a good consultant any time you run into an important question where the only answer you’ve got is “I don’t know”. That goes double for any situation where getting it wrong would result in a major security vulnerability or serious negative publicity; there are a lot of experts out there, so don’t be afraid to call and ask for advice or opinions. Beyond that, if your developers run into a problem that they’ve been fruitlessly bashing their heads against for more than a few days, it’s a good idea to cut the Gordian Knot and call a pro.
Whatever options you pick for the development of the project, you’ll want to recruit a few devs for Tier 4 analysis; having someone else check your work is just good sense. A good Tier 1 contractor will have Tier 4 review included as part of the budget proposal, and most Tier 2 developers will at least be able to recommend good and trustworthy reviewers, assuming that you yourself don’t have a list.
In summary, like we said at the very start, outsourcing lets companies access proven talent and expertise where they need it, when they need it. How much talent and expertise you need at any given time? That’s up to you to decide. At Tera Shift, we have a rich track record of providing services at all four levels. From quick overviews to full project execution, we can and have done it all. So you can trust us when we say that getting what you need, when you need it, is easier than you think.