Software is rarely a perfect fit “out-of-the-box” for your specific needs, and more importantly, for your internal culture and processes. Eventually users will require fields, tables, reports, etc. that are more personalized to how you do things on the day-to-day, but at what point does software customization become both an absolute necessity AND a long-term project?
Defining the ‘When’
Most commercial off-the-shelf (COTS) software systems are designed to fit a broad demand, generally a series of activities that can return more value being automated rather than executing them by hand with pen and paper or a spreadsheet. Bookkeeping, payroll, inventory tracking, email automation, project management and securely storing the heaps of data recorded along the way are just a handful of examples of this. Even ostensibly more esoteric functions like EDI compliance and fixed asset management have big enough marketplaces to shop around for commercial solutions.
The downside of COTS software, however, is that it’s not built with specific idiosyncrasies in mind – and there is no business (or nonprofit) that does not have individual pain points. There will always be broader categories of industry-related compliance, market eccentricities and operational aggravations to face, but you will rarely see the exact same set of circumstances repeated across multiple organizations without some degree of separation. Those that adapt to the challenges more quickly will typically outpace competitors.
The upside of off-the-shelf software, though, is that it generally follows market standards – including critical industry-wide regulations and other best practice procedures that are going to be in high demand within your sector. This means that today’s customizations can easily become tomorrow’s procedural nonconformance if you (or the third party running your project) are not careful. Planning for a software customization requires balancing a lot of strategic factors, as well as understanding exactly what it is you actually need to maximize your technology ROI.
Configuration vs Customization vs Bespoke Software from Scratch
The disconnect with developer and business language can make it confusing to understand what your options are for acquiring the features you want and need. Configuration, extension, coding and customization are sometimes used interchangeably to define a wide spectrum of development activities. For the purposes of this article, we can focus on 3 oversimplified buckets:
- Configuring items, typically minor tweaks, like adjusting or building reports, that can often be handled at the user-level and with native functionality
- Modification project, where existing features are fundamentally altered and/or a new level of functionality is introduced
- Bespoke development, where what is essentially a new application (or even architecture) is designed from scratch to fulfill a particular need
Due to the costs, time and expertise needed for the third option, most SMBs that opt to customize their software will most likely fall somewhere between the first and second choices. This is also where individual plugins, extensions and less complicated new workflows generally lived since they most often require technical experience to integrate seamlessly. While enterprises can afford to retain teams of software engineers to handle these types of projects internally, small business must rely on partners to make implementation cost-effective.
It is also important to be aware – and mindful – of when a well-optimized configuration would be a better long-term fit than a full-blown customization project that will ultimately change how your application works. Actual code modification can alter the way some functions work together, while taking advantage of configurations available in the native architecture can produce the desired results when it comes to changing interface elements like screen placement or reporting features. If configuring seems too complex or time-consuming for you to handle internally, you can always engage a certified value-added reseller (VAR) of your chosen system(s) to make the project scalable.
The Cloud vs On-Premise Software
Cloud computing has fundamentally transformed the way the software development industry works, with web-hosted and SaaS (Software-as-a-Service) applications increasingly representing the market. Consumer-level services have run rapidly with the technology and paved the way for the normalization of browser-based UI (user interfaces), real-time data streaming and shared storage. It has also created greater expectations for seamless integration between apps, with the best use cases visible in how suites like Microsoft 365 or Google Cloud perform.
The driving force behind the seamless experience many best of breed platforms are able to deliver are APIs, or application programming interfaces. Cloud APIs can be made into open APIs, meaning that there is a hypothetically unlimited level of flexibility – and scalability – in which and how many connectors are added to your software. In practice, though, this still requires having enough experience with the architecture involved and know-how equal to the complexity of the connections.
Buying an Application vs Building a Solution
No matter the level you decide to invest in, once you have committed to customizing your software you have crossed over from buying an application off the shelf and using it ‘as is’ to building a solution which must address your pain points. This is going to impact the path you take to implementation, necessitating serious strategy conversations on what exactly your organization needs from your technology.
To get the most out of your investment, you should be planning to both solve existing (and repetitive) problems and meet future goals, while balancing these with other business needs like compliance, budgeting, and best practice adoption. This includes improving performance, reducing waste and propelling growth, and all the specific objectives tied to those benchmarks like cutting consolidation time or opening new markets. When technology is optimized to complement your business – rather than force you to adopt new practices – it empowers you to reevaluate operations and refocus resources, ultimately helping to accelerate your processes.
Partnering on a Software Customization Project
In keeping in line with our mission, SWK Technologies devotes significant focus into providing solutions for our clients as opposed to just products. This is reflected in what our robust consulting, network support, helpdesk and STAT teams have achieved with our customers as can be seen in past implementations – such as with Unify Square.
Unify Square is a US-based cloud software and services provider with offices and subsidiaries around the globe, creating multi-entity and multi-currency requirements which also led to difficulties in consolidation between locations in their Acumatica ERP. SWK was brought in due to prior experience with a similar issue, and was able to provide a solution through configuring the native functionality already in Acumatica to produce a self-contained tenant for every nationality and currency. With additional training and support supplied by SWK consultants like Nick Heuer, Unify Square’s global finance team was able to refine the new instance and reduce the time it took for the multi-ledger consolidations from days to minutes.