If you’re looking to build a new software product, whether as an established business looking to launch a new website or app or as an entrepreneur bringing a new product to the market, if you’re not a developer yourself you’re likely considering two primary options:
- Recruit and hire an in-house team
- Find a local development partner
The right choice for your project will depend on a wide range of variables, including budget, timeline, staff capacity, and you or your company’s familiarity with developing digital products.
An in-house team is best when you need complete control over every aspect of the development process and have the resources to recruit and hire the necessary staff to do so. An internal team will be entirely focused on developing and optimizing your project, and you won’t have to worry about them being distracted by deadlines for other clients. They’ll be around for the long haul and you’ll know who to turn to when something (inevitably) breaks.
However, If you’re in a big, startup-friendly city like Los Angeles, New York, or San Francisco you’ll need to compete for quality talent with the top startups and tech companies in your geographic area (think Snapchat, Facebook, Google, etc). To develop a quality product you’ll likely need to find at least:
- Senior Engineer/Technical Architect
- Project Manager (can be you if you have the experience)
- 1-2 developers
- User Experience (UX) Architect
- Visual Designer
- Quality Assurance (QA) Engineer
You may not need everyone to be full time to start, but it can be very difficult to manage an entirely part-time team who has never worked with each other. Recruiting and hiring these people is not only time consuming, it’s also quite expensive. You’ll need to consider:
- Advertising job listings
- Event fees
- Recruiter fees
- Travel expenses
- Signing bonuses
- Annual salary
- Employment taxes and insurance
- Can be less expensive than hiring an agency as you can negotiate your own rates/salaries
- More control over the vision and direction of the product
- Team will be more responsive to your product’s needs as it will be their sole focus
- Can build a team from the ground up that believes in your product
- Recruiting the right team with the right skillsets
- Heavy competition for qualified workers
- Needing to create a cohesive and productive company culture
- Overhead including salaries, healthcare, office space, insurance, utilities, etc.
- Scaling to the needs of a growing user base
Local Development Partner
Hiring a local development partner will get you a team that has all of the pieces you’ll need already in place and is very familiar with the planning and development process. They will have more experience working with each other which leads to smoother and more efficient product development.
By hiring an agency you’ll likely gain access to a wider range of developer skillsets and Subject Matter Experts (SMEs) than you would by hiring a few full-stack developers internally. You won’t need to scramble to find that Node.js, iOS, or Salesforce expert. Finding a local partner who you can meet with in person on a regular basis will allow you to build a relationship with people who understand your business objectives and product vision, not to mention whiteboard solutioning is way more fun than video meetings over Skype.
If you have a set of business requirements but not necessarily a technical Product Requirements Document (PRD) you’ll want to find a partner that truly understands your product vision from both a business and technological perspective and can translate that into specs for the development team. You’ll likely need to start with a Discovery phase, sometimes called Ideation or Planning, to design the product. This should include:
- Business Analysis
- User Experience Architecture
- Technical Architecture
- Creative Design Concepts
When evaluating your partner you’ll want to consider the three P’s: Pricing, Process, and Personality.
Pricing: Does their pricing model work with your budget? Do they work on a time and materials or a fixed bid basis? Can you pay by the development sprint? Are their rates well-aligned with market rates for particular skillsets?
Process: Does their discovery and development process align with your business processes? Are they thorough and able to explain how your working relationship will function? What is their communication and reporting process?
Personality: Do you get along with them personally? Do they understand your vision? Can you see yourself working closely with them over the next few months (or years)?
You’ll be working with your partner on a regular basis for the next few months (if not years!), so often personality fit is the most important factor.
Access to an experienced, cohesive team
Work with a wide range of subject matter experts
Only need to make the hiring decision once
Can scale more quickly and easily
Can be less expensive than hiring a full internal team
Less control over the team and will be less responsive
Aren’t truly a part of your team and culture
May be focused on other client projects
Potential personality clash with internal team
Longer-term support can be tougher (though still less expensive than full-time staff)
How to Decide?
- If you’re selling a product where the technology itself is your value proposition, like a SaaS service or complex mobile app, you may want to go in house as you’ll need someone for the inevitable bugs, fixes, and feature requests. It’s also difficult to scale a product for the long run with an outsourced team.
- If you will need to adapt to changes in requirements and the marketplace swiftly and frequently (on a daily basis), you’ll want an internal team with a product owner and dev team who is on-call.
- If you’re building a tech-enabled product, like an ecommerce site or a simpler app, you may be better off having an experienced partner build your MVP and hire an internal team once you’re bringing in revenue and it’s time to scale.
- if you’re developing an internal business product that will require a large upfront development effort but can maintained will less direct involvement as time goes on, a local development partner might be right for you.
- If you’re building a product that will require a wide range of specialities (i.e. a website that needs to integrate with Salesforce, Quickbooks, with an Angular.js frontend and Ruby on Rails backend) you may be best served by working with a partner that can give you access to the subject matter experts you’ll need.
- If you’re a non-tech company that needs some short-term technical expertise and consulting, a partner may be your best bet.
The answer to “which option is right for me?” is it depends. Regardless of which direction you eventually take, the first step should be understanding what factors are important and how to approach the decision. In our initial calls and meetings with potential clients, we always make sure to work through your needs in order to ensure that you’re considering all of the items mentioned above, and we won’t hesitate to tell you if in-house is the way to go.