I designed an enterprise level application for the network marketing industry. We have an MVP that is gathering fantastic data, and scheduled multiple meeting with potential Angels/advisors. While I am extremely passionate about the company, the ultimate goal will be a buyout. From a acquisition value perspective, would it be better to: 1) hire and manage an internal development team; or 2) outsource to an experienced development team. What are the pros and cons of each? Much appreciated. Thank you all for your wisdom :)
Don't Outsource. Period.
While there are big drawbacks with outsourcing related to building internal expertise the real reason I would never outsource at your stage is the need for speed and flexibility.
Per your description, you are an early stage start-up with a MVP that is gathering data. Congratulations as that is a big accomplishment! However, you inevitably have a ton to learn about what your prospective customers need most and what customers deserve your attention most.
The means you will be tweaking your product constantly for the foreseeable future and having to submit ideas to an outsourced team, make sure they understand what you want, wait for the new feature to be scheduled, etc is just too slow and too expensive.
You should have your developers literally sitting next to you and (if you have one besides yourself) your product person so you can quickly and constantly share information.
Good luck! You are in for a fun ride...
I agree with Grant, don't outsource at this stage, at least not the core idea of your business. (e.g. you could outsource development of the marketing website)
The single biggest advantage you have as a startup is speed. Large companies have long decision making processes, need time to align everybody on a new direction, often have heavier planning processes that require some kind of formal sign-off etc. As a startup, you can make quick decisions and change course in a matter of days.
Don't throw that advantage out the window by outsourcing your core development.
I disagree with Grant and Niels. Hiring local doesn't guarantee a positive outcome. And depending on where you live, you may not be able to find someone local! Both a local, "in-house" team and a remote team can work equally well (or equally badly). When my co-founder and I were developing the MVP for Closeup.fm, we worked with a developer in Poland, a developer in Memphis, developers outside of Vancouver, and developers in Knoxville, Tennessee, where we live. None of them was perfect. Where your developers live is less important than your attitude toward development. If software development is your core business right now (as it is ours), then it's too important to delegate. That means that even if you aren't writing code, you need to be involved in the development process: thinking through uses cases and developing requirements documents and creating wireframes. Your coders/programmers can't read your mind, and they usually won't make the intuitive choices that you think are obvious. You can hire the best developers in the world and still produce a crappy product if your development process/methodology is broken. It's easy to blame your broken process on outsourcing. Once we transitioned to using agile methodology (and associated tools) to drive our development, speed improved dramatically. Get the right tools and process in place, and you can source talent anywhere. If you'd like to discuss in more depth, give me a call. Hope this helps, Austin
Grant and Niels are correct when they mention "speed" and "tweaking your product constantly".
However, that has zero correlation to having people on-site. Over the past 13 years I've seen thousands of bored people working 9-to-5 jobs at the office, and hundreds of dedicated remote engineers. None of these options is exclusive in any way.
Companies such as GitHub and Automattic are completely remote. That trend is moving forward, and it gives you the opportunity to hire the best of the best without being limited location-wise. I've been managing and working with remote people for many years and I haven't stepped into an office since 2008 (except for meetings or teaching).
The only things you need to take care of are:
1) Don't go for the cheapest option. Go for reputation, portfolio, references, community activities and such. That can still be much cheaper than hiring people, just don't try outsourcing to the cheapest agency out there.
2) Protect your product and intellectual property - there are various of companies burned out by an avenging sysadmin who got fired, but sharing everything you got offshore should happen carefully. Right back to 1) here.
3) Commit in the long run - if you're open and you can guarantee a decent retainer option, you're good to go. That doesn't stop you from expanding, hiring extra consultants and freelancers etc - and that would likely make your product development times faster in comparison to doing a tedious hiring process and looking for decent engineers in your area.
Most traditional managers can't imagine managing a remote team, but it's just as easy with the right mindset. Let me know if you want to discuss hiring tips for remote engineers.
Here is a good read on the topic - http://blog.venturepact.com/blog/why-doesnt-fab-com-use-us-based-engineers
There are many firms that have successfully built companies by outsourcing the development including:
One Kings lane
So it is clearly possible to outsource tech, the main things you need to think about are:
1. What differentiates my company from the others in the market? If your company is not building a new technology or new algorithm then outsourcing software to get you started will work. Of course your core algorithm or core differentiator should not be outsourced.
2. Who you choose to outsource to? Are they a good fit for your needs and do they have the right technical skills?
3. How will you manage and work with the outsourced team?
Depending on your funding position and the type of company you have you might find that there are things that are core to your company that you would like to keep in house and hire a small development team to focus on that and outsource the part that is not core to your business.
With regard to buyout option the main question the buyer will have is on your key differentiating factor so if technology is just an enabler then it will not be as much of a focus in a buyout discussion. However if the buyer if you are innovating in technology and a lot of the IP is in the technology then the buyer will be more reluctant to buy the firm if all your tech is outsourced.
So do not outsource parts that are core but non core parts can be outsourced.