At the recent Cloud Computing Brainstorm meeting in Washington, DC, Federal CIO Tony Scott delivered the keynote speech. For two and a half minutes of his 20-minute speech (minutes 19:45 to 22:20), he talked about a general pattern that describes most government systems. He asked the audience of government and private-sector IT leaders to stop building the same type of solution over and over and switch to providing core services that can be reused in a variety of solutions.
Historically, government solutions have been custom built to a specific set of requirements. In fact, the specificity is often so granular that there’s little chance a COTS solution could be applied. In many cases, a COTS solution would work for 90% of the system requirements but not for the remaining 10%.
In some cases, this led government to adopt a COTS solution and customize it to accommodate the unmet 10% of requirements. The solution ended up being the worst of both worlds. It was a COTS solution at its core and, therefore, much of the coding was only known to the COTS vendor (in some cases, the government was not provided with the source code or even entitled to hold it), but it had significant custom code that made it a separate product.
In the best cases, the COTS vendor would maintain the customized product along with its COTS product, but that typically involved significant maintenance fees. More commonly, the government bought the customized product and received a smile and a “good luck!” from the COTS vendor. It was rare that customized COTS worked out for the government, driving it toward custom solutions.
Today, advancements in software development have led to a new approach that Forrester Research calls low coding. In low coding, a COTS solution is specifically designed to be customizable for each client, bringing the best of COTS and custom development together.
In the Forrester report, 13 low coding vendors are identified, some of which are glorified content management solutions, some of which are configured Microsoft SharePoint offerings, and a few of which are true, customizable COTS products.
The true, customizable COTS products offer a set of common services that are typical for all software solutions (screen displays, IT security mechanisms, database integration, reporting tools, forms creation, etc.) Those services are configured to create custom, web-based solutions, often using a drag-and-drop graphical user interface to create much of the solution. Customizations are built off the core solution to satisfy the specific requirements of the desired system using small amounts of code, and the custom code and COTS components are compiled to create the custom solution. Various assessments of low coding solutions tell us that they can be created six to 10 times faster, and since much of the solution is reuse of proven components, the out-of-the-gate quality of the solution is superior to custom development and remains so throughout the lifecycle.
Some of you may be thinking this sounds like the customized COTS approach that was disparaged earlier in this post. It’s not. Low coding products are designed from the beginning to be customized, like a box of Legos® where the toy is not created until the blocks are configured as the child (or adult) desires.
Low coding vendors strive to make customization of their products as easy, fast, and low risk as possible. Typically, they maintain their COTS components and offer support contracts for updates and additions to them, while the customized configuration and code is maintained by the user. And the COTS components are easily recompiled with the customizations when the low coding vendor provides updates.
Low coding not only fulfills Scott’s request, it yields a goldmine of benefits such as lower lifecycle costs, short development schedules, and ease of fielding in on-premises or cloud-based platforms.