Is configurable software a good thing?

feature-image

Businesses sell configurable systems as if they are a good thing but are they?

Configurability can be a double-edged sword: On the one hand the product can be adapted to different sizes and types of customers and customers are able to tailor the product to their needs; On the other hand the more configurable items, the more the complexity of both the development and the deployment of the product is increased.

So is configurability actually good for either the development company or their customers? In order to make any product and in particular a configurable product domain knowledge is required. But, some products are so generic that the domain knowledge is IT domain knowledge as opposed to domain knowledge of any business domain.

Take a common enterprise software product such as an ‘ERP’ system, this tool contains no business domain knowledge but rather understands software systems, protocols and data storage. A business who buys a generic ‘ERP’ solution has to extensively configure the product and create and maintain Workflows

Software development companies hire software developers and although many do have some highly prized consultants with business experience, on the whole the domain knowledge of the software development company is ‘software development’ and without that necessary business domain knowledge it is easier to just make everything configurable and let the customer do the work.

The holy grail for many in software development is ‘highly configurable’ software which can be sold to many customers all with different requirements and even across different industries. With the further advantage of a second bite at the money tree by selling services to help their customers set-up and configure the product they just sold them.

But is this actually a good way to develop software or is the customer left to do the work?

Even on the development side the managers’ vision of one product, one code base that can be deployed to many diverse customers, has a few downsides. Firstly with little business domain knowledge it is difficult to decide the best items to configure, so too many items are made configurable or the wrong items are made configurable. Then do we actually have a single code base or do we have several code bases knitted together in a single code file: If A do B else if C do D else if E do F and so on. This makes code hard to read and maintain and covering all the test paths becomes difficult to impossible.

4 configurable items, each with 2 options will yield 64 test paths, 5 items each with 2 options will yield 100 test paths, 10 items each with 2 options will yield 400 test paths. The more flexibility in the way of configuration that is built into the product the more testing required. The quality of the product suffers as testing all the paths and maintaining the woven code is difficult.

Then if we turn to the customer. If the customer is a large business they can afford the configurable systems that take a team to set up and maintain and the subsequent ongoing cost. It works for them because they can absorb the overhead. But, too many products rely on users having a team of in-house experts to configure and maintain. This leaves small and medium businesses (SME) struggling.

Small and medium-sized businesses don’t tend to have an IT department and therefore someone who has a ‘day job’ has to set up, configure and maintain the product. This is not usually an easy task, the user has first to figure out what all the configuration options mean, whether the options are important and matter to their business and what the options should be set to. Some of the configuration options are set randomly because the customer just doesn’t care.

Sometimes the underlying product code can be so abstract that the user is in effect writing ‘code’ on top of the product so that the product can function, in the manner of a 4GL (fourth generation programming language). This is often beyond the capabilities of the SME user. Often, the software disappoints and the business does not get value from the product it hoped for. There are too many features that the business does not need hiding the features it does. Many useful features of the product are not used due to the complexity of configuring them.

But, it doesn’t have to be like this, there is off the shelf software that requires little configuration. These solutions target a specific niche such as payroll, accounting, or bookkeeping. They build their solutions around SMEs, and they get them going in as few steps (and as little configuration) as possible. As an example, Free Agent does this really well, with sensible defaults and guidance throughout the first run experience.

So why aren’t there ERP products that just work for SMEs?

ERP systems, are by their very definition, generic enterprise software. These non-specific solutions just don’t work for SMEs. Instead, it would likely be worth considering a bespoke solution for your specific business needs.

At Neirfeno we are creating an Operations Scheduling System for one of our clients, this system is designed around their needs, not as a generic solution. We do this by working with them to understand the domain and the business rules and build a product that is specific to their business. We can then make reasonable assumptions from experience to smooth their operations, allowing them to simply plug and play.

To find out more about how we can help your business run more efficiently, and allow you to get on doing what you do best, please drop us an email at info@neirfeno.com for a no obligation consultation.