Before settling on a contractor or software company, the very first thing you should focus on is to invest time and money in planning your software requirements. This will save you money in the future and ensure your expectations are clear. Secondly, if this app is part of your core product offering, outsourcing your core competency isn’t the best route. You should be looking to build product expertise within your internal team, attracting and recruiting the best technical talent as you grow, and looking out for someone who can oversee the technical roadmap throughout the lifespan of your company. A web development company cannot do this for you and neither can a contractor. Only a good CTO can.
However, if you’ve decided to outsource your requirements, you might’ve come across a lot of opinions which sound cut and dry. But, it's never that simple. Many might conclude, if you have the budget, go with a web development company, and if you don’t, find a good independent contractor. The conclusion they’ve drawn isn’t wrong, but it all still boils down to how good the programmer working on your project is and what management model you’re more comfortable working with.
Web development company
If you look at it, web development companies are actually just a team of contractors. Once you hire the company, the company assigns contractors to your project. One benefit of working with a web development company is a relatively higher quality of work if you go with a reputed company. Here, it's understood that the company has vetted all their employees and works according to industry's best practices. In short, the work should be a lot more professional. A related benefit then is one of management, the web development company you choose to go with should provide their own product or project manager. It's his job to ensure the contract stays on schedule. This way you don’t have to spend as much of your time micro managing, but you should still be keeping regular tabs on their work. This frees up your time for strategy and operations.
Going with a web development company is arguably the most expensive option, and they most probably won't be as flexible as working with an independent contractor. They’ll want longer contracts and use their own legal contracts instead of yours. Even so, if you don’t want to be locked into a long-term employment contract yet and you can afford the cost, this is probably your best option. Especially if you are building your first product from the ground up or if it’s a complicated project, and you don’t feel comfortable having to manage developers yourself actively.
If you’re building a startup, after your MVP is completed you will need access to your developer on and off depending on your needs. For this reason, an independent developer is a lot better. Companies have many projects going on and might not be able to assign you a dedicated person to answer your questions and concerns at your beck and call. With independent contractors, you should be able to save money, but if you are a non-tech person, you will face difficulties in understanding the technical side at each of the development stages.
A good independent contractor will be an expert in their field and won’t need direction from you. Nevertheless, you will have to manage them, and most likely give them a spec to carefully follow. You will find enough contractors to work on a fixed rate if they understand what you require of them, but they won’t warm-up to the idea of constant revisions without an increase in compensation. Often, fixed price gives you a faster turnaround than paying hourly. Paying hourly will increase your costs, and won’t encourage them to complete your work faster. The biggest problem with most contractors is they want to get compensated for their time and not for their results. Of course, this doesn’t apply to all contractors.
With contractors, you’ve got to be crystal clear about your expectations up front. Draft a comprehensive requirements document and set up a meeting to align your expectations and agree on a timeline. Also, try and get a fixed contract whenever possible. This puts a cap on your spending and ensures you’re paying for results and not time. It’s difficult usually, getting developers to agree to fixed-rate contracts, but it's worth putting in the extra time looking for someone who will. The more detailed your requirements and mock-ups are, the more likely you’ll get your fixed rate. Once you do start, check in regularly. I would hesitate before hiring a contractor to build your site from scratch unless you know exactly what you want, are willing to put in the time as a manager and understand the technologies being used, but contractors are great for doing quick bug fixes, and straightforward feature builds on an ad hoc basis.
No matter who you decide to go with, make sure you have put together detailed requirements and mock-ups and that everybody is on the same page. Then get quotes from a bunch of different independent contractors and development companies and compare the expected quality and cost of them all. Make a spreadsheet and do a cost-benefit analysis. I’m sure you’ll have your answer then.