Whenever we have a first call with a potential client, they invariably ask us two questions. First, they want to know if they actually need a custom software solution instead of an off-the-shelf product (we covered this question in detail in last week’s blog post). Then they ask the “big question”: how much will it cost?
The answer is that it all depends on what you want to build. The analogy I usually use is, “that’s like asking how much it costs to build a house”. The price of a custom-built house depends entirely on the number of square feet and the quality of the construction and finishes used in the house.
Similarly, the price of custom software depends on several factors such as the number of features, the complexity of the features, platforms supported (web, iOS, Android), the technologies involved, etc.
Unfortunately for us, the “house” analogy usually doesn’t sit well with clients so this article is written to give you some parameters that you can use to estimate the costs involved.
6 Factors That Affect The Cost Of Custom Software Solutions
In this section, we cover the 6 factors that have the biggest impact on the cost of developing custom software.
1. Project complexity
This is the main driver of cost in a custom software product because it costs more to make complex software than simple software. “Project complexity” can sound like an abstract concept but you can actually quantify it by simply listing out all the features that you want your software to have, and then estimating the complexity of the features.
Certain technologies are more challenging than others. We can usually work with you to figure out the most cost-efficient platform for your project, however, you should be aware that certain factors will affect cost.
The term “platform” refers to the underlying technology used to build the software. A couple of examples are common:
- Does the app need to be a web app used only on a single screen size? Or does the web app need to be “responsive” (automatically adjust the layout based on the size of the screen being used)? Or do you also need mobile applications?
- If you need a mobile application, do you need to build “native” versions of the iOS and Android application, or can you use a hybrid development framework such as Flutter?
- In your mobile applications, what versions of the operating system and what screen resolutions (specific devices) will you support? Note that there are more than 24,000 different Android device types active, and “support” for each one requires testing and tuning (development).
- How will you build the backend of your application? The “backend” refers to the database, application programming interfaces (API) that make the web and/or mobile app function, and any web services you need to build such as notifications or some type of document or file handling functionality. Some firms elect to build applications using “off-the-shelf” databases and API services provided by cloud hosting companies such as Amazon Web Services while others build custom code. The former is less expensive to build but has high hosting/operating costs. The latter is more expensive to build but reduces hosting and operating costs.
3. Experience and Interface Design
This is the most commonly overlooked component of a successful software application. An application can have the best features in the world, but if they’re not presented in an intuitive way, no one will understand them and no one will use them.
In order to maximize your chance of success, it’s advisable to select a development partner with proven expertise in user experience and interface design as that team will spend time::
- Understanding the current behavior of your target users;
- Defining the “user journeys” that your software application will support;
- Conceptualizing, testing and ultimately defining user interfaces that best support the user journeys in order to create a positive customer experience.
Read more: What Makes a Good User Experience?
4. System Integration
Does your application need to “talk” to any other applications? Does it need to share information with other systems, i.e. payments, fulfillment, e-commerce, CRM, etc?
If so, this will increase costs since it requires additional engineering resources.
5. Team and Location
The next aspect concerns the software development team. The cost of developing your custom software will depend on your team composition, hiring model, and location of the development company.
A typical web software development team will have a business/requirements analyst, a frontend developer, a backend developer, a UI/UX designer, a quality assurance/control engineer, and a project manager. Some of these resources will be dedicated to your project, and some of them will be working on several projects (i.e. will work part-time on your project). Each has their own job that can’t be done by the other team members. Big projects will have several resources in each of these roles, and small projects will have fewer.
Software development costs also depend on the location of the development company. If you outsource, you can opt for offshore teams to significantly reduce your custom software development costs. Hourly rates vary by geography and the company’s value proposition and range from $20 to $200 per hour. More important than cost per hour is what you get for that cost. Larger outsourcers will provide you a development team without any “adult supervision”, leaving full responsibility to manage the team to you. This is sometimes referred to as a resource assignment engagement. Other firms, like ours, provide a senior executive to act as your engagement manager, overseeing all aspects of the development program and ultimately acting as an extension of your management team such that they share responsibility for the success of your software application.
6. Release Plans and Timelines
Thinking of software development as a “one and done” activity is a misnomer, making the “building a house” example above inadequate. You can’t simply build a piece of software, give it to users, and wish them the best of luck. Software is more akin to a landscaping business… when the grass grows back, you have to cut it again.
If you’ve chosen to build a software application, you’re either doing so to:
- Create a new revenue stream;
- Protect an existing revenue stream by improving the functionality or experience of an existing product;
- Reduce costs by automating something within a software application.
Thus the software application should have a measurable return on investment. While it’s natural to think about the cost to get to your first version of the application, you should also be thinking about the annualized cost to maintain and advance that software application so it continues to be competitive, operate correctly, scale to meet your growing number of customers, and make improvements specifically to address customer requests.
Thus, when talking to whatever person with whom you’re planning to entrust the development program (whether an employee or an outsourcer), ask for an estimate to get to a first release but also ask to understand the long-term costs to maintain and improve the application.
You may be in a situation where you want to race to get your first version completed and then slow down the pace of development until the application begins to return value, but regardless of how your resourcing changes over time and with each release, it would be a mistake to think that you can simply stop development once you release your first version. Thinking this way is to assume that your first version is going to fail and, if you believe it’s going to fail, why spend any money at all?
That’s Interesting, But How Much Does It Cost?
This was the question you really wanted to be answered, wasn’t it? Ok, we’ll cut to the chase. Keeping in mind all of our previous disclaimers, here’s a rough estimate of costs that you can expect, categorized by scope:
Startups will often need a “proof of concept” that serves as a demonstration of your product concept to potential investors and would-be customers. Your goal at this point is to raise money and validate your product concept. Modern advances in user interface design applications have made it such that prototypes do not need to be built with any actual code. Instead, prototyping (user interface design) applications allow the creation of “clickable prototypes”, which are nothing more than user interface pictures that have been made interactive (clickable). There are numerous solutions to build prototypes, but the most commonly used are Invision, Figma, and Adobe XD.
Clickable prototypes can often be built for $10,000 to $20,000, but could be more depending on the level of complexity and how much product planning/definition (vs. UX/I design work) is needed from the outsourcing partner. Building the same prototype in actual code would likely increase the cost 5x to 10x.
The term MVP, which stands for “minimum viable product,” is used a lot in entrepreneurship. The term usually refers to the most stripped-down version of the product that can still demonstrate its value proposition and allow you to establish a fit for your product within the market. So, for example, if you’re creating an app that calculates the cheapest way to send a package from point A to point B, the MVP would be a screen that enables the user to type in two destinations and see a list of the cheapest options.
An app like this has a very wide range of possible prices, but let’s assume that it would usually cost a minimum of $50.000 and could be up to 10x that if the MVP involves many complex features, technologies, and integrations.
Keep in mind, however, that by the time you start building your MVP, you’ve presumably used your clickable prototype to validate the product concept with potential users and you have a high degree of confidence that the MVP will be successful.
Annualized Software Development
Let’s assume you’re building an enterprise software application for a vertical market such as manufacturing or pharmaceuticals. Let’s further assume that your MVP took eight months to build at a cost of $50,000 per month and that you intend to sustain the pace of development (the team size) going into the second version. This implies an annualized cost of $600,000 for product development and an MVP cost of $400,000.
Cost estimation at CodeStringers
At CodeStringers, honesty in bidding is one of our core values. We’re not going to “bait and switch” you by giving you an artificially low quote to win the business and then hit you with change orders later. Everything we do is transparent.
When a client approaches us with potential business, our process is as follows:
- We work with you to create a list of every feature that the app will have.
- We work with you to create some simple wireframes of what the app might look like.
- We ask our development team to estimate the number of hours required to build the requirements from steps 1 and 2.
- We apply a multiplier of between 1.2x and 2x, which accounts for the fact that the features in the actual build will differ somewhat as the product development evolves. The multiplier we use is based on our confidence in the accuracy and completeness of the release plan, and no release plan is “perfect”.
- We add up all the hours and make a staffing plan that could do the estimated workload.
- We give you a quote! In both time and dollars.
- Unlike other outsourcers, we honor our estimates… if we’re wrong and nothing you did impacted the delivery timeline, we’ll add resources at our cost to hit our committed deadline.
When asked how much custom software development costs, there is no single answer. Custom software development costs depend on a lot of things, such as the complexity of the project, the platforms used, the creative design, the integration of systems, the team, the location, etc. If you think you’re at a stage in which you’d like to discuss a potential project, let us know! Our team is ready to investigate your app concept and provide you with a reasonable price.