The Costs Associated with Custom Software Development

Hands of an office woman typing

Introduction

Software drives every aspect of our economy. From the largest programs running our utilities and infrastructure to the smallest specialist applications, it’s impossible to overstate the important role software plays in our day to day lives.

And the industry shows no sign of slowing down. COVID-19 has driven businesses around the world to quickly embrace a work-from-home culture and invest in all the software and technology that is required to make that happen. Many of these changes will be permeant and in fact 80% of businesses in North America and Europe anticipate year-over-year tech spending to stay the same or increase.

Custom software development services are a rapidly-growing subset of the software industry, experiencing a 33% compound annual growth rate in the past five years. More and more businesses are deciding that it’s worth the time and cost to develop tailored software solutions rather than choose standard, off-the-shelf (OTS) products.

Business person working with modern virtual technology

What is Custom Software Development?

Simply put, custom software development is the design and creation of desktop and mobile software applications built to a user’s exact needs and specifications. Whereas Off The Shelf (OTS) software packages are pre-built systems.  These systems often need users to adapt their processes to conform to the applications, customized software is instead tailored to the business’ unique needs.

Why Custom Software vs Off The Shelf?

Choosing to develop your own customized software applications usually boils down to improving your competitiveness. Depending on your business, you may find that OTS software either doesn’t serve your operational needs, or it’s impractical to adjust your business workflows to make it worthwhile.

But, it can be challenging for any business to know which route to take. The process ultimately starts with identifying your business needs, examining your existing processes, and determining where your productivity – and profitability – can be improved. Then, define what you need to successfully move forward. You can do this by looking at the pros and cons of custom software vs off the shelf.

Off-The-Shelf Software Pros and Cons

Pros

  • Lower upfront costs
  • Support and/or maintenance options usually available
  • Community support (forums, websites, etc)
  • Regular upgrades
  • Software-as-a-Service (SaaS) platforms may be available on a subscription basis

Cons

  • Requires users to adapt their processes and workflows to the software
  • May need to use workarounds resulting in reduced efficiency
  • May need to use workarounds resulting in reduced efficiency
  • Slow to change to market conditions
  • May have per user licensing costs making usage more expensive
  • Might not completely address your needs, requiring the use of more software packages
  • Integration with other systems may not be possible causing information islands
  • May contain features you don’t need but for which you end up paying
  • Can be overly complex for simpler needs

Custom Software Pros and Cons

Pros

  • Software tailored to your business processes and workflows
  • Fast changes to stay ahead of market changes
  • Start smaller and scale up as needed
  • Regular upgrades
  • Unlimited users without licensing issues

Cons

  • Higher capital development costs
  • Costs for changes and upgrades
  • May incur extra costs for maintenance and further development

So, both custom-built and OTS software have their advantages and disadvantages. If you do decide that a custom software solution is the right avenue for you, there are a variety of ways to proceed. Which one is right for your business? And more importantly, which factors will affect the cost?

Part I: Custom Software Development Cost Factors

jig_image_business_man_money_2

“Software quality begins with the quality of the requirements.”– Pearl Zhu, 12 CIO Personas: The Digital CIO’s Situational Leadership Practices

We all know that time is money. When embarking upon a custom software project, make sure you do your due diligence before hiring a developer. You’ll not only get the best application for your technology setup and business needs, more importantly, you’ll dramatically reduce costly errors and delivery delays.

There’s no “one size fits all” approach; with so many variables to consider – the project scope, developer size, location, development methodology, etc – it’s critically important that you have a good understanding of your needs as well as how they can be best served before selecting a developer to work with. Ultimately, it’s these factors that will determine how much your custom software will cost you in the end:

1. Project Scope/Complexity

Your development project’s scope will have an enormous impact on the cost.

How complex do you need your software to be? Obviously, the greater the complexity and customization, the higher the development cost. But how complex does it really need to be? Are you certain you’re requesting the features you need – and only the features you need?

