Anyone involved in the development of business software will know that, after release, it will need to be constantly updated.
Businesses need to adapt to changing markets and regulatory environments, innovate new services and keep pace with their competitors. Within the business, productivity and efficiency can be increased by automating existing manual processes.
Software is now key to the operations of many businesses, so it needs to be designed and written in a way that allows changes and new features to be implemented quickly and reliably.
Further complications are introduced if you are selling the software to multiple customers. Each client will likely want slightly different features or configurations and some may have paid for bespoke features unique to them. This makes managing upgrades difficult as features added to the core application (intended for all clients) should not overwrite or break any client’s bespoke features.
To solve these problems, the solution is to design a core platform on which specific business applications can easily be built and modified. The first goal is to separate the features of the specific business application from the common features that all business applications need. The second is to design the platform in such a way as to minimise the code needed to write the business-specific application. The specific application can be largely built by giving data to the platform rather than writing everything in code.
For example, without a platform a menu is usually generated in code by instantiating the required dropdown and button controls, or by describing the controls in some kind of mark-up language. Further code is then added to perform the required actions when the user clicks each menu option. To change or add new menu items, the code or mark-up must be changed, the application recompiled, and then deployed as a new version.
With a platform, you can design it so that it reads menu options from a database and builds the menu in real-time. Adding a new item is now a matter of adding a row to a database instead of editing the code of the application. Not only is this faster, but there is no risk of introducing new bugs because the code is not being changed.
The code to handle the action when choosing the menu item can be kept separate from the platform code; ideally in an interpreted programming language that can be compiled and executed by the platform.
Taken to an advanced level, this concept can be expanded to automatically build input forms and data grids in real-time which saves many hours of manually coding all the forms and grids your application requires. After adding a new field to the database there is no need to go though the program code adding a new input control to all the relevant forms and data-entry grids.
Any specific code to calculate default values or perform input validation can be written in the interpreted language and run by the platform as the form is being used.
A platform can also perform commonly needed features like user security, translation and deployment.
The translations are stored in data instead of resource files compiled into the application. A correction to a translation or adding a brand new language is now just a matter of changing data in a database rather than compiling a new version of your application.
User management and security can be handled at the platform level meaning that all tables and data entry screens will automatically have security features available without the need to write any more code. The platform will filter out data that the user isn’t allowed to see, and protect fields that the user is not allowed to change.
Bespoke changes and features for clients (e.g. a custom field in a data table) can be marked as such in the database. This means that an automated upgrade procedure can update the base application but not overwrite the client’s specific changes.
In summary a well-designed platform can be used to build multiple applications significantly reducing the development time because much of the code has already been written. The result is better quality software because it’s built on a tried-and-tested code base.
Over the past few years my company LightGlue has worked on these ideas to produce a business platform to run over the web on modern HTML5 browsers. Commercial business specific applications may be built on this platform with limited technical knowledge typically in days or weeks rather than months because of the features it provides “out of the box” including:
I believe the advantages of a web based platform such as LightGlue in terms of time saved, flexibility and technical accessibility make this the right approach for businesses at a time of rapid change and increased regulation. If you are interested in this approach or would like to discuss it further more information and contact details are available on the web site – www.lightglue .com.
Paul Henty is a founder and director of LightGlue Limited
LightGlue Limited is currently looking for opportunities to partner with an individual or established IT company in Jersey to expand into new markets.