- When developing software, asking for a fixed price quote can sometimes be a recipe for disaster.
- People often forget costs for hosting your system, add-ons, staff training, training materials, software support and maintenance.
- Great software developers will take you through the right processes, focusing on your ROI and advising you on the best decisions for your budget.
- In this article, we guide you through the true cost of software development for your business.
Every business these days must be able to take advantage of and use technology efficiently and productively within their business. Most times, off-the-shelf software can fit a small business’s needs.
However, for those that struggle to find the right fit, you have an important decision to make: Do you change your processes to fit with the software or do you develop software to help and improve your current processes?
When you’re starting out, it’s much more cost-effective to use off-the-shelf and tweak your processes to fit around what the software can do. The few hours spent training a few staff can be offset by the automation software can provide. But when you’re a large organisation, it might cost you as much to train your workforce as it would to develop and improve the software to follow existing processes.
Therefore, when you’re engaging a software development or consulting firm and querying them about the development of your system for the first time, one of your first questions after explaining to them what your system does will be, “What will that cost me?”
In our line of work, we get approached by people with a budget of $20K and would like to develop a $300K system. They don’t understand what’s involved in developing software and it can be difficult to provide a cost for software development outside of an hourly rate for a developer, and even that only covers a portion of development as 1 hour of development will also need to factor in software testing and quality assurance.
Software Development Isn't a Straightforward Process
Most people don’t understand that software development is not a straightforward process. There are a million and one different ways things can be done and integrated to deliver your solution. There are so many unknowns when starting a project that it’s impossible to provide a fixed price quote upfront and be anywhere near the correct final figure.
In the past, we thought we had to provide a fixed priced quote because people were expecting it. However, without spending enough time, we were providing estimates and treating them as fixed price. This process never works, and the project is often delivered over the allocated time and over budget.
Your system needs to go through a consulting phase and multiple workshops will be required in order to:
- understand exactly what you’re after
- understand every step of the process you’re trying to automate
- investigate what platforms or tools should be used
- investigate if integrations with existing systems can be made
- investigate if the process can be changed to make it more efficient now that it is being digitalised
- explore any known risks to avoid problems during development
The consultations and workshops may lead to multiple prototypes that prove or disprove an idea or process, which will save you a huge headache in the long run. Why would you want to move forward with something if you already know it cannot be done?
This process should be followed in order to bring clarity to the project and provide everyone with enough detail to complete the initial development, as well as a clear path moving forward to allow for future development.
At this point, the software developer company or team you’ve hired probably still can’t provide a fixed price quote, as what they have is a plan and overview of everything the system is meant to do and how the main pieces will interact. But this plan is equivalent to an architect's floor plan of your house.
All the features and the general design is laid out, and you know what you’re going to get, but the plan still needs to be submitted to an engineer to work out how the structure will hold together and what materials need to be used. It’s the same in software development: at this point, the developers have a plan for what should be done, but not how.
There are two ways forward: to get a rough estimate and stick to your budget or allow your developers the time to engineer and design exactly what will be developed and how. Once this is done then they can provide a fixed price on small deliverables. Following this process, they will be able to keep the momentum moving in the project and deliver software with a cost that you’ve planned for.
Software Development Costs That People Don't Account For
Now, once you release your software, other development costs appear that most people don't consider: hosting, training, support and maintenance. Your users need to be trained in how to use the software, what new features are being released and what it can do for them.
Every time your system has a new release with new features, you will need to train your users about how to use them, otherwise it may go unused.
You don’t have to go around and train each user in person. Take advantage of technology and host webinars, create training videos and write how-to guides, and send newsletters to your user base with the information. These are all simple ways to get training material to your staff and are easily done.
Hosting is something that will never go away and most likely will increase over time as you get more users or add more complex processing or logic to your system. Now, this cost can be fixed, or if you’re using cloud-based serverless, functionality will fluctuate with usage. Now you may think that’s a terrible option, but it means you can limit the max spend and you end up only paying for what you need. Why pay for hosting at night when your system isn’t used then?
2. Software maintenance
Software maintenance is normally forgotten about until the next software development phase where it rears its head up and causes issues. Instead, factor in regular maintenance to keep things up to date. All those packages and libraries that your project is relying on get updated outside of your schedule and you should take advantage of their security fixes, bug fixes and new functionalities. It’s better to keep these up to date on a regular schedule than having to update 100 things when forced to by a new platform requirement.
3. Software support
Software support is another key component and your system will need it. Whether it’s developer support to fix bugs or internal support to help your users use the platform, it will always be needed. Your system should have a warranty from the software or app developers and bugs should be fixed for a time but there are always the out-of-scope or out-of-warranty issues that need to be worked out. The developers should offer technical support for anything your internal team can’t handle, or you could potentially arrange with them to handle all support.
Now you might say that you have budgets to stick to and can’t afford all these things. I would say that’s good and you should have a budget and stick to it! But these are the real costs associated with developing your own software. You might think that if you must factor all of these in, you won't be able to develop the system you want. However, the ideal system in your head is only possible with an unlimited budget.
While you may hate to disclose budgets to software development companies, as they may just quote near the budget regardless, you really should share it with to your development team as they can then advise on what is the best path forward and what can be delivered for the budget you do have.
If you don’t disclose your budget, you will be wasting their time as they may plan and design a system you can’t afford. It’s best to go through the above process with a disclosed budget so that you can then plan which components of the system are absolutely mandatory and will deliver a good return on investment (ROI).
These components might be only 20% of the system, but this 20% will let do what you need to and provide you with an immediate impact and ROI. Once you start seeing the ROI and the changes the system has brought to your organisation, you can then continue developing the platform and expanding to add new features, modules and components.
Why a Fixed Price Cost Isn't Possible for Your System
Therefore, it’s crucial to understand that your system won’t have a single fixed price cost, it will need constant development because:
- You will have new ideas or new systems to integrate with
- Your users will have new ideas
- You will be forced to make updates from time to time based on the technology used
- New technology will become available and you will want to take advantage of it
If you’re still worried about software development cost and are chasing that upfront fixed price quote, then you’re probably better off going with an off-the-shelf system, as you will know exactly what you will be getting.
If you want your own system developed, you really shouldn’t ask, just after disclosing your ideas and needs, “Can you give me a quote?”.
Software development is a complex winding road and should be treated as an iterative process. Your system won’t be completed once delivered and done forever. You should develop in small components of features and have continual releases. Following this process, then only can you start seeing some of that immediate ROI, so you can stick to your quarterly or yearly budgets and only deliver what will be of value to maximise every dollar spent.
Do you need help with
hardware and software?
There are 386 IT support companies on standby