As customers, most of us pay little attention to the implementation process between ordering and delivery – we happily give little thought to the underlying infrastructure and technology as we receive our new fancy red toaster!
Our attention is more towards the functionality. How do we pick our products? How do we place the order? How do we pay? When does the product arrive?
We don’t expect that the delivery process will to need to be completely re-implemented if we stop using trucks to deliver parcels and move to quad bikes instead.
As users, it is the business functionality provided by our software applications that is important – not the underlying infrastructure and technology.
When we hard-code the user experience (UX) and movement of data between screen and database (Create, Read, Update, and Delete (CRUD)) into our software applications it frequently becomes necessary to re-implement the business functionality every time we update the underlying infrastructure and technology.
Advances in technology over the last few years now makes it possible to virtualize the UX and CRUD into configuration data, breaking the dependency between business functionality and the infrastructure and technology used to implement it.
When I talk about configuration here – I’m not talking about the older models used in many SaaS applications. The old model is that the application comes with a set of baseline functionality that you can configure – turning forms and fields off/on. Adding new forms and fields to the application. Extending workflow using a set of restricted extensions.
Whilst these SaaS applications work fine if you just need the actual functionality in the box, they are less useful for implementing a completely custom user experience. You are generally advised to start by hiring expensive external consultants to guide you though the process of fitting your business requirements to the functionality of the application. Costs and risks of custom functionality rise steeply from there!
The alternative is to use a general purpose UX and CRUD virtualization framework that enables you to build any desired user experience to implement your preferred business processes. These frameworks can be quickly added into your enterprise architecture toolbox enabling you to break the dependency between your business functionality and technology.