Mad Devs Customer University is a series of publications about pricing strategies aimed to help customers choose the right contractor and maximize benefits from working with them. We will address every aspect of customer-contractor interactions to show how to achieve a truly profitable partnership.
Quick summary: Custom software development refers to the process of developing applications that meet the specific needs of a specific user group or individual within an organization. This type of software is usually created by a third-party developer and is not bundled for reselling. Custom software development is a preferred approach because it provides the exact features and capabilities that the organizations need.
The cost of developing custom software varies depending on the complexity of the project and the functionality of the app. But it is not so easy to estimate the actual cost. Even if the project is simple, the cost can still vary depending on the complexity of the work. You have to know the type of solution, target audience, and platform to reach it, choose the right set of features, and so on. In order to get a good idea of the exact cost, we will help you define all of these factors and demonstrate prices around the world.
Factors that shape software pricing
Several factors affect the cost of software development, regardless of the size of the company or the location of the developers:
1. Complexity of software
The complexity of the project is the first thing that will affect the bulk of your budget. It shows the number of unique features that are needed to make a successful app: number of screens, workflows, automation requirements, process intertwining, dependent/independent paths, and more. If your app has a lot of complex logic, it will take a bit more time to code and test. If it does, your app probably has some complexity that warrants special attention.
2. Size of custom software
The size of your app is also another factor that will affect the cost of developing it. It depends on the number of screens and pages that the app will include.
- Small size – ranges from 10 to 15
- Medium size – ranges from 25-40
- Large size – more than 40
3. Platform
The next factor that affects the cost of developing a custom software product is the platform that you intend to build it for. There are various types of platforms that can be used to develop apps for, such as Android or iOS. Depending on the platform you choose, the cost of developing custom software may vary. For example, Android is becoming more popular due to its growing popularity in the device markets.
When you choose a massive platform like Android, it can require more development efforts to achieve the ideal performance. A startup may choose to develop their own app for Android, then deploy it on other platforms once they have a successful app.
Developing apps for different platforms will require separate development teams. Doing so will cost you more than just a single team.
4. Creative design
Having vibrant and creative designs on the app is a great idea, but it can also spike the cost of developing custom software. This includes the development of complex and fancy UI elements that can make your app look stunning and attractive. If the complexity and time-consuming nature of the app justify the expense, then developers will ask for more money.
5. Integration with other systems
Most software products require some form of system integration to work seamlessly. For most of them, this usually involves integrating with third-party apps or implementing predefined integrations with existing enterprise apps.
Although it may seem cheaper to integrate with third-party apps, some software products may also require the development of new APIs to integrate them seamlessly.
Integrating your custom software with third-party solutions can be challenging though, as each app has its own unique characteristics. If your app requires a wide range of integrations, such as database migration or an API, then you may be required to pay more.
Generally, the higher the complexity, the more it costs.
6. Migration of existing data
Having a backup of the data can help prevent the loss of vital information. If your existing system already has data that you want to migrate to your new software, then migrating will be the best option.
Succinctly, migration is a process that transfers data from an existing system to a new one. It involves creating a script that will transform the data into its new format. The effort involved in preparing the translation rules and writing the scripts can add a bit more time to the project. Most of the time, this process is run once the software has been finished, to ensure that everything is working seamlessly. And after that, it is carried out several times to ensure that the data is translated correctly. The effort involved in this process can add a bit more time to the project.
7. Team required – size, seniority, hiring models
Size: Once the project has been defined, the next step is to determine the team size. If you need a larger-scale enterprise app with multiple new features and a variety of customization options, then a larger team may be necessary. Most of the time, a small team will be ideal for a project with multiple roles.
But for every project, at least four roles are required. This means that a developer, a project manager, a business analyst, and a QA tester need to be on board for the project.
Useful tip - For a small or medium-scale project, the Developer may also serve as the tester. The Project Manager may also oversee the Business Analyst and other tasks.
Seniority: The level of expertise of the team is also highly valued. The hourly rate of a top-level developer can be dramatically different from the rate of an entry-level one:
Hiring models: When it comes to choosing a developer, you're often presented with multiple hiring options and a variety of hourly or fixed-rate options:
A fixed-rate contract is typically the most common type of deal. It gives the developers a definite sum that's agreed upon, and there's no room for change.
The hourly-rate model is more flexible when it comes to accommodating the changing requirements of the app. It provides you with the flexibility to accommodate the changes in the market.
The dedicated team is an attractive collaboration model for startups. It involves an established company hiring a developer and paying them during their service.
Here is a table for a brief comparison of hiring models:
8. Time frame for delivery
The timing of the development of a custom software project is also one of the factors that influence the cost of the software. The longer the development process takes, the more budget you spend.
It is difficult to determine the exact time frame for the development of a custom software project. Each step of the way, the complexity of the work can affect the time frame.
Software development cost
Is custom written software cheap? Custom software development is often considered expensive compared to off-the-shelf solutions or products. It is because of typical challenges and typical solutions that are needed for custom software development.
How much does it cost to develop custom software? Custom software development can range anywhere from $40,000 to $250,000 or more, depending on a variety of factors. It is difficult to predict the upper limit for software development costs. However, it can also reach millions for complex projects, which often require multiple developers and multiple iterations.
How much does custom software development cost per hour?
The hourly pricing model of software varies depending on the complexity of the project and the location of the technology partner.
How do you calculate development costs?
Request an estimate from several companies and you should have a list that contains the following items. This way you will get transparency in the estimation of the price:
- Compile a list of tasks and the resources required to complete them - break the project down into smaller, individual tasks, so when you assign them to team members with hourly rates, it'll be easier to calculate how much each of them will cost.
- Identify and allocate resources to tasks based on your team’s capacity
- Estimate the task length to create a project schedule (with some buffer)
- Calculate the project cost based on a chosen estimation method. For example, Ballpark figure, Parameter Estimation
- Use project cost estimating tools to track budgets in real-time
Is software development expensed or capitalized?
Due to the continuous growth of software companies, it's important to keep track of the various costs associated with the development of software. These costs are typically capitalized on a company's balance sheet.
In general, software development can be capitalized in two ways.
For internal use:
Examples of software that are not sold to the public include customer management systems and internal accounting systems.
For sell or public use:
This software is to be sold, leased, or marketed to external users.
Now when you have a clear vision of custom software development costs - here, we give an overview of what to look at in the proposals provided by different vendors.
Finding the right implementer for your tasks may take a long time and can be frustrating, especially if you have deadlines creeping towards you. This is why it is important to make the searching and hiring processes as efficient as possible.
Before you even receive a proposal from a potential contractor, you normally spend time:
- Finding companies or individuals who may be interested in and capable of doing the job you need,
- Corresponding and negotiating with them, and
- Researching their backgrounds and previous work through portfolios and client reviews.
At this stage, it may be wise to shortlist the contractors from whom you even want to receive a proposal, and here’s what to take into account:
- Communication patterns: the way potential contractors communicate with you during the pre-proposal period is a quite accurate, if not prettified, reflection of how they work generally. If they’ve already missed a couple of deadlines or made promises but never delivered, you may not want to bother waiting for a proposal from them.
- Portfolio: if you checked their materials or examples of their work and didn’t like those, perhaps the contractor is just not right for you.
- Compatibility: take a look at who the company or the person worked for before to see whether your business is similar to those. Naturally, if you are an aspiring startup, and the guys you want to hire have been working for large companies lately, there is simply no match.
The quoted price gap
Picture it: I’m a customer; I’ve received a few proposals from teams who I think can do the job right, but the proposals are totally different. The teams are going to approach my project in completely dissimilar ways. The gap between the lowest and the highest quoted price is vast. I’m frustrated and don’t even know where to start to evaluate the proposals.
First things first: let’s consider the price extremes. If the quote is unexpectedly low or unexpectedly high, it will normally mean that the contractors didn’t put too much effort into the process of estimation. Anyway, here are possible reasons:
Unexpectedly low price
- The contractor is planning to launch your product in its minimally viable form as soon as possible but does not presume you will need further support, maintenance, or improvements. (Signs of this are the lack of descriptive documentation, lack of automated tests, and poor architecture.)
- The contractor is ready to sacrifice certain parts of the development process that are not essential but necessary if you want perfect results: an example is extensive testing on several stages.
- The contractor has analyzed the scope of work negligently and gives you an unrealistic quote; the quoted price can later go up.
- Rare: the contractor is a fraud; they want to get at least some money from you and are not planning to deliver any product at all. (A sign of it is the lack of documentation explaining what exactly will be done and how.)
Unexpectedly high price
- The contractor is a big company; they’re not too much interested in small-scale clients, and their estimation for one can be somewhat frivolous.
- The contractor is overcautious and plans to involve many specialists in the development process to safeguard the high quality of the final product. What the contractor is afraid of here is a lack of certainty in your technical requirements.
- Rare: the contractor wants to rip you off. (A sign of it is the lack of documentation explaining what exactly will be done and how.)
The way a potential contractor will approach your project will depend on not only your specifications but also the contractor’s expertise, corporate structure, availability of specialists, and many other factors. Now let’s take a look at what in a proposal can help you understand whether you want to work with this contractor or not.
Pricing model
Some guarantee they’ll do the job for a fixed compensation, and some suggest starting off on an hourly basis. What to choose depends on how well your tasks are specified. If a fixed price is proposed, make sure the contractor has a convincing description of how they’ll handle the tasks: they must be sure they know what they’re doing if they’re going fixed.
Fixed price: includes the cost of potential risks (it can be 20% or 300%, you never know), and detailed requirements are a must, but there is no flexibility or scope management, and there is, sadly, no guarantee you will get the result you’re picturing in your head now.
Time & Material: there is no guarantee you will get the project implemented within the budget, but there is more flexibility in the development, and approaches can be agile. This option is also usually preferable in long-term projects because it implies a more or less stable monthly budget and allows adjusting requirements without having to receive approvals on each small task from the contractor’s entire management.
Scope of work
Do the contractors describe in detail what they’re planning to do? A good estimate will surely show that the contractor has figured out what the customer means and what he or she needs. Consider the following:
What are the components of the estimation? Are they general or detailed?
General components: e.g., the estimation features three sections—backend, frontend, and design—and says that the development of each will take, say, three weeks. Such general estimates provide to the customer little to no understanding of how exactly the components will be developed, and this may prevent you from making an informed decision.
Detailed components: the estimation elaborates on what technologies will be used to implement specific functions, includes the work of project managers, QA specialists, and other professionals, and predicts possible complications and risks. A meticulous approach most likely reveals the professionalism and knowledgeability of the team.
What questions had the team asked before preparing the estimate? Were they relevant and insightful? Did they pay attention, ask follow-up questions, and apparently try to gain insight? If you have three yeses, you’re on the right track.
Are the questions the contractor asks you strictly technical? Some choose to stay safely within your specifications, while more experienced contractors will critically assess your ideas and suggest doing things in a way that, say, will be more competitive on the current market. So their questions will include those about your target audiences and business goals.
Team composition
Seniority level: it’s important to whom the contractor is planning to entrust your project. To tackle some tasks, you need senior specialists, while other tasks can easily be handled by juniors. You should not worry about having low-level professionals on your team, but you should make sure the contractor explains in which parts of the planned work they think juniors will do just fine and why.
Selection and communication: you need to know that the seniority level of the team members can be verified. Can you interview them before accepting their terms? Can you communicate with the team directly? If not, you may want to look for mediators who can help you make sure that the level of your contractors is as declared.
Tech stack
Obviously, the same tasks can be completed through the use of different technologies, and the tech choices are major contributors to the final estimate. The key considerations here are:
Development vs. integration: how much custom software do your contractors propose to develop? If ready-made modules or libraries will be used, do the contractors justify this decision?
Backend: what languages and frameworks are proposed? The choices between, say, Python and JS or between Swift and Objective-C will depend not only on what the contractors are capable of handling but also on what they think, based on their expertise and research, is viable and popular in the industry now.
(In mobile development) Native vs. Hybrid: do your contractors propose to develop applications separately for different platforms or to use cross-platform technologies? Depending on project objectives, there are advantages to each of the options.
Specialists: the costs of work vary from technology to technology, and some contractors may simply not have the right specialists available for your project at the moment. Make sure, though, that the allocation of tasks is done according to your purposes and in your best interest as opposed to the contractor’s convenience only.
Use of ready-made components
As mentioned above, some may offer to develop things from scratch, and others may suggest integrating third-party services.
Development from scratch: maybe more reliable but is expensive.
Integration: may be faster, but the final product will depend on a lot of external things. Also, this approach may not actually be so cost-efficient because existing solutions can be rather pricey.
Example: admin panels. You can buy ready-made admin panels from many online services, and they can work just fine for you. However, experts suggest that each such solution has its limitations, and if you hit those in the implementation of the project or later, you’re in trouble. An admin panel developed from scratch provides more flexibility, but it is costly and time-consuming. There’s no universal answer: the decision needs to be made between the customer and the contractor in each individual case.
Organizational and development processes
Pay attention to the complements to the estimate, if any. A contractor who knows what they’re doing will attach documentation describing the organizational and development processes, product architecture if needed, and the tests that will be administered so that the risk of failures is reduced. The things we recommend to look for in the proposal are:
Transparency: the contractor is totally open about what will be done and how; the processes are not described vaguely or obscurely.
Knowledge Management: the contractor explains how the knowledge and experience of different team members will contribute to the implementation of the project.
Communication: the contractor expresses themselves clearly, and the documentation is overall readable and appealing.
Conclusion
The rise of customer-centric tech has forced businesses to develop custom solutions to address their specific needs. Despite the high cost of custom development, many businesses still believe that having a tool that fits their needs makes them stand out. The cost of software development is hard to grasp due to the complexity of the projects involved. But, without a good estimate, you are prone to overcharging.
The considerations in evaluating a proposal are evidently diverse, but that’s just the tip of the iceberg. What has been attempted here is to show that proposal evaluation is a complicated process; the potential contractor and the materials they provide need to be assessed in various contexts, including your business’s size and specific characteristics + your willingness to take the risk. In virtually any real-life scenarios, things will pop up that haven’t been mentioned here.
The article was updated on 21.03.2022.