According to a recent study, U.S. organizations waste $30 billion annually on unused software – or roughly $259 per computer. The fact that so much money is lost on unused software features underscores the unfortunate reality that businesses will often buy software to meet a perceived need without doing the proper up front business analysis. . So while it might seem “nice to have” extended automation capabilities, for example, in reality, these might not fit in with existing processes.

Approach the development process with a clear understanding of your business priorities and your software’s required functionality. The goal is to commision an application that does what it should without features that will go to waste.

Finally, decide whether your software project is cost-driven or feature-driven. If you need greater complexity due to a large number of features, understand the cost will be higher. Conversely, if your needs skew more towards being cost-driven, then you may have to narrow your focus on strict functionality and little else.

city_icons

2. Developer Capacity

There’s a wide variety of custom software development options out there, from individual contractors to large operations capable of developing enterprise-grade software. The one you choose will not only be able to handle your project but will offer a good cost vs project completion time balance.

Consider the typical range of developers:

Individual Developer

jig_images_code_security

Lowest cost
Lowest output capability
Lowest complexity level
Lowest diversity of expertise
Typical cost: hourly cost starting at $50/hr

‘Small Class’ Development Firm

jig_images_code_keys

Lowest cost
Lowest output capability
Usually 5 or fewer employees
Ideal for less complex, less featured, budget-driven applications
Typical cost: hourly cost ranging from $75 to $200/hr

‘Moderate Class’ Development Firm

jig_images_piggybank

Greater output capabilities
Great customization capabilities
Usually 10 to 20 employees

‘Large Class’ Development Firms

jig_images_piggybank

Capable of developing enterprise-grade software
Greatest degree of flexibility and complexity
Usually 20+ employees
Typical cost: fixed rate projects of $500k+

3. Developer Location

Best Internet Concept of global business from concepts series. Elements of this image furnished by NASA

In addition to their size, a custom software developer’s location will also impact the final cost. North American firms have higher overhead costs than overseas contractors – and, accordingly, charge higher rates. But while offshore developers may very well offer a significantly lower quote than domestic firms, keep the following in mind

  • Overseas developers will often work in different timezones
  • Remote contractors usually need much stronger project management controls and required more time investment to manage
  • North American developers will better understand the business and culture, and will likely find it easier to grasp business objectives
  • Remote developers generally have reduced capabilities for support and documentation
  • Offshore contractors will tend to provide software based on generic templates
  • Overseas developers generally don’t have access to the deep talent pools from which North American companies can draw

It’s not just a case of overseas vs domestic, either; within North America, location still affects the cost. Development firms in smaller urban centres will typically face smaller overhead costs than those situated in major cities. But again, this will also impact the talent availability.

It’s important to take these facts into consideration if you’re considering working with an offshore developer. While the quote may be extremely competitive, you’ll have to weight this reduced cost with the inherent challenges of working with remote teams across cultural and timezone barriers.

4. Code Source and Quality

“…I’m not saying simple code takes less time to write. You’d think it would since you end up with less total code, but a good solution isn’t an accretion of code, it’s a distillation of it.” – Robert Nystrom, Electronic Arts

Developers typically have three approaches to creating software: write the code from scratch, base it on existing open source code, or a hybrid of the two. It’s an oversimplification, of course; there’s no reason to reinvent the wheel, and even on highly-customized projects, developers routinely rely on code repositories for snippets to incorporate into their programming. But ultimately this will be a point of discussion, and your needs will be the driver here. It should come as no surprise that a complete custom build from the ground up will drive up costs – yet this may be the most appropriate solution. Again, it depends on what you need your software to achieve and the degree to which it has to be custom built.

Another main point to consider is that a good development team will write their software with structured and well-organized code that is both manageable and easily maintainable. It should be as simple as it needs to be to get the job done and created in a way that will create fewer problems down the road.

The custom software development process doesn’t end with the code build. Bugs can pop up well after the software is in use, and incompatibilities can and do creep in. To minimize these problems, a good custom developer will not only have robust quality assurance processes in place; they should stand behind their product with a code guarantee in the form of a software warranty period of at least 180 days. This will give you time for all users to thoroughly put the software through its paces, and call for the developer to make any fixes at their own expense.

