We love to create software that makes a daily, hourly, or even minute-to-minute tasks easier and more efficient for someone. Whether it’s a CRM built for your unique business model or a mobile app holding your identification credentials, the scope of time and effort it takes to create that kind of software may be an abstract concept to everyday users. There are a few analogies out there to help explain the feat, such as building a house, and our own tying a shoe analogy; however, we’d like to provide more context for the cost of custom software.
The simplest context to provide when someone asks why building custom software is so expensive is to compare the costs of standard software. One of the most popular desktop software applications is Photoshop. The leading photo editing software was first created in 1988, which means it has had a base code for 30 years. Photoshop is a powerful tool, and users used to be able to purchase the software one time and use it for a number of years before users were required to purchase an upgrade. Since OS updates are so continuous, Photoshop changed its selling tactics from offering a one-time purchase to only offering a monthly or yearly plan. Now, the cost to use the full version of Photoshop is $240 a year ($20/month).
However, Photoshop is a specialized software, and not every business needs it to function. So what about more operational software? Most every business needs bookkeeping services, and software alleviates the pressures that come with accounting, payroll, and HR. QuickBooks is one of the most well-known book-keeping applications for small and big businesses. The annual price tag is $499.99, over double that of Photoshop. While software that “only” crunches numbers is fairly expensive when comparing its functionality to Photoshop, Photoshop can’t help a business much during tax season - even though it does allow users to make an elephant's skin dolphin-smooth. Its functionality is much more complex than QuickBooks, yet the ubiquitous needs that QuickBooks satisfies seems to justify that higher price tag.
Either way, both out-of-the-box applications carry a hefty, yearly cost, and millions of people buy it every year. So then, why is custom software so much more expensive?
Well, what does the button do? If it holds two sides of a shirt together, then it shouldn’t be very expensive to create. But if the button performs a function in software or mobile app, the answer is much more complicated. The question again is, what does the button do? Let’s use a simple button as an example: the 1 on the calculator app that comes standard with most smartphones.
It’s a simple enough button design. On my phone it’s a white digit with a grey circle background. When I press it, the background ever so slightly fades to a lighter grey and a number 1 appears in the upper data field.
But let’s pretend that the calculator is a factory and each button has its own set of technicians. (Yes, imagine there are microscopic people inside your calculator app that make it work.)
We would need a technician to create the white digit every time the app opens and another technician to make sure that it maintains visibility until the app is turned off. There would also be a technician to create the circular background. Additionally, there’d be multiple technicians to keep the digit in place in relation to the circle, and a technician for each proximity to another button or side of the screen, let’s say 4 even though circles don’t technically have sides. Then you’d need a technician to detect when the button has been selected, which could be any number of areas on the button, so you’d need a few look-outs. Then a technician would control the change from grey to light grey, and another technician would control the change back from light grey to grey. Then the most important part: A technician would have to be there to run from the button to communicate with the technician in the data field to tell their technicians to insert a number 1 in the field.
Is your head spinning yet?
If my calculations are correct, that’s a lot of technicians for one button. Twenty maybe? And that’s just for one digit. All that button does is tell the app to place one of those digits in the data field every time that button detects pressure from a finger. There are eight more digits to go, and that doesn’t include the equation, positive/negative, or percentage buttons the control the formulas within the application. And we haven’t even thought about what happens when you press the equal sign, let alone how this little factory triples its number of buttons when you turn the phone sideways.
Consider what it takes to train these technicians, keep them going on the job, and how many employees it would take to run the factory 24 hours a day in eight-hour shifts.
While this is not exactly how software operates, it does illustrate the innumerable moving parts and intricacies involved in creating and running an app.
In reality, each technician represents a complex set of code - numbers, letters, and formulas that make up a visual, trigger, or activity. And custom software typically involves starting from ground zero and innovating your way up.
Back in the day (and some companies still today), operate based on the Waterfall method. At its core, Waterfall gathers all requirements up front, does all development at once, then does all quality assurance testing at once, then hands the finished product over the client. Waterfall also typically takes a year or more to complete, while the client only sees the finished product. And most importantly, the client pays one often incredibly large sum for the total project.
As experts in technological development, we understand that your company, customers, and markets can change drastically over the course of a year. What you set out to complete at the beginning of the project is usually not the solution you need in the long-term. That’s why we use the Agile Methodology in our development operations.
Here’s a blog explaining the Agile methodology in its simplest form.
The biggest connection between Agile development and the cost of software is that the client almost never pays for the total project all at once and almost always pays less for the total project in the long-run. This is because we start with your Minimum Viable Product - the most basic level of the system you need to begin testing - and build in phases (or releases) from there. We build the project bit-by-bit, ensuring each piece is exactly how you need it and allowing you the flexibility to change course if your company, customers, or markets demand it.
You also get to see actual working software every two weeks.
If your company is going to build custom software, you need to build it smart. Envoc hires only the best and brightest in software development, and is 100% in house. You can actually sit down at a table with the technicians behind your custom software project and experience the project with them, rather than taking a back seat and trusting your development vendor knows exactly what you want.
Let Envoc create a better reality for you.