Why is Custom Software So Expensive?

Why is Custom Software So Expensive?

Customers often ask, “Why is custom software so expensive?”. The short answer is, “Because there is a lot of work that goes into creating a custom software application.”

Customers often realize that custom software requires work as anything else does. But it’s the amount of the work necessary that is unknown to them.

It then falls to us to educate customers on the amount of work often required. Here is a quick discussion to help educate and inform. This discussion will not address every variation of every scenario that one can run across when dealing with custom software. There are some unspoken assumptions I’m making here which we won’t get into here just to keep this discussion relatively brief. So, please don’t flame us for not including various aspects of a scenario that you might run into.

Creating custom software applications, like creating creating a custom house, takes a lot of time. The time required to create those features is based upon two primary factors:

  1. the number and complexity of features requested for the software, and
  2. the variety of tasks required to create those features.

To use the custom house analogy, if you ask for a custom house to be built for you, you have to define exactly how many bathrooms you want and where they will be placed in the house, how many bedrooms and where, great room or separate living and dining rooms, big kitchen or small, where will it be in relation to the back porch, or will it be a deck, what about a game room, where will the washer and dryer go, what kind of appliances do you want, fixtures, metal or wood front door, etc.

Once you have all of that defined, which is itself is a task, the architect will design the house on paper so the contractors know what to build.

They contractors build the house to specification. This requires the involvement of heavy equipment operators, brick layers, carpenters, plumbers, electricians, drywallers, painters, roofers, foreman, a project manager, etc.

Suffice it to say, there’s a lot of work invovled.

The same can be said for a custom software application, lot’s of work involved. But prospective customers asking for a custom software application aren’t always aware that the same complexity exists when creating a custom application. Do you want screens in the application? How many do you want? What will they do? You want reports? How many reports, what will the reports display, how many columns, do you want to enter dates and/or select single client to limit the data in that report? What about security, where the database will be installed, training, documentation, who will install, how will we make future updates, etc.?

This all has to be documented first. Then designed so the programmer(s) knows what to create. Then the programmer(s) creates all of those features from scratch. Yes, we can sometimes buy things that help us get some features implemented faster (i.e., we buy a prebuilt bathtub and sink instead of creating one from a block of steel or clay). But we still have to find it, acquire it, install it, configure it, test it, etc.

After the application has been created we will test the whole application to kingdom-come to make sure it works as intended. Then we might, if requested, write technical documentation and user documentation, train the users, install the software, etc.

Wow! Lot’s of work. It’s easy to see how a lot of hours can be clocked when creating a custom application. It’s a unique solution for a unique situation, so it must be created from scratch. Therefore, it often costs a pretty penny.

But the good thing is that once it’s created and does exactly what you want, it will do exactly what you want and can often pay for itself and then some within months. But that assumes you’ve requested that we build the right thing…
Now take the situation where someone has an existing custom software application which must be modified. Here a bathroom remodelling analogy will work.

You want your bathroom remodelled. Not everything, just the bathtub and small storage closet.

The bathtub you want is bigger and the close will be removed and replaced with shelves. This might require taking out the bathtub, taking out the existing plumbing to the main wall and parts of the floor, taking out the closet wall, installing new plumbing to line up with the new tub to be installed, install the new tub, connect the new plumbing to the tub faucet and test, tile the tub/shower wall, install parts of the floor removed previously, install the shelves, paint everything, and clean up.

Oops, but wait…when we got into the main wall we saw the pipes were not up to code and getting very old. Needs to be replaced. Didn’t expect that one.

…and the costs go up and up until it’s done. And that assumes you don’t change your mind about what needs to be done while they’re in there working. You might come up with additional work, “Well, might as well refloor the whole bathroom while you’re at it…”

Modifying an existing custom software application can be a similar situation. How well was the application built? How much of it do you want to modify? Does what looks like one small change reach into many other parts of the application, requiring changes in many other places? It often does. Then all of those changes have to be tested. And we hope we don’t turn up some new bugs or issues in the process which we couldn’t possibly have identified before.

Again, lot’s of work involved.

So, no matter how you slice it, custom software can end up being a costly project. But again, in the end you’ll end up with exactly what you wanted doing exactly what it’s supposed to do. And modifying the existing custom application can often (but not always) be cheaper than recreating the application from scratch.

{ 0 comments… add one now }