Do you build an application development team in-house or outsource it to a specialized agency?
In this article, we're going to breakdown some facts and offer advice based upon our experience here at White Rabbit Group. Over the years, we've worked with over 50 marketing and creative agencies. During that time, we've hired over 40 full-time employees to build our team. With most of our team comprised of technical developers and managers, we've been through the hiring process many times.
We have distilled what we have learned over the years about what it takes to build a quality team to develop web and mobile apps:
- It takes a full-stack team to create high-quality web and mobile apps.
- Every ship needs a captain. You need a strong technical leader with many years of experience.
- Culture fit is essential.
- Hire slow and fire fast. The hiring process is important!
- Money makes the world go round. Do you have enough to keep a full-stack team on the books?
The team that we've built is impressive, agile and, most importantly, passionate. Our hiring process can best be described as intense. We vet hundreds of candidates to find a single good fit. Through trial and error, we have found that the best team members for our culture are those who possess passion, technical ability, and solid communication skills.
Below are more details on each of the main components of building a good development team capable of finishing quality products on schedule and on budget.
1. It Takes a Full-Stack Team
It takes a full-stack team to build web and mobile apps properly. It's true that you can hire one developer to knock out a quick website, but if you want something built correctly or to offer your services on multiple platforms, it's going to take a full team. For example, we do a lot of WordPress development and to build a WordPress site on a skeleton theme, like Underscores, it takes a team of five highly trained developers.
When building a WordPress site, our team consists of a Technical Project Manager, Team Lead, Frontend Developer, PHP / Backend Developer, and a QA Engineer. All of these roles are critical to the builds that we do and the end product that we deliver.
Below is a breakdown of the five roles referenced above. Keep in mind, this doesn't include the design team, CTO, or any other stakeholders.
Technical Project Manager
The project manager keeps everyone on track. This person bridges the gap between development and stakeholders, who may or may not have technical experience. Every project has a timeline and a budget. Making sure that the team stays on schedule, adheres to what needs to be built, and is within the budget are major responsibilities that a project manager is responsible for.
The project manager focuses on the entire project as a whole so that a developer and the rest of the team can focus on doing what they do best, writing code, and testing user scenarios. A project manager is busy writing emails, assigning tasks, reviewing budgets, organizing the Kanban board, reviewing timeline and hours, updating clients, writing documentation, attending meetings, and more. A good project manager keeps everything together; they are the glue.
The team lead is an experienced developer or architect. They usually work on multiple projects and manage most of the people doing the work. The team lead has more experience than most on the team and is there for team members to lean on for high-level questions to help architect a new feature, etc. They don't just manage; they are in the weaves, writing code, and building out features.
Another important role for the team lead is that they are directly working with our project manager. These team members update each other throughout the build through comments on the Kanban board and meetings. Together, the team lead and project manager make sure the entire project is running smoothly.
They are the ones that push the pixels and make sure everything matches up with the design. The frontend developer is one of multiple developers on a project.
PHP / Backend Developer
WordPress is built on PHP, so a backend developer is needed to build out a theme and write PHP functions/plugins for a project. PHP is a server-side language, so this code cannot be read publicly and is the code behind the scenes working on functions and communicating with a database.
In a sense, the backend developer is the magician of the group!
One of the most critical roles here at White Rabbit Group is the QA engineer. QA stands for quality assurance, and their primary role is making sure that everything we develop functions properly and meets our standards as a company. Our QA team for WordPress runs the site through our internal checklists for product quality before it's allowed to leave the dev shop or go live. They then report any issues to our development team to fix.
The QA engineer is in charge of making sure the technical specifications match the design. They catch copy issues, spot alignment issues, check cross-browser compatibility, scan for security issues, and more. They are the last line of defense before we push anything live to production.
The roles above make up the composition for how we build a site on WordPress. White Rabbit Group designs and develops on multiple platforms and languages. Depending on what the requirements are, there could be more or less team members on any given project.
2. Strong Technical Leader - Your CTO
A team is hard-pressed to function efficiently without a strong technical leader. The CTO is the foundation for building a good development team. This person is not in the weaves of writing code. The role of the CTO is to empower the team, ensure that company culture is being fulfilled, stay cutting-edge, lead as a technical architect, and overall make sure the team is working on a solid technical foundation. Whoever fills this role needs to be able to speak the technical language and be an effective leader.
“We've hired developers in the past, and they didn't work out because they weren't a good culture fit.”
We've heard this similar message many times from agencies that come to us for development.
You have to harbor the right culture for developers. To work with the best, your team needs to be challenged, continually learning, and progressing along the path of working on the latest technologies. A good, passionate developer will want all of these things, or else they won't stick around long.
From the developers to the salespeople, culture is everything! For us, matching up our culture with who we hire starts at the beginning. We know developers because we are developers, we speak the language of web-based software development and know-how to translate it to work for the short-term and long-term goals of our clients.
This leads to the next section... the hiring process!
4. Hiring Process
If you are not a technical leader yourself or don't have a technical leader on your team, it's going to be difficult (if not impossible) to review a potential employee during the interview process. Hiring someone new is a gamble until you work with them, but it's a lot riskier when you can't evaluate their ability to code.
We've heard some scary stories from agencies about hiring developers that came in and totally wrecked the development of a build. It can take years to determine the quality of a developer if you do not have a technical leader on staff. We have cleaned up after some truly horrific project development disasters. Know who you are hiring and make sure they meet your technical and cultural criteria.
Below is our hiring process for any developer or designer here at White Rabbit Group:
- The recruitment team reviews submission of application.
- Level One Interview. This is a one-on-one conversion with our recruiter for competency, work history, and to get an overall feel for the person with our initial list of questions.
- Level Two Interview. Technical interview from one of our team leads or architects. This is a verbal interview.
- Level Three Technical Interview. We test them on a computer with exactly the skills we're hiring for, whether it be design, PHP development, iOS development, Shopify development, etc.
- Level Four Interview. Call with our CTO or Creative Director.
- Level Five Interview. Call with our Co-founders (CEO + CTO) as a final decision.
Throughout this process, we will review hundreds of applicants to fill a single position.
Building a team that fits the company culture and work ethic is important. Maintaining that team, however, is even more critical, and that's why firing is crucial to the team-building process as well. Anyone not meeting the minimum bar, who misses tasks, or who brings down the rest of the team, ultimately affecting company culture, should be let go quickly.
As an employer, we care deeply for our employees’ livelihood, so we want to be sure that those we bring to the team are going to be successful. For this reason, our hiring process has become extensive and undergoes continuous improvement to ensure the people we hire are the right fit.
“Hire slow and fire fast” is a business concept we live by.
5. Cost Breakdown
For a typical custom-built web app, it takes a minimum team size of 6 people, each with different skill sets. Right now, our go-to custom web app stack is a React frontend with a Laravel backend, along with other services/frameworks depending on the project needs. Noted below is a list of the team member’s titles on our team and associated average salaries currently listed on Glassdoor.com:
- Frontend Developer - $77,908*
- Backend Developer - $117,284*
- Software Architect - $132,510*
- QA Engineer - $71,927*
- UI/UX Designer - $90,697*
- Product Manager - $113,886*
To employ a team of this size internally would cost over $600,000 annually, and that doesn't include any taxes or employee benefits.
If you were looking to upgrade your web app to a mobile app, you would need to add two more members to your team. Depending on the type of mobile app being built, you would need an iOS developer, an Android developer, or both. Noted below are salaries for each role:
- iOS Developer - $106,557*
- Android Developer - $97,445*
If you wanted to build out a web app along with a mobile app interface, you're looking at hiring a team of 8 people with a base salary cost of over $800,000 a year!
One option to cut costs would be to hire one or two full-stack individuals; however, we've found that specialized developers produce the highest quality work since they have dedicated focus in one area. This is especially true if you are building on multiple technologies.
It takes a lot of overhead to build a talented, full-stack development team here in the United States. You could also try to hire overseas developers at a cheaper cost, but that is something we do not recommend unless you have stakeholders or trusted individuals managing your overseas location directly, in person.
* See Footnotes
This is an overview of our values for building a development team that gets results. There are two major ways you can work with web app development teams to get your projects done. First, you can hire an agency that delivers high-quality projects finished quickly and on budget, or second, you can build your own, in-house, team from scratch. The choice is yours, but we have listed a few considerations below that you might want to take a look at before you make a decision.
When to work with a company that specializes in development, (outsource) if:
- Cost is a concern/hiring in-house is too expensive. We work with many agencies that make more profits when outsourcing than hiring in-house.
- Your development needs are not consistent month-to-month.
- You have a small development team that is specialized in what they do but do not work on what is needed for the project. For example: you work on WordPress, but you need a development team to build a mobile app.
- If you are a startup without a strong developer and you're trying to build your Minimum Viable Product (MVP).
- You offer development as a service but it is not your core business.
- For any reason, you believe building a development team will negatively affect your company culture.
- You do not have a strong technical leader.
- You like a more hands-off management approach to development.
When to build your own development team (in-house), if:
- Development is core to your business services or products.
- You can afford to build, manage, and pay a full-time team.
- You have a strong technical leader. This is the most important foundational block to any good development team.
- You have a steady flow of guaranteed business coming in that can support the development team.
- Your business culture matches well with the culture of technical software development.
Bottom line, if development is not core to your business or you are a startup in the beginning phase of building your product, you will want to focus on what you do best and partner with a company that is specialized in app development.
There are many amazing development shops out there. When choosing one, make sure you vet who you are going to work with. We've heard all the horror stories! Look at the work they have done, ask for referrals, and start with a small project to see if they are going to work out.
This article is a brief based on years of experience working with many agencies and hiring our share of in-house developers that didn't always work out. We hope this has been informative and helps during your hiring process. Thank you for reading, and be sure to stay tuned for more!
Footnotes and References
Average salaries mentioned in this article are based in the United States and were pulled from Glassdoor.com in November, 2019.