A lot depends on what you need to build and how long you have to build it.
Your development team, whether in-house, outsourced, or a combination thereof, is often crucial to your product’s success. Choosing how to build your team can be difficult.
My company SmartLogic does outsourced application development. From this work, I have witnessed these various methods in action. Depending on the needs and stage of your product and company, each model has serious merit. In our ten year history, we have seen companies try to use outsourced development, when they would be better off building their product in-house and vice versa. Outsourced development companies are not a great fit for every situation.
To build an application development team, you should carefully consider three different approaches:
- Doing all development in-house
- Outsourcing all development
- Using a hybrid model
Understanding the Constraints
When considering building a web or mobile software product — and how to build your application development team — it is important to consider five key constraints:
Time
- How quickly do you need to launch? Once we had a client that needed to get a prototype of their application out in time for the upcoming Y Combinator application due date.
- Are you unable to start development, until you have figured out some other piece of the puzzle? This could be a seed round or physical prototype development.
- Are there marketplace constraints on when you need to launch your product? For example, we were part of a team that was hired to fix Healthcare.gov after their problematic launch. Open enrollment began November 15, creating a hard deadline.
- Budget
- What’s your budget? Can you launch a bit later in favor of spending less money? Do you have money but need to get the product out the door ASAP?
- If your company is profitable but you do not have investment capital, the slower, steady pace of development done in-house might be best. On the other hand, a client of ours ramped up development quickly when they were funded, to move ahead of their competitors.
- Long-term Plans
- Are you building the next Facebook? This means you will have a steady flow of work, thereby requiring that you hire thousands of engineers?
- Are you building a product where your development needs will ebb and flow or be seasonal in nature? We have a client that makes teaching evaluation software. They ramp up development right before the school year begins but become quiet during the year. They do not need a team of developers.
- Your Experience Hiring and Managing Developers
- As with any type of specialist, if you do not know how to manage them, you are setting yourself up for failure. Someone involved with the project should have experience managing developers or you will have an unhappy team and a bad product.
- Developers are passionate about creating clean, theoretically sound code. If you ask them to cut corners for speed or budget, you will create low morale.
- Your Experience Developing Software Products
- If this is not your first time, then you will have a better handle than most on what resources you will need to get your software built and launched.
- If you do not have experience developing software products, you might think hiring one developer will get the job done when you actually need eight. Research the processes required to manage projects efficiently.
A Few Different Approaches
Considering your specific situation, you will likely pick one of three approaches. Below is a brief summary of each, and when it might be most appropriate:
- In-house. In this approach, you will do all product development with your own staff. It will take longer to get your product to market, but it will be the cheapest approach in the long term. Facebook is the classic example of a company that succeeds with an in-house development team. They need teams of developers for maintenance, as well as teams to add new features. The thousands of developers working at Facebook will always have work to do. When developing in-house, it helps to know what you are doing and what you will need.
- This approach is generally more expensive in the short term, but allows you to quickly ramp up development resources and launch sooner. While it helps if you have had experience managing the development process, it is not a prerequisite. Many of our clients are startups that need to hit the ground running, so they bring us in. As they expand, they move their development in-house.
- You can also do a combination of both. You will not need as much experience developing software if you hire the right people. We have partnered with companies who are growing too quickly to keep up with their development needs internally, as it can be hard to recruit and train quickly. For example, one of our clients has full-time developers on staff, but outsources specialized projects to us when they need to.
How you decide to build your development team depends on your specific situation. Outsourcing is not a magic pill for every team. It is better to develop your product in-house. Use the constraints described above to help evaluate your needs.
Keep in mind that no matter how you choose to develop your product, you will not succeed unless you have strong leadership. An outsourced development team can be a piece of this puzzle, but you cannot outsource everything. The best companies we work with have strong leadership in-house. If your team’s leaders do not set a strong direction for the product and cannot quickly make decisions, then the technical team responsible for building your product will struggle, wherever they are.
The Young Entrepreneur Council (YEC) is an invite-only organization comprised of the world’s most promising young entrepreneurs. In partnership with Citi, YEC recently launched BusinessCollective, a free virtual mentorship program that helps millions of entrepreneurs start and grow businesses.
Image credit: CC by Phil Whitehouse