jig_images_wall_code

5. Methodology

jig_images_woman_coding

While it may not be clear on the surface, the development methodology your software builder uses can also affect the cost. The process they follow, whether it’s Agile, Waterfall, Kanban, or others, can impact the development time and project efficiency.

In summary, the developer you choose should be a good fit for your needs. Make sure you choose a software company that:

  • Has the resources needed to complete your project
  • Understands the project scope and can work within it
  • Builds quality code and offers guarantees
  • Has delivered demonstrable value to previous clients

Part II: How to Manage Custom Software Development Costs

“Software Development is an ideal gas: it occupies all the volume it can.”– Pat Boens

Once you’ve weighed the factors, decided to proceed with a custom software build, and have selected a development firm to work with, there are other ways you can manage your costs. By structuring your contract with favourable terms and employing good project management skills, you can make sure your project stays in line with your budget.

jig_image_costs_benefits

1. Contract Terms

Innovative contract terms can help reduce the total cost. Depending on your needs and the developer’s flexibility, you can explore various options to reduce the upfront cost structure. These can include offering backend incentives or compensation, as well as profit sharing points.

Fixed vs Time and Materials Pricing

Most custom software development contracts are based on either a fixed or a time and materials pricing model. For simplicity, fixed price models are usually more appropriate for small to medium-sized projects, while time and materials tend to apply to larger projects. They both have advantages and disadvantages and will have an effect on the end cost.

Which pricing model should you target?

Fixed Price Model

Establishes an all-inclusive price, ideal for projects with clearly-defined requirements, specifications, and delivery targets.

PROS

  • Allows you to establish a fixed project budget
  • Pre-determined delivery timelines
  • No unexpected costs

CONS

  • Almost no room for flexibility
  • Once development begins, any deviations will incur extra costs and time
  • Quality can suffer due to fixed delivery dates
  • Is a high risk approached if bid is fixed before a full and detailed requirements are in place

Time and Materials Model

In this model, the developer charges an ongoing rate for time spent and for the materials used. This is ideal for larger and more complex projects where the parties don’t have a clearly-defined direction at the outset and need the flexibility to let the development process evolve.

PROS

  • High degree of flexibility
  • Easy to incorporate additional features
  • Typically a higher quality result

CONS

  • Costs can be higher than forecast
  • Delivery timelines are fluid and might be longer than anticipated

Hybrid Approach

The third option is using the combination of the method listed above. Using the hybrid model, you can use time and material for requirements, fix them bid the project once requirements are in place

2. Streamlined Decision Making

jig_image_business_decisions

As a client, it’s important that you have the ability to make quick and efficient decisions affecting the project. You’ll need to understand your role in the process, be available to handle contact with the developer, and put in place a streamlined decision-making process will speed up development workflows and not hinder progress.

3. Effective Project Management

During the development process, you’ll want to ensure that you follow project management best practices. Specifically, being able to measure and track milestones is essential to project delivery success. Otherwise, waiting until the end of the project to check on the status is a surefire path to failure.

Opting for staged delivery in tandem with project milestones can help you manage the process more effectively, and give you the best chance for a successful project completion.

A person pressing a button of light in a transparent web of brightly lit blue icons

Conclusion

jig_images_bubbles

Choosing to develop your own custom software rather than purchasing off-the-shelf products is a big decision. While the cost might be (but not always!) higher, a tailored solution can help your business become more competitive in the long run.

However, be sure to approach the process intelligently. If you decide that a customized software build is the right way to go, make sure that you:

In summary, the developer you choose should be a good fit for your needs. Make sure you choose a software company that:

  • Understand how the business will benefit and exactly the features you need
  • Choose a developer with the resources to complete your project, provides quality work, and understands the project scope
  • Negotiate a contract model that works for you
  • Are available to work with them to facilitate, rather than impede, progress