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.
What is Custom Software Development?
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.
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
Lowest cost
Lowest output capability
Lowest complexity level
Lowest diversity of expertise
Typical cost: hourly cost starting at $50/hr
‘Small Class’ Development Firm
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
Greater output capabilities
Great customization capabilities
Usually 10 to 20 employees
‘Large Class’ Development Firms
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
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.
5. Methodology
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
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
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.
Conclusion
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