Custom Software Won’t Break the Bank; And Here’s Why!

Outfast Source
Entrepreneurial Productivity Hacks
7 min readJan 9, 2018

When you hear the phrase, “custom software development” what words immediately come to mind? They might be words like “expensive,” “cost prohibitive,” or even “blown budget.” Whatever words they might be, they are words that typically strike fear into the hearts of CFOs, small business owners, and seed tech startups alike. Perception is everything, right? But is it the truth? The perception is that custom software development is scary expensive. Fear not grasshopper…it’s a myth.

The Evolution of Computing Technology — Hardware/Infrastructure

Computing has been around since the first recorded civilization if you really think about it. George Mason University’s timeline begins in the 14th Century with Abacus. Many historians agree that modern computing began in the late 1930s/early 1940s with the founding of Hewlett-Packard and the deployment of Colossus, as depicted in this timeline offered by the Computer History Museum. Computing infrastructure (hardware) has been steadily evolving ever since. Climate controlled rooms with giant CPUs whirling away connected to desktop terminals gave way to personal desktop computers and finally to laptops, tablets and mobile devices. Data storage technology has followed suit with huge magnetic tapes giving way to tubes, floppy drives, zip drives, and now USB drives with enough space on them to hold the data of an entire personal computer and then some! Look at the technological progression in the music/video player genre. Do you remember the high-definition optical disc format war that raged between Blu-ray and HD DVD during the years 2006–2008? Today, you can buy a decent Blu-ray player for about $40. Historically when studying the evolution of computing hardware, each product iteration improved the capability, reduced the size (or footprint), and decreased the cost to the consumer.

The Evolution of Computing Technology — Software Development

While advances in computing technology relative to hardware development are more conspicuous, it is important to note that technological advances in the software development industry have been just as significant! Operating systems and user interfaces have come a long way from the DOS days. Development tools and methods have evolved to the point that software applications cost less to develop and are being built over shorter periods of time. Simply put, your innovative vision of using technology to take your business to the next level or create the next big app is absolutely within reach! Let’s explore a few substantial technological advances that are game changers in the software development arena and why they make custom software development very affordable.

Microservices vs. Monoliths: Application Architecture is Key

First let’s take a look at the architectural principle of software development, i.e. how software applications are built. Long, long ago in a galaxy far, far away all software applications were designed using a monolithic architecture. All legacy systems and most enterprise-level applications, such as CRM, ERP, Supply Chain, Contract Accounting, etc. are built using monolithic architecture. There are three main components to an enterprise-level application: 1) a client-side, also known as a user interface, 2) a database, and 3) a server-side application. It’s the server side application that’s the monolith. A monolithic software application is built as a single unit. Any changes or additions require a new version to be built, regression tested, and deployed. This is why versioning cycles are so long, and development influencers in packaged software applications are likely only the top tier customers. Conversely, an application developed using microservices architecture is built in smaller, separate components that work together. When new features are added or changes are made to an application built using microservices architecture, changes or additions are made only to the applicable component rather than the entire application.

Then there is the scalability factor. In software development, scalability is the capability of an application to maintain processing speed and stability when resources (hardware, users, and new modules) are added; and the ease with which the application can be expanded to accommodate those additional resources. Regression testing (testing if a feature “regressed” to an earlier state) is a normal process of any development cycle to ensure that the application still functions properly after changes are made. Because monolithic architecture is built as a single executable, if one part fails it can potentially impact many areas of the application. Regression testing a monolithic application is very time consuming because one needs to know and inspect most, if not all, features of the application; and typically this is done manually. Today’s users demand a rich digital experience across multiple types of devices, which means software applications must be easily scalable and deployable across all such devices; and microservices architecture, along with other technologies such as REST, makes this possible.

When thinking about monolithic architecture, think Blacque Jacque Shellacque, Bugs Bunny’s nemesis in Warner Brothers Studios’ 1962 Loony Toons Wet Hare. Like a river that has been dammed, software applications designed using monolithic architecture force everyone down the same path. Software applications built using monolithic architecture take much longer to develop initially, and versioning cycles are much longer. Software applications developed using microservices architecture enables innovation and optimization at warp speed! Maybe not that fast, but you get the point; and time is money. While not everyone uses microservices, Outfast Source has seen that using them often produces cost savings both during initial development and in future software maintenance activities.

