If you needed to change a flat tire, would you ask for a screwdriver? No, you would grab your lug wrench. It’s all about the right tool for the job. The same is true for software development. When it comes to software development services, you have a number of options, and you need to choose the one that is most appropriate for your software development needs.
Two of the most common options for outsourcing software production are using software development companies, also known as “dev shops” or “dev agencies,” and hiring freelance web developers. In this article, we will go over the differences in price, purpose, management styles, and more, to help you decide the most suitable option for your software development requirements.
The most obvious difference between web development agencies and freelance developers is price. Outsourcing your software development to a dev shop requires a far larger budget.
US-based dev agencies typically charge between $200-$300 per development hour. You can find overseas software development agencies for cheaper, but when working with overseas partners you also need to consider language, culture, and time differences.
For more on working with overseas software engineers, you can read this previous post comparing US vs. Internationally based developers.
Dev shops normally package projects into sprints, meaning they allocate a given amount of time (often two weeks) to deliver certain milestones or features. The billable amount for each sprint will be calculated based on the number of development hours and the complexity of the features it includes.
Also, keep in mind that not all dev shops are created equal, or have the same capacity for volume and velocity. There are massive dev shops that have over 50 software engineers and only take on projects that exceed 400k. These software development agencies are more likely to work with big clients like banks, car manufacturers, or government agencies. On the other end of the spectrum, there are boutique software development agencies that may have fewer than 10 developers and work with a more diverse range of clients and budgets.
According to our survey of over 5,000 freelance developers, the average rate for a U.S.-based freelance web developer is $70 per hour. This does vary by region, and developers in tech hubs or metropolitan centers commonly charge upwards of $85 per hour. The most skilled developers who have built up their experience and reputation can command much higher rates, at up to $150 dollars per hour. Just like with dev shops, there are savings to be found overseas. In the least expensive outsourcing destinations, rates can be up to 30-40% lower than in the United States. However, remember to take into consideration all the factors that contribute to value creation and a successful software engagement.
In the beginning phases of a project, there are also differences in how the two parties come to an agreement to work together.
As an established business with salespeople, dev shops will typically hear a client’s requirements, or rough description, draw up several packages of how that might be manifested into software, and then make a sales pitch. Most software development agencies are well practiced in offering different versions of your idea, which will all likely have different price tags. Variety can be welcome, but in a sense, the dev shop is selling you your idea. Discussing details of the project with a salesperson rather than a developer can make some clients feel uncomfortable. However, it should be noted that behind the scenes, the salesperson is most likely in close consultation with the developers.
On the other hand, freelance developers make a project proposal, or bid on projects. For project proposals, typically the client will first screen, interview, and vet freelancers, and then ask for a project proposal. Some freelance platforms use a bidding process, in which the freelancer reviews the project requirements and user stories, and quotes a price for their services to complete the project.
While this may be a great way to root out the most frugal development option, this is essentially a race to the bottom. If you pay below market price for your software, don’t expect the finished product to be up to industry standards….if you are lucky enough to get a finished product at all.
Dev agencies and freelance web developers offer different solutions for different problems. A dev agency is an entire organization with salespeople, accountants, project managers, HR departments, and customer relations, while a freelancer is just a single person who has to do their own time tracking, billing, customer relations, and oh yea, software development. Naturally, a dev shop is going to have greater capacity for larger and more complex projects.
A software development agency will be better equipped to help clients develop full solutions, longer-term projects, and provide ongoing post-launch support. They will likely have a range of technical skill sets and expertise on hand to meet a variety of software development requests. In addition to software development, many dev agencies offer an array of other services. Here are a few commonly seen:
In case of any bugs or technical glitches after project completion, most software development agencies will offer a contract option for support, which would typically be a certain number of support hours to be applied after launch. In addition, dev agencies will also take care of drafting contracts and non-disclosure agreements, which you should review and revise as needed.
With a whole team of experts, (some) software development agencies have the ability to offer vertical and horizontal solutions, such as helping clients develop, monetize, and bring a product to market. While this may sound appealing, be careful about making a third party the primary stakeholder and knowledge authority in your business. More on this later.
Unless you scale up a large team of freelance web developers, the freelance option simply won’t have the same capacity for volume as a dev agency. Unlike a dev shop, most freelancers will have one or two areas of expertise, and specialize in niche solutions (no one can be an expert at everything!). It is possible to work with a team of distributed freelancers on larger projects, but this will require a lot of hands-on project management from you as the de facto project manager.
Working with freelancers is more suitable when you have an existing product that you need some maintenance work done for, have a standalone project, or need some more dev power on an existing time-sensitive project. Freelance developers are ideal for:
Keep in mind that freelancers usually require a steady flow of clients to remain profitable, and they may have other projects lined up to jump into upon completion of yours. If you anticipate the need for software support after project launches, you will need to negotiate this ahead of time and be sure the freelancer is able to reserve those hours for you.
While both dev agencies and freelancers may be happy to work with you, it is not recommended that you rely exclusively on outsourced talent for production of your core product. This would make a third party the primary stakeholder in your business. Do you really want another company or individual building your company? This would come with a whole host of other problems, most notably a knowledge deficit of the C-suite.
To learn more about building your own business, check out this article on how Brandon Foo of Polymail used customer development to grow to over 25,000 active users.
Do you want to tell someone what kind of car you want and then sit back and let them build it? Or, do you want to recruit the engineers and run the team that builds your car? Of course, if you choose the later, hopefully you have some technical background and know how the pieces come together to assemble a vehicle. This is similar to the difference in management styles between contracting a dev agency versus freelancers for software development.
Dev agiencies provide ready-made teams. They have already been working together, most likely have practiced workflows, and a project manager to keep them on track. When working with a dev shop, the client will necessarily be more hands-off, collaborating only with the project manager, but not with the software engineers. The client doesn’t need to have strong technical knowledge (though this helps in communicating your vision) because the project manager will oversee all of the working pieces and be responsible for quality assurance of the code and finished product.
When working with freelance developers, often times the client is the project manager. The client must run the team, assign tasks, and coordinate responsibilities. In the case of multiple distributed team members, this may not be a simple undertaking. Furthermore, the client may be responsible for quality assurance and code review. This requires a degree of technical background or a trusted partner to oversee technical accuracy.
If you are ready to pay up and let the professionals do their work, you may lean towards contracting a dev shop. On the other hand, if you want your finger in the pie, freelancers may be more appropriate.
High-quality software projects can be produced both in partnership with freelancers and software development agencies. Some of the best developers in the world choose to shift to freelance work to have more flexibility and control over the projects they work on. That being said, dev agencies usually have a more visible brand — reputation and quality are therefore easier to identify.
Any dev shop worth considering will have testimonials and a diverse portfolio of completed projects to show off. You can also find customer reviews for added social proof.
The vetting process for identifying a quality software development service is a bit more involved when it comes to freelancers, but there is some overlap. Here’s what a typical process may look like:
The discovery phase is a period of time before the partnership is formalized, in which the client and the project manager exchange information, ideas, and expectations to see if they are a good fit. This is similar to a trial period with freelancers. Depending on the service you choose, the discovery phase may or may not be billed.
You can see that screening for a quality freelancer requires a bit more on the part the client. If the client does not have a strong technical background, they may want to find a trusted partner to review the freelancer’s code quality (i.e., GitHub, Bitbucket) and conduct the technical interview. To reduce this burden, managers that lack software development expertise may turn to freelance platforms. Platforms like CodementorX help clients condense the recruiting process by pre-vetting candidates with a rigorous review process. Additionally, a risk-free trial period is worked into the matching process. When contracting individual freelancers not associated with a platform, they are not likely to offer a free trial period and may even demand payment upfront.
The vetting process described above can help reduce the risk of a mismatch for both options. Also, keep your ear to the ground for referrals….nothing speaks to quality and credibility like personal recommendation.
For both freelancers and dev agencies, you will find a wide variety of price ranges depending on reputation, experience, and geographic location. Dev shops in the United States and Western Europe will require a massive budget, but don’t fall into the trap of going with the lowest bidder. If sourcing your talent from overseas, a successful project will depend on your ability to properly vet. It will be crucial that your point of contact can communicate in your language and be on the same page culturally.
When it comes to dev agencies, you pay a premium for the convenience of a more comprehensive solution. Project management and quality assurance are provided for you, and you can pretty much just sit back and chill while your software gets built.
If you work with freelancers, your bank account will thank you. But you need to be ready to put in the time and take the lead in executing the project. For entrepreneurs developing an MVP on a budget, or want to have greater control over the development process, freelancers will be the obvious choice.
As for communication considerations, if working with an agency, you should expect your project manager to be at your beck and call. Freelancers may be distributed across time zones, and it will be up to you, the project manager, to coordinate communication structures and flows.
Working with freelance developers provides maximum flexibility, while working with a software development agency is considered more formal and all-inclusive.
Take an inventory of your software development needs and the in-house skills of your business. If you don’t have a skilled CTO, and software development is not a core competency of your business, you may want to go with a dev shop.
If you already have an in-house development team or a decent amount of technical knowledge, and just need some additional expertise or extra hands — save your dollars and go with freelancers.
Talk to CodementorX to learn more about how top freelance developers can help you and your business.
What should be in Your Freelance Developer Contract
How to Pay a Freelance Developer
How to Write a Product Requirements Document
What Should be in a Developer’s Portfolio
The Essential Guide to NDAs
Everything You Need to Know Before You Hire a Freelance Developer