Custom Software Cost Estimation

The Ultimate Guide to Custom Software Cost Estimation


Erik Olson

Erik the Founder & CEO at Array Digital. Companies come to us when their software or manual processes hold them back from growing. We automate solutions to complex problems so our clients can compete at a higher level.


Erik Olson on LinkedinErik Olson on Twitter
Share on Facebook41Tweet about this on Twitter100Share on LinkedIn17Email this to someone




Pricing for custom software will vary widely across industries and is based on many factors. This guide will step you through the top 13 factors that will affect the cost to develop and operate your custom software.

Minimal Project Size

Most custom software companies will have a minimal threshold for the projects they develop. All projects, even the absolute smallest, come with overhead and startup costs. Projects also have opportunity cost, which is the amount that the company could earn from other projects instead of from your project. Every project carries certain risks and liabilities, such as the potential for a warranty claim to be filed in the future.

For these reasons, most custom software companies set a minimum project cost. Larger companies tend to work on broader projects for more established clients, so their minimum project fees start at a higher level than those of a smaller software developer.

Bottom Line – Typical Minimum Fees
Freelancer / side-gig: $500
1-person, full-time agency: $1,000
2-5 person agency: $1,000 – $2,500
5-10 person agency: $2,500 – $7,500
10 – 25 person agency: $7,500 – $25,000
25+ person agency: $25,000 – $250,000

Understanding of the Business Issues

Before you hire a company to start coding a solution, it’s critical that you fully understand the business issues that need to be addressed by your completed custom software. If you begin the project without a clear understanding of these needs then your software development costs will increase and the completion time will be extended because midstream changes can be disruptive to resource scheduling and availability.

Understanding of the Impacts

Additionally, if you do not fully understand the problem to be solved by the software you are commissioning, then the burden falls to your development team to research your business and come to a conclusion about needs to be built. This can quickly becomes an expensive proposition since the developers don’t know your business as well as you do. You may not end up with the right solution. Your guidance and involvement is critical to getting an efficient and effective custom software solution to your business problems.

You should be very clear not only on the issues that you are trying to resolve, but also the impact that not resolving those issues has on your business.

The Results You Need

If an issue is costing your company $75,000 per year in lost sales, does it make sense to spend $200,000 on a solution? Probably not, but there may be other justifications to proceed with a custom solution such as the need to upgrade technology to remain competitive or to fulfill a strategic goal for your business.

On the contrary, if an issue is costing your company $1 million per year, then would you spend $200,000 for custom software to fix it? That turns into a much easier question to answer. There’s a clear return on investment (ROI) in this scenario.

Before you send a team of developers off to fix a problem for which you will foot the bill, understand what the issues are, how much it’s costing you now, and how much it will cost to fix it.

Business Consultation

If you do not fully understand the issues, impact, or results you seek, and need assistance determining these things, then hire a software consultant to help you. A seasoned software consultant will ask the right questions to determine and quantify these factors.

A good consultant will always ask the most basic and question; “Why?” You need to be able to clarify why you want a custom software solution, and the consultant will help quantify the impact that this type of solution will have on your business. If the consultant you hire is not asking “why,” then they are probably not the right consultant for you.

Hiring a consultant will cost you $75 – $175 per hour depending on experience and expertise. The duration of the consultation could be short or extensive depending on the complexity of the project. Consultation for a marketing website may only take a couple of minutes and could be something you receive as a by-product of interviewing experienced agencies. For custom software and a mobile app, it typically takes a minimum of three to five days. For more complex or embedded software for an enterprise interacting with multiple organizations, APIs, or legacy software systems, it could be weeks or longer. In the latter circumstance, it’s a good idea to interview a couple of consultants before making the final selection on which company will create your custom application.

Bottom Line – Business Consultation Fees
Marketing website: $0
Custom applications: $1,000 to $5,000
Enterprise systems: $10,000 to open-ended

At first glance, you may question why you should spend money just to figure out how much more to spend later. For a small project, the consultation step may not be needed. But when the numbers start to get substantial – and substantial is relative to your organization – it’s imperative to have a clear understanding of your needs, even if that means spending money up front for a business consultation.

Think of it this way. Would you jump right into building a house without first buying plans or hiring an architect?

Of course not. You would not wing it and figure it out as you go. If you did, you would spend 2-3 times more than what you would if instead you had a plan first. When you have a plan your contractor knows exactly what the expectations are. It’s the same with software as with housing – you’re building something from scratch and need a plan. Plans are an investment.

A Clear Vision

Once you understand the business issues that need to be addressed and the impact those issues are having on your organization, then it’s time to come up with a set of requirements. If you’re not a software designer then you should certainly engage with a software consultant to help with this step. Refer to the above section regarding consultation pricing.

In some cases, you may produce a detailed Request for Proposal (RFP). In other cases, you’ll just get your head around what you envision the final product to do. But in most cases you’ll need something in between – a written document, somewhat formal, that lists the issues, impact, and vision for the solution.

