I recently received an enquiry about developing a new app for a local company. The email contained a clear description of a product followed by a question - “How much would something like this cost?”. The answer? It depends.
Software development is very difficult to cost accurately. Developers need a clear understanding of the final vision, the work, the unknowns, the company and any risk factors involved. It's rare that these are all known before work begins, and so costs usually get estimated based on the limited information available and past experience.
For clients, this estimation process can give them a price that's frustratingly opaque. It can be difficult to see how a developer arrived at the number they did, why seemingly small additions increase cost so much, or why big cuts to scope might not mean paying much less.
To help you understand how different factors contribute towards software development costs, I've listed some of the main considerations I make when pricing development work below. Each factor includes a helpful tip for getting as much value for money as possible:
Technologies in use
A developer who's familiar with the technology your company uses will be more confident in their ability to deliver your project efficiently. This reduces uncertainty for them, and development costs for you. An exception here is when you're hiring a developer who's very well known for their expertise in a particular technology. In this situation, high demand for their services usually means a premium price.
Aim to find a developer with prior experience working with technologies your company uses. Better still, find one who has also successfully delivered a project similar to yours in the past.
Quality of existing systems
If a developer needs to work with your existing systems, they're likely to factor the difficulty involved in working with those systems into their price. If your systems are well built, with low levels of technical debt and quality documentation, they'll be much easier for a developer to work with, reducing your development costs.
Before a price is given for a large project, allow a prospective developer to conduct a small technical investigation on any systems they'll need to work with to reduce their levels of uncertainty.
Needing to support a wide range of old devices often creates significantly more coding and testing work for developers. This drives development costs up. Conversely, being able to focus on supporting newer devices means less work, and will bring costs down.
Make sure to agree on device support before you're given a price for a development project. You may find there are devices the developer assumed they'd need to support that aren't a concern for your product.
New or existing codebase
Building within an existing codebase will often be cheaper than starting fresh, but this isn't always the case. The type of project, as well as the quality of an existing codebase may mean starting something new is more cost-effective in the long run.
Talk to your developer and figure out what makes most sense for your business here. Ask them to explain the trade-offs to cost, as well as long-term maintainability and scalability of your software.
More features will increase cost in any software development project. However, it's common for some valuable features to be cheap to implement, and also for less valuable features to be very expensive to implement. You can reduce costs by dropping features that are low value and expensive to implement.
Let your developer know which features are a low priority, and ask them if there are any that could reduce costs significantly if they were removed from the project.
Designs are becoming more complex as internet-connected devices spread into every corner of our daily lives. The intricate visual elements and custom user interface components they require can be very expensive to build.
Ask your developer to pair with your designer and consider trade-offs between design complexity and development cost. They'll likely find small amendments and ready-made components can reduce costs without sacrificing design quality.
Support and administration
Software with complex support or administration requirements often needs additional features and integrations to be developed to diagnose problems and keep product settings up to date. Like any feature development though, these can be a significant source of cost.
Consider using off-the-shelf support and administration services and ask your developer about the feasibility of integrating them with your software. These will almost always be much cheaper than building your own.
Value to the business
Developers will charge more to build a valuable product, because when there's large amounts of money at stake, the developer needs to take extra care to make sure everything works properly at launch. The price also makes the risk of working on a high stakes project worth their while.
You can sometimes negotiate a cheaper price by using a staggered launch to lower the stakes for your developer. Just remember that having them heavily invested in your success has its benefits too!
When there are many unanswered questions in the development of a digitial product, scope is prone to increase massively over time. In order to account for this risk, developers working on projects with a lot of unknowns will charge a much higher price.
While unknowns are normal, eliminating as many as you reasonably can before a project starts is always a good idea. If the unknowns are technical in nature, your developer can often help you unpick them for a small fixed fee ahead of the main project.
If your company is large, software development will generally cost you more. Large companies always have more stakeholders, more constraints, legacy systems, legacy process, and communication overheads that can make developing software for them more challenging.
Ensure your project has as few stakeholders involved as possible, and have clear decision makers within the group. When a developer knows they're working with a 5-person team rather the entire business, they'll be comfortable charging less.
Separate from the size of your company, the culture can also have a significant impact on software development costs. Cultures of indecision, disorganisation, and poor communication can make it very hard to make progress in complex projects, and costs will rise as a result.
Keep things running smoothly by pairing weaknesses in your company with strengths in your development partner. Changing culture is hard, so compensate by hiring a developer with the right complimentary skills.
Brand and sector
Developers will charge less to work with a well known brand or within a sector that's complimentary to their specialism, because these projects provide them with an easy marketing opportunity. Conversely, developers will charge more if your brand is “well known” for the wrong reasons.
Seek out development partners who will get a little something extra from working with you. Whether that's a big name to show on their website, a project aligned to their specialism they can write a case study for, or a testimonial from a well known person within your company.
Existing internal development teams
Depending on how they're managed, the involvement of your internal development team can raise or lower the cost of a project being undertaken by an external developer. Your internal development team will be a fountain of knowledge, but embedded processes and preferred technical choices can also get in the way of moving quickly, raising costs.
Give your external developer direct access to knowledgeable internal developers for questions, but ask your internal developers to communicate processes and preferred technical approaches back to your external developer early on to avoid rework.
So, how much does it cost to make an app? It still depends, but by understanding how different factors contribute to cost, you can begin to have a proactive conversation about lowering costs with your development partner. Plans can be made quickly, all of the right questions can be answered early, and subsequent adjustments to scope can be made by you with a clear understanding of their cost implications.
I make a living by helping companies bring digital products to market with solid foundations, room to scale, and costs under control. If it sounds like I could help you, have a look over my services. If you'd like to hear more from me, you should follow me on Twitter, for more product development content in future.