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:
Warby parker
Fab
One Kings lane
Birchbox
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.
There are pros and cons of outsourcing an app building business are as follows:
Pros of Outsourcing:
1. You Do not Have to Hire More Employees: When you outsource, you can pay your help as a contractor. This allows you to avoid bringing an employee into the company, which saves you money on everything from benefits to training.
2. Access to A Larger Talent Pool: When hiring an employee, you may only have access to a small, local talent pool. This often means you must compromise. Many companies have found that outsourcing gives them access to talent in other parts of the world. If you need specialized help, it often makes sense to expand your search.
3. Lower Labour Cost: Every company has its own reason for doing this, with many chasing lower labour costs. You do not want to trade quality for price but outsourcing often allows you to get the best of both worlds. By searching a global talent pool, it is easier to find the right talent at the right price.
Cons of Outsourcing
Despite the many benefits of outsourcing, you don’t want to go down this path until you compare these to the potential drawbacks:
1. Lack of Control: Although you can provide direction regarding what you need to accomplish, you give up some control when you outsource.
There are many reasons for this, including the fact that you are often hiring a contractor instead of an employee. And since the person is not working on-site, it can be difficult to maintain the level of control you desire.
2. Communication Issues: This does not always come into play, but it is one of the biggest potential drawbacks. Here are several questions to ask:
a. What time zone does the person live in and how does this match up with your business hours?
b. What is your preferred method of communication? Phone, email, instant messaging?
c. Does the person have access to a reliable internet connection?
According to Cameron Herold, the founder of a COO training program, communication is essential to success in the business world. Since a large number of U.S.-based employees report not being engaged at work, communication remains a major problem. Will this get worse if you outsource?
3. Problems with Quality: Despite all the benefits of outsourcing, it is only a good thing if you are receiving the quality you expect. Anything less than this will be a disappointment.
This is not to say you cannot successfully outsource tasks, but you need to discuss the expected quality upfront.
Pros and Cons of internal development team are as follows:
Pros of In-House Development:
1. Cultural fit: Developers that work as permanent members of the team tend to pay much more attention to the specific needs of company. It means they’re motivated to achieve the best results and bring as much value as possible. It is easier for in-house developers to integrate with your company’s culture.
2. Face-to-face communication: Having the same working hours and being in the one office allows making the communication process much more comfortable and clearer. Direct conversations help avoid misunderstanding and increase effectiveness.
3. Quick changes: When you have an in-house team of software developers, it’s always faster to change project's features, add new ones, and discuss their technical background. Also, in-house developers usually process bugs quicker.
Cons of In-House Software Development
1. High cost: The price is an issue that can change everything. It’s obvious that in-house development is much more expensive than cooperating with a vendor. The final price makes up of many expenses like rent, taxes, software, hardware, and more. In fact, there are some additional spending like training for employees, sick days, and benefits.
2. Staff turnover: Software developers tend to change the working place quite often. It happens because the demand for talented developers is high and other companies tend to offer better working conditions. As a result, you may face some challenges with labours and lose time. Finding a new developer is always time-consuming, so your project development can be stopped or slowed down for some time.
3. Lack of tech talents: The ever-rising IT market brings an overwhelming demand for tech specialists. It is already tough to hire the right person in some regions. Apart from meeting soft and hard skills, the developer should fit into the planned budget. Which is often hard because of competition from other companies.
Besides if you do have any questions give me a call: https://clarity.fm/joy-brotonath