Custom software development offers myriad opportunities and can be a bespoke solution to your organization’s unique business needs. However, it is easy to make financial missteps with custom software development by incurring unexpected costs or missing easy savings. Custom development is complex, making it hard to accurately gauge the Total Cost of Ownership (TCO) of your project.
Software development expenses can largely be sorted into three buckets.
In an earlier blog, I explained how typical implementation techniques can create extremely expensive long-term costs. Today, I want to focus on infrastructure.
Much like implementation, infrastructure itself is full of hidden costs and opportunities that you can’t necessarily find in a budget spreadsheet. I’ve illustrated five common expenses and opportunities below and explained how at Fíonta, we use Heroku to largely avoid surprises when it comes to the overall cost and pain factor of custom development.
First, let’s baseline Heroku
Heroku is a platform in the Salesforce ecosystem for building custom applications. It is a hosted service, like Amazon Web Services (AWS) and Microsoft Azure, but focuses on simplifying operations and streamlining the development process. Where AWS and Azure are generalist solutions, Heroku is optimized for typical development needs.
1. Start-up costs
Surprisingly, staffing is often the biggest infrastructure cost. Solutions that are cheaper from a hardware perspective usually require more investment in expensive Operations staff.
As an example, on-premise data centers require extensive support before you can turn the computer on. Networks must be connected, hardware must be provisioned, etc. Per computational unit, on-premise solutions may appear to be the least expensive, but their TCO is actually quite high.
High TCO is a big driver behind the move to cloud-based solutions like AWS and Microsoft Azure, but while these services can save you money on your monthly bill, they still require provisioning and expertise. The cost of setting up your cloud infrastructure can be eye-watering.
Solutions like AWS and Azure are like dumping a bin of Legos on the table. You can build anything you want, but you must figure it all out yourself. If your infrastructure was a 12-course banquet, AWS and Azure are the equivalent of planning the menu, shopping for all the ingredients, and cooking the whole thing yourself.
Organizations that use services like AWS and Azure do so because they need the flexibility of making their own menu and have the staff in place to handle it. By comparison, Heroku is like choosing the entrees and sides dishes off a pre-set menu. You have fewer options, but more of the work is done for you.
It’s common to think of software as something you build and then it just does its thing, when in reality, software is a hungry beast and needs constant feeding. Developing the application is merely the beginning of your costs. Even without ongoing development, applications require regular security updates to various levels of the application stack.
The Heroku stack eliminates some of these obligations and makes those that remain easier and safer to perform.
3. Crash recovery
For well-designed or battle-tested applications, most crashes are caused by vagaries in the infrastructure, rather than flaws in the application. When the application is to blame, it is often triggered by an uncommon confluence of events, such as spiking usage in a rarely used feature that is writing too many records to the database. (If you really want to dive in deep here, contact us – this subject could be an entire blog in and of itself.)
Systems like AWS and Azure have options for building automated crash recovery, but none of them truly do it out of the box. Such set-ups require expensive, internal senior-level staff to set up and maintain, and probably include expensive redundant hardware. Again, this goes to TCO.
Heroku’s architecture and processes largely solve this category of crashes without added cost or manual intervention. Heroku “dynos” (think, servers) are fungible; crashed dynos can simply be replaced, rather than fixed. The replacement process is immediate and automatic; crashed dynos (think, servers) can simply be replaced, rather than fixed.
Heroku was built with modern development processes in mind. Many infrastructure options contain hidden and ongoing costs for development integration with your testing, development, and live environments. Heroku’s approach plugs naturally into the development process and uses standard and well-understood technology.
The net effect is that Heroku can eliminate integration costs and make development easier and faster.
5. Migrations and scaling
Upgrading or scaling servers can be very expensive and often require extensive planning and preparation. As the platform software ages out, or when usage has grown too large for the current hardware, organizations find themselves in need of servers capable of managing the increased load.
Heroku eliminates many migration scenarios by virtue of its design. It provides easy options to increase the size and number of dynos and its online marketplace allows easy growth for the related services you use.
Heroku is not a solution for everyone, but it can be an optimal solution for many non-technical companies. On a purely per-unit cost, Heroku is more expensive than many solutions. However, Heroku’s total cost of ownership is likely lower as it eliminates the need to maintain expensive specialists on staff and reduces or excludes many classes of ongoing expenses.
Fíonta recommends Heroku because it allows our nonprofit and association clients to focus on their mission, rather than their infrastructure. With Heroku, our clients realize greater savings by choosing a solution that includes fewer surprises and requires less specialized talent. Contact us if you’d like to learn more about how Heroku could work for your organization.