By Srikanth Devarajan, REI Systems
Motivation: An IT journey begins with the considerations of several software technologies, roadmaps, and strategies. A software development roadmap usually falls within a spectrum ranging from custom developed solution to use/extend pre-packaged solutions. Regardless of the choices made, most application implementations are difficult and expensive. And quite often, even with good intentions and near-flawless execution, fatal flaws are discovered at the core of the project. The software journey reaches this point one way or another and then introduces another new solution or technology to overcome the problem.
The introduction of new technology to overcome deficiencies of the old is complex. Any such actions taken by organizations of all sizes can fix the current problem, but it is not scalable or sustainable, and it keeps the door open for future problems. It is a vicious cycle: IT suddenly finds itself struggling to cope with applications of various sizes and shapes. The larger the project, the higher the risks. In the end, many complex applications function within the same environment and do the same things. Adding disruptions such as Mobile, Cloud, and AI to the mix only further amplifies the problem.
Reducing the number of such multiplied applications is the primary concern orbiting around IT leaders throughout government agencies. For a few years, IT leaders have increased their focus on reducing the number of applications in their ecosystem—a process otherwise known as "application rationalization." Speeding up application rationalization seems to be the war cry in many government agencies, and rightfully so as it will reduce risk, increase efficiencies, and simplify the environment.
Growing Software Complexities: When it comes to application rationalization, government agencies are still at risk of reaching the same fatal flaw at the project’s core. That is because most government agencies prefer to employ traditional technologies such as .NET, JAVA, and Open Source. Furthermore, business applications remain depicted as a 3-tiered architecture—UX, Business Logic, and the Data. The fundamental principle behind tiered architecture defines how applications are “layered” or “divided” for promoting separation of concerns (SoC). Though at the beginning of tiered architecture time the concept of SoC was substantial, over time this architecture invariably creates harmful dependencies that foster redundancy, ultimately resulting in a perfect breeding ground for software complexity. A critical step in application rationalization is reducing software complexities. Software complexity is the sum of the numbers of “things” multiplied by the type of interrelationships between those things.
Complexity = Number of applications x Schema x Code
In the above three variables, if we can reduce one or two of them simultaneously, the overall complexity will be reduced. For example, consider a reduction in code per schema. The critical question here is, “How does one decrease coding volume and time?” Here is where the new movement called "Low-Code platforms" comes into the picture. Low-Code platforms offer a new way to develop robust applications by eliminating code redundancy, development time, and cost significantly faster than traditional tools. Depending on the goals or project, it could be up to, or more than, 50%-60% faster.
What is a Low-Code platform? A Low-Code platform is an interactive and intuitive software development and management platform that decreases the volume and dimensions of conventional coding activities needed to create a software application. Low-Code platforms empower teams to deliver value more quickly and reliably. A Low-Code platform utilizes visual representations, prepackaged templates, and an integrated development environment (IDE) with drag-and-drop tooling to build or integrate software and manage IT infrastructure. Low-Code eases the pressure off IT by enabling businesses to meet their demands for application solutions and adapt quickly to new business process rules and models as business needs shift.
When to Consider Low-Code?
Low-Code platforms have some disadvantages which should be considered and evaluated before making a decision:
Government agencies must deal with the challenges of application proliferation and rationalization and the constant need for a faster mode of delivering applications. Low-Code is an efficient and scalable mode for addressing these needs. Without any low-level coding, applications can be rapidly built, seamlessly deployed, and quickly changed. The critical value gained is that Low-Code platforms collectively bring IT and the business together closer than ever. Low-Code platforms expedite rapid, iterative, and collaborative development and include robust communication tools to align agency IT stakeholders and leaders, ensuring higher software quality at lower cost to propel agencies towards mission success.
 Based on REI Systems’ internal prototypes
 Based on REI Systems’ internal prototypes