You want to add a new feature to your product. You think it will be around $3,000 to get it knocked out. You get a quote from a developer on Upwork – $12,000! “Ugh! Ok, I have $12,000,” you think. “I’m golden!”.
Don’t become a victim to not considering all the costs involved in bringing software to market. The costs are often much more than you expect as illustrated by this totally made up and exaggerated graph.
When considering the cost to build a product or implement a feature, many consider only the cost of acquisition – the cost of the developer to build it or the price of an off-the-shelf solution. Unfortunately, there’s much more to it than that.
The Total Cost of Ownership refers not only to the cost of acquisition of your solution but also the ongoing operational costs. Here are some of the additional costs to be considered. Plan for these costs or at least make a plan to address them or what impact they would have on your business if that problem were to occur.
Infrastructure. Whether you are building or buying a solution, there is a good chance you will need to consider how to host the solution. Hosting refers to the purchase of servers or server resources where your software runs to allow users to access it. Depending on the number of users and general demand, as well as the type of processing, infrastructure can be costly.
Integration. If you have purchased a solution that is a hosted solution (an existing product run by another company and you sign up for an account to use it), then you may avoid infrastructure costs but it will be replaced by integration costs.
Integration is the process of building a connection between an existing process or solution and the new solution you have purchased. This work typically would be done by writing code to access an API. The cost in this scenario is likely to be more personnel related due to software development. If the integration itself is substantial, you may need to consider the Total Cost of Ownership of the integration separately.
Testing. Implementing a solution is rarely as simple as “flipping a switch” and you’re up and running. You’re likely to need some level of testing and validation to ensure the new solution is performing as expected and behaving nicely with any existing solutions it integrates with or affects in a downstream part of the process.
Downtime. When your solution fails, or the product whose solution you subscribe to is unavailable, what is the cost or impact of working around it or being unable to do business as a result. Have a plan in place to address these possibilities or at least understand the impact to your organization.
Performance and Scalability. Related to the previous point, at some point due to the growing demand on your solution, you’re likely to hit a performance or scalability problem. The problems would be that you have a lot more users accessing the product, you are processing a lot more data than before, or you’ve hit the limits of the plan that you subscribe to for a hosted solution.
Addressing these issues could take you back to infrastructure cost or simply upgrading your plan. Have an understanding of how costs and resources might change with the growth and demand of your solution.
Security. Do you understand how to properly secure your new product or feature? When making a new product or feature available in an organization there is always the risk of opening up a hole through which data can be improperly accessed.
Depending on the complexity of the product this could be having the right personnel available to secure the product properly, additional software for security and compliance, or even audits in a regulatory scenario.
Backup/Recovery. The loss of data through user error or other catastrophe has been the death of companies. Make sure you are backing up the data used and generated by your product as well as the product itself including supporting software.
If you suffer a catastrophic event, you will want to have peace of mind that you can eventually get back to a fully operational state with minimal or no loss of data. Returning to that fully operational state is where recovery is concerned. The cost of recovery is likely related to just how fast you want to be able to recover and how minimal the data loss will be.
Upgrades/Enhancements. Software rarely stays in one form for very long. You will have problems reported by users, integrations with other products that fail or need upgrading, technical debt in the application, or just the desire to add new features and enhancements to serve your users better. If you purchased a solution that you are hosting yourself, you would want to understand the complexity and effort involved to upgrade the solution when the vendor releases patches or new versions.
Training. When you bring a new solution into your organization or add a new feature to a product, you’ll want to account for the cost to train your staff and users. If your staff are the users of the solution, how long will it take to get them to be proficient with it?
Support staff will need to be up to speed with the changes so they can adequately provide support to external users. If external users are affected by the change, how will they be notified of the change? Will you make a video? Have you updated your help center?
Personnel. Whether it is finding more people or additional time from people already in your organization, the investment in personnel is almost always more than anticipated. Every point mentioned above requires time from someone to execute on.
It may be necessary to hire more people if you are building or acquiring a solution that makes use of new technology. If a new feature uses a new type of database technology, you may need to hire someone who is proficient with that technology and understands how that technology affects the operations and TCO of the overall product.
Alternatively you can invest in the people you already have by training them on new technology. Additional support staff may be required to support new users or increased requests.
If you fail to plan, you are planning to fail!Benjamin Franklin
Protect yourself from failure and increase your success by using these items to plan your next enhancement.