The Computer Weekly Developer Network takes a high brow on low-code and no-code (LC/NC) technologies in a series of reviews designed to explore some of the nuances and specifics of this software development technique. application.
Looking at the basic mechanics of applications, suites, platforms, and services in this space, we seek to understand not only how apps work in this way, but also… what shape, form, function, and status they are. these apps exist … and what the implications are for enterprise software developed this way, when it exists in live production environments.
This piece was written by Andrew Davis in his capacity as senior director of research and innovation at Copado -a company known for low-coding DevOps and testing platform technologies work to enable enterprise software, specifically in the field of Salesforce deployments.
Davis wrote the following …
Low-code and no-code programming gives teams a way of developing applications with higher levels of abstraction. That is, instead of thinking about classes and method calls, teams can think in terms of screens, business processes and data models. It allows professional coders to build faster, but more importantly, it opens up the software development arena to a massive new community of builders.
Companies today are full of digital natives, and most people have at least a basic knowledge of building digital systems from webpages, to complex spreadsheets, to simple integrations. Low-code and no-code systems lower the entry barrier for making applications to allow subject matter experts from finance, sales, support, and IT to moonlight as digital innovators.
Software development is a thought process … and let me tell you what leads us and why it matters.
A new line of logic
This includes gaining clarity, communicating logic to others in a group, discussion and refinement. This is traditionally done through verbal discussions between software developers (who can offer potential solutions) and those [typically businesspeople] who are familiar with the problems that need to be solved. What happens when you give people experiencing a problem the tools and training they need to solve it for themselves? Low-code [and for businesspeople] Codeless systems make it easier for people who understand problems to build their own solutions, or at least be able to visually evaluate and understand the logic involved in a solution.
Low code systems make it possible to do more work with less effort, by using fewer moving parts per solution. Every line of code, and to some degree every character of code, is a moving piece that adds to the complexity of an application. When people can build using larger pre-built modules, such as dragging and dropping page layouts, visual flows that illustrate logic, and simple ways to create models of data, they create systems that are faster to build, easier to understand, and easier to maintain. .
Low code platforms have two main flavors: pure low-code tools like Mendix, Appian and Outsystems [in no particular order] and low-code platforms attached to SaaS systems such as Salesforce, Microsoft Power Apps and ServiceNow.
SaaS providers have developed low-code platforms to give their customers more freedom to innovate and solve their own problems. This frees SaaS providers from having to support every possible customization or feature their customers request and frees customers from the need to maintain their own infrastructure and integrate custom apps into their business data. enterprise.
Are low code systems reliable tools for building business critical systems? Absolutely.
Every time we move higher into the layers of abstraction, we sacrifice some raw performance and flexibility in favor of simplicity. This has been true in the transition from machine code to assembly language, from assembly to C, from C to Java … and from Java and other higher-level languages to low-code and no code platforms. The speed of an application is not only dictated by the speed of its execution, it also includes the speed of development, modification, evaluation, and deployment of the application.
The overall flexibility of an application is also not maximized by offering code-level flexibility.
The flexibility of code-based systems is hampered by the ease of understanding the code, the challenge of finding and maintaining skilled developers, and the risk of small changes that could lead to system-wide failures. Low-code systems provide enabling barriers-limiting some flexibility to allow teams to most easily achieve business goals.
The science of obedience
Ensuring compliance with ethical, legal, and company requirements is a critical but often neglected aspect of the development process. In general, compliance controls need to address two main points: what has changed (to whom, why, when, …) and whether that change is acceptable.
The most important part of compliance is having a history of all changes, who made them, when, why and what else changed at the same time. Version Control is designed to meet this need. Version control is generally seen as important in traditional software development, but few (or at least) no code developers are standard coders and may not be familiar with such techniques. The most useful step teams can take to enable compliance is to enable system modifiers to track their version control work.
It also opens the door to developing processes around approvals, deployments and automated reviews.
Importantly, compliance maintenance depends on compliance officers understanding the systems that teams are building, or at least to ensure that effective controls are in place. By increasing the level of abstraction with which a system is built, a larger part of the organization is able to evaluate and evaluate what is being built, and to prove that it meets the security and legal requirements of the organization.
Adherents vs. detractors
Like all new developments, low-code systems have their following and their detractors and valid points can be raised by both sides.
But fundamentally, low-code is simply increasing the level of abstraction of systems that teams do. This is a critically important development to enable the transformation of a wider segment of the population and to enable the creative pace that organizations need to seize the opportunities and avoid the risks they face every day.