Open Source vs. Closed Source: It’s All About the Source Code

Source code is the fundamental component of a computer program. Source code can be open or closed. The term “open source” in computing means that the source code is freely available on the Internet in the public domain; and did we mention, IT’S FREE! Closed source means that the source code is proprietary, intellectual property, and must be licensed in order to use.

The source code is not accessible in proprietary applications; therefore, the application cannot be customized to meet specific business needs that are not met with the “canned” app. Customization of proprietary applications can only be accomplished by special request of the company licensing the application and is typically very pricey because they don’t want to offer customization outside of their normal versioning cycles. Retiring legacy proprietary applications once they are embedded in your business systems and processes is one of those things nobody likes to think about, at least not until the forced upgrade notification email hits your inbox declaring that the version of the proprietary application you are running will no longer be supported. Proprietary applications tend to be very expensive for a number of reasons, not the least of which include the overhead in man hours required to write all original code, the cost of keeping the source code private intellectual property (i.e., feeding the attorneys), and licensing fees. Alternatively, software applications programmed with FREE open source code are much cheaper to develop.

To give you a better idea of open source vs. closed source applications, let’s take a look at operating systems. Both Microsoft’s Windows and Apple’s Mac are closed source, proprietary operating systems; Linux is open source. So is the quality of the proprietary source code any better than open source? Not since 2013 according to Coverity’s 2013 Scan Project, which found that the quality of open source software outperformed that of proprietary software for the first time; and that Linux code is the “benchmark of quality.” Additionally, the open source community is much larger than the proprietary community, which translates to more stable code, faster innovation, and a significant reduction in development time. Oh yeah; and did we mention, it’s FREE to use.

Frameworks: Advances in Application Assembly Accelerate the Build

In construction, fabrication means that sub-components of a structure are completely assembled in one location and then transported to the construction site where the structure is being built. This method of building a structure has been incorporated into the development methods for software as well! Lots of open source software can be put together like tinker toys. We call them frameworks in the software industry; and by putting these frameworks together, much of the tedious and time-consuming effort required to build small technical pieces that don’t directly contribute to the business application being built are avoided. These days, it is less about learning about a specific programming language and more about learning the ecosystem of frameworks that make the programming language productive.

For example, when accessing a database — where you store your important data, like invoices or product details — we used to have to produce lots of repetitive looking code that differed slightly from one use to another. Today, the frameworks permit database access sometimes with virtually a word or two worth of actual code. This replaces dozens of lines of code that would traditionally have to be written, back when “custom software development” became associated with high cost.

Sometimes the Best Way to Envision Your Future is to Invent It!

Are you being held hostage by your enterprise-level applications which don’t give you the functionality you need for your business because you are not a top tier customer? Custom software can be a cost-effective solution to giving you the business intelligence and functionality you need for your business-specific workflow processes. Are you thinking about retiring one of your legacy enterprise-level applications but the thought of migrating your data to a new application, not to mention the cost associated with that proposition terrifies you beyond belief? Custom software is a value proposition by way of incremental development enabling legacy enterprise-level systems to be phased out over time. Are you envisioning a way to automate a business process or solve a problem in the marketplace? Do you have an idea for the next big app? A Minimum Viable Product (MVP) can be achieved quickly and without breaking the bank; and length of time to ROI is far less than building the whole application before determining marketplace commitment for desired features.

Custom software is crazy expensive. DEBUNKED! Things can get dicey when development projects are not managed properly or developers fail to capture the vision of their clients. We touched on that topic briefly in a previous blog article entitled: “7 Things to Consider When You Hire Outsourced Development Help.” We will explore this topic in future blog articles as we share our thoughts about helping you choose the right software developer.

So now that we’ve revealed the truth about the cost of custom software, is your vision coming into clearer focus? Think of that application you’ve been wanting to build and contact a developer today! As we like to say at Outfast Source, “Sometimes the best way to envision your future is to invent it!!!”

--

--

Outfast Source
Entrepreneurial Productivity Hacks

Outfast Source invents your future by building #software #applications that solve business problems and enable business growth.