In previous posts, we have covered when to outsource and the development options to consider when outsourcing. In this post we are making the assumption that you've already decided to outsource. Also, this post, as is the case with most of our posts, is in regards to outsourcing software design and/or development, not outsourcing the development of a physical good. Once you've decided to outsource, our experience is that the three most important to rules to adhere to are as follows:
1) Don't outsource without experience - If you are outsourcing for the first time, then it's not a question of if you will make mistakes, it's a question of when you will make a mistake (and how expensive it will be). If you are an entrepreneur that has raised a small friends and family round (say sub $50K) and you are outsourcing application development for the first time, then it could mean ending up with a lemon of an app, having no recourse to upgrade the app from a lemon to even just a pomegranate, and sitting through a few embarrassing thanksgiving dinners over the next few years (Note: we have made the argument before that in the scenario that you are a startup tech company you should ideally be building the app in house, but we know that this is not always an option). If you are a marketer that has an idea for an app but have never outsourced a technology project before, it could mean your job. So what if you are outsourcing for the first time? Well, in that case try to utilize at least one of the following suggestions:
- Use the help of someone that has experience outsourcing - If you are an entrepreneur this could be a friend or a family member that has worked in tech and has outsourced before. If you are a marketer working for a large organization try to leverage the help of a full-time or contract PM.
- Outsource something non-core first - For example, if you are a marketer working for a large company then start by outsourcing an app whose development, if it blows up, won't cost you your job (and hope that you are right).
- Work for someone that has experience outsourcing, and learn from them - This especially makes sense for folks that are looking to become professional PMs. It also works an entrepreneur learning the ropes prior to outsourcing the development of his/her own app.
2) Do your due diligence - This might seem a bit obvious, but the devil is in the details. It's probably easier to get this point across by providing some examples of what due diligence does not mean. In particular, due diligence is not:
- Outsourcing to the first referral you get from a friend or colleague. If anything, this is just the starting point towards building your target list of potential outsourcers.
- Interviewing the CEO, president, or sales representative of the company that you are outsourcing to - unless they are personally going to manage, design, or develop your project.
- Being impressed by a client list that includes some of the worlds largest brands. Many of these brands are not the best at policing who uses their logo and in what context. Additionally, just because a team has built a two-page jingle app with a dancing Santa for PepsiCo, does not suddenly qualify you them to develop Snapchat.
So, what does a half way decent due diligence process look like? At a minimum, it should include:
- Developing a list of "trusted" outsourcers through referrals or through your own organization's procurement group.
- Interviewing as many of the key stakeholders as possible that will be responsible for delivery (i.e., not the sales people). This might only be the lead product or project manager in the case of a larger organization, or could mean everyone on the team (designer, developer, and PM) if its a relatively small organization.
- Checking in on client references. The easy part is making the call, the harder part is doing the research to ensure that the reference being provided is legitimate (try to establish the legitimacy of the relationship through LinkedIn), and knowing what questions to ask (focus on their management practices in dealing with the client and not just on how brilliant the app that the outsourcer built turned out).
Now for a bit of self promotion: if you'd like to do better than the minimum in terms of due diligence, then you could always use our services.
3) Manage your outsourcer - Outsourcing is NEVER about delegating away your management responsibilities. Even if you are Fortune 50 company that has hired a firm like Accenture or Deloitte to manage your $100M CRM transformation, you will still have a small army of your own VPs, directors, and senior managers that oversee the work of the consulting firm's partners, associate partners, and senior managers. Now this might seem like overkill but, having worked on both sides of the equation, we can tell you that very often there is no other way. When it comes to outsourcing application development, it's much better to be known as a helicopter client than a UFO by your outsourcer - at least if you want what is delivered to match your expectations.
The best practices in terms of managing your outsourcer can (and mostly likely will) be a series of blog posts in itself, but at a high level it should include:
- Daily calls or scrum sessions to provide the necessary feedback, and to keep tabs on everyday activities.
- Helping your outsourcer mitigate risks and manage issues that arise. Please note, these are not one and the same - an issue is a risk that has been realized, and if something becomes an issue without ever being a risk, then that is quite often the sign of poor project management.
- Having a transition plan. Outsourcing app development has a finite time bound, at some point an internal team or a different outsourcer will take over the project. If you haven't thought about what that transition plan will look like once project execution comes to an end, then you might be in for some rude surprises.
Note, that there are no silver bullets to outsourcing, but neither is it evil like some people make it sound. In fact, as we have pointed out before, in many cases it is the optimal operating model. As with anything else that you do, you get better at it with experience.