But don’t try to get to the point where you specify exactly, down to the nitty gritty detail, what should be built. This can get cumbersome and may actually cause confusion as development proceeds. Instead, keep it high level. State your intent in a clear way.

For example, you might state that a solution should be a mobile responsive website. You don’t need to specify the actual technology the agency will use unless that’s important to you. Or, you could say that every part of the application requires the user to authenticate themselves with a strong password. But you don’t necessarily need to spell out how long a password must be in order for someone to authenticate themselves. List out the main actions you want your users to take, the types of users that will use the system, and what they will be able to accomplish.

Bottom Line – Business Requirement Fees
Marketing website: $0
Custom applications: $2,500 to $10,000
Enterprise systems: $15,000 to open-ended

Communication Costs – Team Size

Another cost that some companies often misunderstand are communication costs. These are considered “soft” costs because it’s hard to put a price tag on these types of overhead expenses. The Society of Human Resources Management determined companies over 10,000 employees lost an average of $62.4 million per year from communication costs.

Even if your company is not that large, the point is that the more people that are in the loop, the greater your communication overhead costs.

Think about it this way…if just two people work on a project then it’s super easy for them to coordinate in-person, by phone, or online. But if 100 people are involved, then that peer-to-peer communication does not work. The large group needs to broken down into small teams of 5-10 people, each with a leader. Team leads need to be on the same page, which means meetings are required. Conference calls, meetings, and general misunderstandings about the vision and objectives result in communication costs.

The Project Management Institute (PMI) teaches Professional Project Managers (PMPs) that the number of communications channels, where there is a sender and receiver of communication, is derived from the following formula:

n * (n-1) / 2

In this formula, “n” represents the number of people. So if there are 2 people involved in a communication, then there is 2 * (2-1) / 2 = 1 communication channel. This is fairly intuitive, since there is one sender and one receiver = one channel.

What about if there are three people? Then the answer is 3 * (3-1) / 2 = 3 channels. Consider the impact – we added one person to the team but the number of communication channels increased threefold.

What if we ramp up to 10 people? The formula yields 10 * (10-1) / 2 = 45 channels. Wow! Although the team is just 10 people, there are now 45 communications channels. That’s a big increase. All that extra communicating requires more time, energy, and in the end, money.

Ramp up to a 100 person team. 100 * (100-1) / 2 = 4,950 channels. As you can see, the number gets very big, very quickly, which also quickly drives up your cost.

Bottom Line
A smaller team reduced communication costs. In the end, you pay for communication costs, so keep the team small if you want to maximize your budget.

Communication Costs – Cultural Differences

Another soft communication cost has to do with cultural differences. If you grew up in the southeast part of the U.S., then you’d understand the term “that dog will hunt.” It means that something is good. But say that same phrase to an offshore developer in India or Russia and wait for their reaction. Think they’ll understand? They won’t. Worse, they may feign understanding or assume something completely wrong because it’s part of their culture to not question authority figures.

We use idioms and innuendos constantly in our communications. We also use non-verbal cues (e.g. not saying anything sometimes means you don’t agree) and body language. Discerning those non-verbal cues across cultural boundaries is difficult. If communication is difficult, then your costs go up. Even if offshore labor is less expensive, the communication costs may outweigh those potential savings.

Bottom Line
Beware of the allure of offshore communication “savings”.

Communication Costs – Time Zones

Differing time zones is yet another source of communication costs.

Working with people in the same office is easy because everyone pretty much arrives to work at the same time and leaves at the same time. But when you work with remote teams, which is becoming more typical these days, it’s not as convenient to communicate with people on the team.

As the number of time zones between you and the rest of the team changes, it becomes harder to communicate effectively. One or two time zone differences is not a big deal. When the number of time zones crossed reaches three then the amount of overlap between your day and their day shrinks to roughly half of a workday. With less overlap in workdays, there’s less opportunity to communicate unless you carve out after-hours time.

As the time zone difference starts to exceed three then it becomes much harder to communicate. If you have ever worked with a team in India, you know that their day is pretty much the exact opposite of ours. So if you want real-time communication, you must be available from about 11 pm to 3 am, depending on how much you need to communicate. Keep in mind that this is after you’ve already worked your normal 9-5 day and have taken care of any personal obligations. Imagine how physically and mentally exhausting that can become!

As an alternative you could email a question and wait for a response. The response will come back the next business day. This means that there will always be a full one day delay between question and answer. If the exact right answer doesn’t come back, or the question wasn’t understood, then you’ll have another one day delay to re-ask the question and wait for a new answer. Now you’re two days into a communication cycle, that if had been done with someone in the same time zone, could have been done within five minutes.

Even more of a challenge with time zones is when the team is spread out all over the globe. With this situation, communication becomes garbled over international date lines and various time zones. Typically, the team will resort to slow communications via email because trying to get everyone together at once is just too difficult and expensive. Slow communication means delays, which will usually translate to additional costs.

Bottom Line
As the time zone between team members increases, your communication costs increase.

Number of Features to Develop

