Sometimes ideas emerge long before their time. The first electric car was launched by William Morrison around 1890. More than 100 years before the first electronic computer was built, Charles Babbage (pictured) designed the programmable general-purpose computer in 1837. Known as the analytical engine, the computer was complete with arithmetical unit, control flow loops and memory. Nobody has yet been able to fathom precisely why some of these early ideas failed to capture the public imagination at the time, only to re-emerge many decades later slightly rebranded and ready to change the world. The working assumption must be that the world was not ready for them at the time.
The latest idea whose time has apparently come is the concept of low code or no code software development. However, as in Morrison’s or Babbage’s cases, there is nothing particularly new about this concept. When we started our journey at Noetica about 25 years ago, our main vision was to do something that at the time sounded utterly radical (some would say foolish), namely to endow non-technical computer users with the ability to create complex interactive procedural applications visually, without needing to know how to write much or indeed any code.
Over the years we persisted in this vision, and embedded this concept into every element of Noetica’s technology. From the visual way of mapping customer contact processes and the way in which these processes integrate effortlessly with external functions and systems to the on-screen manipulation of Venn diagrams to formulate complex CRM campaign data queries, Noetica’s solutions have always aspired to endow users with the power to express themselves in the technical realm without the need to learn how to write code.
Indeed, our company name is an allusion to this very idea. The word “noesis” from which our company name is derived means “knowing without learning”. It is a principle that has always continued to guide our thinking.
With the benefit of hindsight, it is now clear that back in the nineties this idea was way ahead of its time. Let’s not forget that this was the decade of CR-ROMs, floppy disks, and 64k modems. The mere thought that any average Joe could sit in front of a computer and create sophisticated applications of various kinds without having to write much or indeed any code seemed preposterous at the time. Yet we managed it then and we are doing it even better now.
So, how does it work? The basic concept, as ever, is pretty simple. We think of an application as a branching process consisting of a sequence of activities, some of them user driven and some automatic, that follow one another according to pre-set logical conditions. These logical conditions are usually pretty simple things like what list item was selected on a previous page or whether a certain value in a database is above or below a given value or if the answer to a previous question was yes or no.
So, the application is simply an intelligent map that allows the user to reach one of many possible destinations in a logical way. For example, if we’re looking at an insurance claim, indicating that other parties were involved in an accident, the application would ask for the identities of such parties. Or a technical support request where an indication of an incident’s severity would lead the application to apply different service level procedures. It is important at this stage to point out the fundamental differences between Noetica’s approach to visual representation of application logic and the ubiquitous directed graph approach that most other products on the market tend to adopt. Noetica’s distinctive approach and the benefits flowing from this approach rest on two fundamental principles.
The first one of those is the is the separation between activities and logical conditions. An activity is defined as a well defined, unconditional task or linear series of tasks to be performed either manually or automatically. These tasks could be a data capture screen to be presented to an agent or an invocation of a web service API, the sending of an email, or querying a database. In traditional workflow jargon this is also known as a process “step”. Logical conditions are automatic decisions taken by the system based on previous activities and leading to a fork in the process. In other words, a logical condition is a junction where the process forks into several alternative branches. In contrast to all other systems on the market, Noetica’s visual metaphor separates the concepts of activities and conditions. This has wide ranging implications in introducing rigour to the user interface and resulting in much richer applications being possible without coding.
The second principle, made possible by the first one above, is the concept of recursion. In essence, recursion is the ability of a process to invoke itself. For example, think of the logical process of filling in a form. Sometimes, as part of the process of completing a form, it may be necessary to complete a dependent form, meaning that the form filling process invokes itself with another form as its input. This mechanism may repeat as many times as necessary, meaning that the process of filling in a form can be recursive. This leads non-technical users to think in a structured way about the logic of their applications and can dramatically shorten the speed of application development as well as the efficiency of the resulting processes.
The result of the application of these two guiding principles to the low code/no code engine that Noetica has been perfecting over the last twenty-five years is a technology that has reached maturity at the time when the market is finally ready for it whilst others are just beginning to take their first tentative steps into this exciting field. After all, timing is everything and all the signs are that the time for low code/no code development is now. We are more than ready to face the challenges that this old new world will present us with.