Comparing Custom Application Development with System Enhancements
At KVA, we offer two different types of software consulting services - Custom Application Development and System Enhancements. There are some similarities - we’re obviously writing code in both cases. But there are differences in how we do it, scale, and cost; as well as in the type of results and output that you the customer can expect. As we’re not in the business of selling you the wrong thing, let’s dive in to what they are.
Custom Application Development
Custom application development is easiest to explain in terms of deliverables. The end goal of a custom development project is a piece or pieces of software that you get that are built from the ground up for you. They’re custom made for your business and your process. No one else has anything quite like it, and it’s made to work exactly how your business works. Usually, but not always, these are line of business applications - applications that directly support you in doing what you do.
As an example, let’s say you’re an auto parts manufacturer. You need a system that takes in and tracks orders, fulfillment, and whether you’ve been paid once the order is complete. You also need to track your inventory of parts on hand and where those parts are in your warehouse, and you need a way for the people making those parts to ensure they have what they need to actually do the work of producing the order. Ideally, those people would be able to raise a flag in the app if there’s going to be a problem with any step in the process, and boy it sure would be nice if the app could tell you if there are going to be problems before they happen based on your inventory and parts levels. Oh and of course we need reporting, so we can track our metrics for on time order completion, as well as learn where some of our most common problems happen so we can better address them.
That’s what a custom application does. It takes your business and how you run it and it unifies all or parts of it into one place that does things the way you want them to be done. It often does the work of several of a companies previous tools, and makes your employee’s lives simpler and more productive: not only is it built to work your way instead of you having to change the way you work to fit it, like out of the box solutions tend to do; but you also remove those cumbersome steps of getting all those tools to talk to each other.
That sounds fantastic, and it is. It really is. A good, well thought out custom app can be transformative. But it’s also a commitment, both in terms of time and in terms of money. As you can imagine, making everything from the ground up is slower than trying to set up a product and customize it. It’s also more expensive. As such, usually (but not always!) large custom apps are usually more attractive to more mature, mid-size or larger businesses that can handle the ramp up time and cost to reap the efficiency savings over time.
There are a few exceptions to that generalization. First are small custom apps designed to do only a handful of things, usually something very niche to a field that doesn’t have out of the box offerings. The second is custom software development for a specific product, e.g. a piece of software that runs on a microchip to drive interactions with a bluetooth speaker. These types of work tend to be much more constrained in terms of scope, and therefore cost.
System Enhancements
System enhancements are taking software you already have and adding to it. Usually the software being modified or extended is out of the box software (ex. Quickbooks), or configured software (ex. most CRM or ERP tools). These tools generally provide programmatic ways to interact with them, whether that be by on/offloading data, using APIs, etc. that generally make most customer requests easier to achieve. While this may sometimes place limitations on what’s possible, it also usually means that changes can be made quickly and in an easy-to-utilize fashion. Usually this means that System Enhancement projects are narrower in scope, cheaper, and quicker.
As a simple example of a System Enhancement project, let’s go back to our auto parts manufacturer from our example in Custom Application Development. This time, let’s say they don’t want a Custom App - they like their existing tooling just fine, it’s a good fit for their needs. Most of the time. There’s just a couple things that bug them. It’d be really nice if their order entry system talked to their inventory system a few times a day so that they didn’t manually have to manage that. It’d also be nice if they could print off a report of those changes so they could verify manually if they notice a discrepancy. That’s a system enhancement. Turns out most order entry software has an export feature, and most inventory systems have an import feature. A little bit of code to format the data and set up the sync schedule, and our auto parts manufacturer is off to the races.
Generally, system enhancements are orders of magnitude cheaper and faster to finish than a custom application. They are also usually narrower in scope by their very nature - if you wanted a totally new piece of software, you’d just go get that instead. Occasionally, though, System Enhancements can be sizeable, it all depends on how long the list of “things that need tweaking” is and how complex and customizable the existing product is. A very large company, for example, could have a list of things they want changed with their ERP system a mile long. Good thing KVA Engineering has experience interacting with industry leading ERP solutions like SAP!
What if I want a little of both?
That’s not an unusual situation, and it can sometimes get you the best of both worlds if it’s done right. Let’s go back to our auto parts manufacturer example one more time. This time, they want a way for their salespeople to be able to show 3D models of their parts on their phone to customers, and track which customer was interested in what. This is a small custom application, plus communication with and tweaks to their ERP system. Because the custom development is limited in scope, it’s both faster to get delivered and cheaper than getting a whole custom solution. It does exactly what they need for a specific purpose, and if they ever want to expand that functionality later, say, to allow placing orders for parts from the app, well we’re always happy to come back and do that too.
Conclusion (we don’t blame you for skipping to this)
To sum it all up, or to give you a nice bulleted list if you just skipped all the reading above:
System Enhancements
Cheaper
Quicker turnaround
Modifies or adds to your existing software solutions
Custom Applications/Software
Infinitely customizable - you’re involved in the creative process of building something completely new!
Unique to you and your needs
Streamlines your entire business operations flow
If you want to talk more about this, or have questions about the nature of something you want done, or just want to better understand what might be possible in whatever situation you find yourself in, don’t hesitate to reach out. We’re not the type to try to sell you what you don’t need, and we’d love to hear from you.