The number of features you need in your solution will directly determine the cost of your custom software. Each feature should be estimated by a seasoned software developer or a software architect to determine the level of effort that it will take to implement the requirement. More factors than just coding time should be considered such as detailed requirements, testing, integration, documentation, and deployments.

Some features are straightforward, but many are not.. Below is a basic guide to feature complexity and associated development time:

  • Easy (Login page, text/images that don’t change, Contact Us form): 1 man-day
  • Moderate (Add, edit, or delete data. List and search. Generating emails): 2-4 man-days per feature
  • Difficult (Dashboard, maps, interfacing with 3rd party systems, sending text messages): 10+ man-days per feature

You are probably wondering about the cost associated with  a man-day. That depends on the rate charged by the agency and the skillset of the person that performs the individual work. Below is a guide for rates. For a junior person, you can take off 25% or so from these cost ranges. A senior person will be at the top end of the range.

Bottom Line
Math will be required! Using the list of features you created during requirements, and assessing the complexity and man-days of each, multiple by the below hourly rate. Rates will vary based on the size of the partner you hire.

Freelancer: $50 – $100 / hr
1-person, full-time agency: $75 – $125 / hr
2-5 person agency: $75 – $125 / hr
5-10 person agency: $85 – $150 / hr
10 – 25 person agency: $95 – $175 / hr
25+ person agency: $125 – $225 / hr

Refining for the General Public

When only you or your employees use custom software, you are usually willing to allow a few inconveniences for the sake of expediting the progress of software development. You should never be lackadaisical on quality, but you may tend to be forgiving and find workarounds so that you can focus on adding higher priority features first or save development costs.

When you make your software available to the general public, they are not quite as forgiving. After all, you can, if you really have to, tell your employees to deal with it. But the general public – not so much!

When you release software to the general public then you really need to think through exactly how people outside of your influence and control will use it. They will likely need support in the form of clear documentation. For an internal application, you can sacrifice documentation because one employee will teach the others how to use the system. But that’s not the case with the general public.

Also keep in mind that the public will need to learn how to use the application very quickly. If it takes too long to learn how to use it then they are likely to give up and find another solution. Most likely a solution from a competitor. So the user experience, especially when on-boarding new customers, is very important. You’ll have to add extra care and testing to ensure it’s easy and quick for new users to get started.

Will the public be paying to use your software? If so, you need to add the ability for users to register and enter payment information. You’ll also need a marketing website to describe the product, features, and benefits.

Bottom Line
How much extra does all this cost? Like anything in life, it depends. But it’s pretty safe to add a 20-30% buffer to account for all the extras (documentation, registration, payment infrastructure, user experience, and general polishing of the application) to make it friendly to the general public.

Continual Support, Updates, and Hosting

Once your software is created it will need to be supported. You do not want to make an investment and then let that investment depreciate over time.

The software itself will remain as it was the day it went live, but the rest of the world will change around it over time. Vulnerabilities in deep-seated software components purchased or inherited will be discovered, database engines will change, new languages will supersede the programming language your software was created in, and operating systems will no longer be supported years from now.

As a result of these kinds of predictable changes to the world in which your software lives, your software will need to adjust over time. If it doesn’t, then the changes made by the world around it will cause your software to fail. The more integration points you have, the more susceptible you are to the impact of these changes.

To manage change effectively you will want a software company on speed dial. They will help to ensure that your software is keeping up with the times. You do not want to wait until there is a problem and be forced to hire a brand new developer who knows nothing about your complex software during the middle of a crisis. The learning curve and associated costs are too steep and will only cause problems for you. If you maintain a continual support plan with the company who developed your software, then you will have a nearly immediate response when an issue arises.

You will also need to pay for hosting if your software is accessed through a website. A website needs to reside on a server that responds to a website address. Hosting is a necessary part of web-based software, and this expense must be paid regularly.

Bottom Line
Plan on budgeting 20% of the original development cost for annual support and hosting. As an example, if your software costs $50,000, then you should set aside $10,000 a year going forward for support and hosting.

Third Party Services

There may also be third-party services that you need to pay for. Examples include:

  • Sending text messages.
  • Sending lots of emails. You’ll want to use a service which increases the odds that your email lands in people’s inboxes.
  • Address verification and standardization.
  • Google maps integration.
  • Credit card charging and integration fees.
  • Any specialized third-party services.

These costs can vary widely. Google maps is about $10,000/year. Is it worth it? That depends on how much your software and workflow need it to be effective. But many of these third party services are necessary for your software application to fulfill its requirements.

Is That Your Final Answer?

As you can tell from this article, the cost of custom software development depends on several specific and direct items, such as the number and complexity of features, as well as “soft” costs such as communication costs.

Having a clear vision and well-defined requirements makes the development process easier for the software team you select since they can move in the right direction from the very beginning. This leads to less cost and more efficiencies for your business, resulting in a positive impact to your bottom line.

Related Articles


Grow Your Business With Amazing Software
Learn More


Join our 7 week custom software email course


Learn More About Custom Software
Learn More



Join our 7 week custom software email course
                   
© 2017 Array Digital, LLC