If you are a non-technical founder and you want to build a web or mobile app you have only three options — learn to code and build it yourself, find a co-founder who will handle the technical side or hire people to build it for you for money. The myth is that having a co-founder or learning yourself are good ways of solving the problem. My opinion is that building your team is way better, even without deep technical understanding. After all, you should hire people who are smarter than you. But there is one option I want to discuss before diving into details of building your own team — hiring a traditional development agency.
What is an agency and how it operates
Hiring an agency is much more efficient than learning everything yourself and then building the whole thing. From a purely economic standpoint, you can earn money by doing what you’re good at already, and spend them to pay professionals in product development.
A software development agency is a company who specializes in building software for other people. They usually have a pool of developers who they work for and constantly look to expand their team. There are agencies of all shapes and sizes, but most of them work using two models — either they ‘rent’ you developers so that you manage them yourself (staff augmentation) or they work on a per-project basis when you define the scope of the project, and an agency works on it until it’s completed.
Why you should be concerned
Price
Working with agencies might be pretty expensive. A typical project can easily cost you few hundreds thousands of dollars which often unbearable for early-stage startup founders. Sometimes the fee structure even requires you to pay a significant amount of money in advance and then paying every week as you see the progress.
Mitchell Lee, a co-founder of Penny, a personal finance app, had a great post about raising money. He writes about two options for early-stage funding — either raising up to $250K through friends and family or raising seven-figure amount from a VC-backed fund. If you have the funding, then you probably can afford to build an app through an agency, but if you are bootstrapping this might not be an option.
Misalignment of goals
There’s another reason why you should be alert when working with an agency. The goal of the traditional agency is to increase revenue, which contradicts the purpose of a startup — reduce costs when possible. An agency which is working towards that goal will try to maximize the budget by adding additional features and encouraging feature creep. It would typically have long-term consequences because you might end up dealing with details of unnecessary features than doing what’s important.
Being overprotective
Sometimes agencies are trying to protect themselves from companies they work for. They hide their process behind a single point of contact and don’t allow clients to interact with developers and other team members. If you don’t have access to people who are working for you, you will end up with a very disappointing end-product that is far from what you expect.
Founders must be involved in the process as much as possible. Maybe handling day-to-day tasks and answering questions is something a project manager should do, but you must have access to critical decisions, especially when requirements are scoped out or design is being created.
My experience
Over the years I’ve worked on the development side of many projects and launched few myself. I’ve hired technical co-founder and worked as one myself, I’ve hired an agency and worked in one. During the last ten years I’ve both worked in a team created by non-technical founder and built a team myself.
I think that the current agency model is entirely out of date. Software products are so complicated these days that you can’t define the scope in the beginning and estimate the work correctly, no matter good you Business Analyst is. Requirement change on the go, as customers give their feedback, and the team must be ready to embrace this change. It’s hard to accomplish in a traditional agency when developers switch back and forth between projects and don’t have context and don’t understand where the company is going.
Work with a dedicated team
I think the only solution that works for building a tech product as a non-technical founder is finding good developers and working with a dedicated team tailored for your specific projects. My goal is to help you do that and avoid fraudulent people who will waste your money and produce poor results.
You can slowly build your team, gradually scaling it as you need. The best part is that you’ll be able to learn the product development process and won’t need to spend hundreds of thousands dollars on something that will bring unexpected results. You will be involved in the process and will make critical decisions that will drive the product the way you need.
Common mistakes
Looking for low prices
One of the biggest mistakes founders make when hiring agencies or building their team is trying to reduce costs and recruiting based on price. A new agency will typically charge less, but the result of their work will be useless. Same way with cheap developers or designers — there’s no way a professional will charge a low fee if the quality of their work is good, the demand is high. It even works in developing countries — it’s hard to find freelance developers who will agree to work for $20/hr, will have decent communication skills and will be at least at the middle level of their skill.
Not doing homework
You have to do a lot before hiring someone. Talk with customers. It's something that can’t be outsourced. You need to know everything about your users because this is 50% of the success of your startup. You need to figure out where to reach them and as them what problems they have and how they solve them now. If you are solving your own problem, you still need to find others, or you will spend a lot of time building something that only you will use.
After you talk to the users write down requirements of the first version. Define what features should be there and how they should work. Think about the priorities — you need to choose features that bring the most value and build them first. Your priorities will change, but you need to start somewhere.
Create mockups. It doesn’t matter if you don’t have the design skill. Just drawing boxes and lines will work as long as you can illustrate how things should work. Try to find examples of the apps that have the interface you like and want to use. Don’t worry about doing something based on the work of other people — if you don’t just copy and paste other’s work but use it as a reference and inspiration you have nothing to worry about.