How long does it take to build custom software?
It depends (yes, we hate that answer as much as you do)
Custom software, also known as bespoke software, is software that has been designed and developed from scratch around the specific needs of your business and your business alone. The software is built to fit the way you work in reality and is not constrained by a third party vendor's idea of how they think you should operate.
The software can be anything from a straightforward, internal web application for booking leave to large and complex business management systems used to manage production processes. The functionality, workflows, integrations and user experience are all determined by what your business needs.
There are several key differences between bespoke and off-the-shelf software, all of which have an impact on development timescales. Both have their place in businesses of all shapes and sizes, but depending on what you want to achieve, one is probably always going to be preferable over the other.
Bespoke software is designed around your business and how you work. This involves multiple phases including discovery, requirements mapping, planning, development, delivery and testing - all of which take time if they are to be done properly. Off-the-shelf software is designed to meet the more 'standard' needs of a wider range of businesses and already 'exists' at the point you start looking for a solution.
Bespoke software does not have limitations; it can be built to include the specific features, workflows and functionality you require. And the more you need, the longer it will take. With off-the-shelf software, you're limited to what your provider offers, but this is all ready for you to use from day one.
With off-the-shelf software, you may need to change the way you work to fit with the software. It has not been designed to fit your business specifically, rather, it's been built to fit many businesses so the processes will probably be as generic as they possibly can be. Bespoke software can be built around your existing processes or designed to improve them and you guessed it - this takes time!
Custom software can be built to integrate with your existing systems and that goes for whether they are bespoke or off-the-shelf. Ready built software usually offers some integration options, but whether they are useful integrations for your business is another matter.
Off-the-shelf software usually has a lot of features, it needs to appeal to as many businesses as possible, after all. Chances are, you're not going to find them all useful. With custom software, you decide what features are included so every single one of them will have some benefit to your business although the more you have, the longer they take to build.
First things first, providing definitive and wholly accurate timescales for bespoke software development projects is extremely difficult. There are simply too many variables involved and the development itself is only one part of the process.
As a very rough guide, the table below gives an indication of how long different types of bespoke software might take to develop. These aren't promises or fixed timescales - the actual duration will depend heavily on the complexity of the requirements, integrations, data, testing, feedback and all the other variables involved in a real world development project, which we'll explore in further detail later.
| Type of software | Basic | Mid level | Enterprise |
| CRM | 1-3 months | 3-9 months | 9-18+ months |
| WFM system | 2-4 months | 4-9 months | 9-18+ months |
| Mobile app | 2-4 months | 4-7 months | 7-12+ months |
| Web app | 1-3 months | 3-8 months | 8-15+ months |
| Database | 2-6 weeks | 2-4 months | 4-8+ months |
| Website | 1-2 months | 2-4 months | 4-6+ months |
Basic applications are usually smaller projects designed to solve a specific problem without a huge amount of complexity. They might provide straightforward user accounts, standard forms and data management, basic reporting or a small number of defined workflows.
They are most common in SMEs and startups.
Examples
Mid level projects sit somewhere in between a straightforward application and a large, enterprise scale system. They tend to involve multiple interconnected features, more involved workflows and different types of users, with the software needing to manage relationships between multiple sets of data.
These projects may also involve a number of third party integrations, more advanced security and permissions, responsive designs for different devices and greater consideration of performance and future growth.
They are common in SMEs, startups and enterprise organisations.
Examples
Enterprise projects are large, highly complex systems designed to support important business operations across multiple teams, locations or departments. They often need to manage significant volumes of users and data whilst maintaining high levels of security, reliability and performance.
These projects can involve sophisticated architectures, multiple third party integrations, complex business processes, detailed permission structures, real time data, advanced reporting and stringent security or compliance requirements. They also tend to require more extensive planning, testing and ongoing development.
They are most commonly found in...you guessed it - enterprise organisations!
Examples
As we have already touched on above, providing a wholly accurate or definitive estimate as to how long a custom software development project will take to complete is incredibly difficult due to the number of variables involved. Even if the specification is nailed and each phase meticulously planned, inside and outside factors can (and often do) throw a spanner in the works. Let's take a look at some of the most impactful:
These are the things happening within the project itself that can influence how quickly development progresses:
Scope & complexity - The more features, workflows, user types, business rules and moving parts your software has, the longer it will generally take to build and test.
Clarity of requirements - Well defined requirements give developers something concrete to work towards. If your requirements are unclear, incomplete or keep changing, additional time will be needed to clarify, rethink and potentially rework the development plan.
Specification changes - Changes are sometimes unavoidable, but adding new features or significantly changing existing functionality during development can affect both the new workload and the original timeline.
Integration requirements - Integrating your software with other systems can add significant development and testing time, particularly where multiple APIs, legacy systems or third party services are involved.
Data migration - Moving existing data into a new system isn't always as simple as pressing an import button. Data may need cleaning, restructuring, validating and transforming before it can be safely migrated.
Testing & QA - More complex software requires more extensive testing. This includes testing individual features, integrations, security, performance and the application as a whole across different devices and scenarios.
Feedback & approvals - Development relies on you, as the client, reviewing work and making decisions. Delays in providing feedback, approving designs or answering questions can push timescales out.
Availability of key people - Developers need access to people who understand your business and existing systems. If the right person isn't available when an important decision or clarification is needed, development can end up waiting.
Not everything that affects a bespoke project's timeline sits within the development team or client's control. External dependencies can offer up unwelcome delays even when everything on the project itself is progressing exactly as planned:
Third party systems & suppliers - If your software depends on external platforms, APIs or services, this could pose some problems. If a supplier changes an API, experiences an outage or takes longer than expected to provide access or information, the development timeline can be affected.
API access and documentation - Integrating with a third party system can be difficult if access credentials, technical documentation or test environments aren't available when needed. Poor or incomplete documentation can also mean additional time is required to work out how the integration behaves.
Hosting & infrastructure - As part of the delivery process, you'll probably need to do one or more of the following: set up a server, cloud environment, domain, DNS, certificates and other infrastructure. This can introduce dependencies on hosting providers or your internal IT staff, particularly where security requirements are involved.
Hardware - If your software needs to communicate with physical equipment such as scanners, sensors, machinery or payment terminals, then some of the development is going to be dependent on hardware being available and correctly configured for testing.
App store reviews - If you're getting a mobile app, you have a unique hurdle to overcome: getting through the app store(s) review and approval(s). This should be straightforward, but there are plenty of situations where it isn't and this is not necessarily because of your development team and the way they've built the app.
Regulatory requirements - Operating in a regulated industry? Then you may need to allow for additional reviews, security assessments, certifications or compliance checks before you can launch your software.
As we've hopefully articulated above, the length of time it takes to build bespoke software depends on many variables, including the type of software, complexity, integration requirements and many more things you and your development team may or may not be able to control. The guide we have provided can give you some rough estimates which might be useful, particularly if you're still in the exploratory phase. Ensuring you have a tight specification and a development team who are experienced in building the type of software you're looking to procure can also go some way to helping you gauge accurate timescales. Ultimately though, whatever you're told with regards to expected timescales, we'd always suggest you add a couple of weeks' contingency, especially if the software not being delivered on time is going to cause problems.