Beyond no-code: no-learn and no-work development
Tags: nocode, lowcode, nowork, engineering
Published: 2021-04-18 06:29:59

No-code solutions aim to empower non-technical people to create their own software solutions with zero need to code anything at all. The term <strong>no-code is sometimes used as a slight variation of low-code</strong>. In fact, we can often see tools defining themselves as <em>no-code/low-code</em> tools. All big <a href="https://modeling-languages.com/big-five-bet-modeling-low-code/" target="_blank" rel="noopener noreferrer">companies are buying into it</a>.

I discussed before the <a href="https://modeling-languages.com/low-code-vs-model-driven/" target="_blank" rel="noopener">difference between the low-code and no-concepts</a>. Long story short, no-code really means no code at all, which limits the variety of applications you can build. We are basically looking at template-based frameworks or the creation of workflows mixing predefined connectors to external applications where the designers, at most, decide when and how certain actions should be triggered. This is a reasonable trade-off if you don't want/have the time to learn to code. And the number of different applications you could create is still huge with an <a href="https://www.nocode.tech/" target="_blank" rel="noopener">increasing number of no-code solutions</a> ready to help, no matter the type of applications you have in mind. But<strong> no-code doesn't mean that you'll be able to create your dreamed application in no time</strong>.

I want to highlight two subcategories of no-code applications: no-learn and no-work development tools. The following image describes the relationship between each category.

<img class="wp-image-7750" src="https://modeling-languages.com/wp-content/uploads/2021/04/img_6075211ca85d3.png" alt="No-code vs no-learn vs no-work" width="571" height="384" />

<h2>No-Learn software development</h2>
No-learn development tools correspond to the set of no-code frameworks that let the users employ their own tools to define the software to be built. Instead of the user having to learn to use the no-code tool and <a href="https://modeling-languages.com/nocode-lowcode-modeling/" target="_blank" rel="noopener">the (graphical) language behind it,</a> the no-code tool is able to read and import the software definition from Word, Excel or whatever other tool users in that domain typically use.

An example would be our <a href="https://xatkit.com/spreadsheet-excel-to-chatbot/" target="_blank" rel="noopener">Excel to chatbot service</a>. Instead of forcing users to learn a new interface and language to define chatbots, we offer them an Excel template that lets them define bots in a tool they already know. No matter how great is our no-code tool, if it's a new tool the user will need to invest time learning it. Better to eliminate this barrier to entry.

A no-learn tool can still have the same expressiveness as a general no-code one. We're not limiting what users can do with it, just changing the language in which that no-code project will be defined.

<h2>No-Work software development</h2>
No-work is an extreme case of no-code development where the user does nothing. Users do not code but neither do they define the application to be built. Not within the no-code tool interface, nor with their own tool (no-learn category above). They do nothing. Instead, the no-code tool takes whatever information is already available in the company (in documents, files or databases) to automatically derive a software application from them.

Continuing with our chatbot definition example. In a no-work setting, we would not even ask the user to fill our Excel template to specify the bot behaviour, we would just take its FAQ website, existing Excel file (e.g. with some list of questions they prepared to homogenize their client support team) or list of products in a database and generate the chatbot from there. In our interviews with potential chatbot clients, they often tell us a variation of the sentence "we already have an Excel file we use internally, we just want to give you that and get a bot that is able to answer the questions in our file".

This completely eliminates all barriers to entry. As a trade-off, no-work approaches do restrict even more the diversity of applications to be built as the no-code tool needs to largely depend on <a href="https://modeling-languages.com/convention-configuration-key-selling-point-mde/" target="_blank" rel="noopener">convention over configuration</a> strategies in order to be able to derive a valid application from the client's input files.

Still, this approach is less radical than it seems. Just think about all the <a href="https://modeling-languages.com/umltosql-umltosymfonyphp-and-umltodjangopython-are-now-open-source/" target="_blank" rel="noopener">CRUD generators</a> available on any modern programming framework. Any of them is able to connect to a relational database and immediately generate all the forms required to access and manipulate the database data.

<h2>No-code categories are not exclusive</h2>
Each of the categories above targets a different type of user/scenario. Depending on how much the user wants to learn/work, you can offer him a specific type of tool, each one with its trade-offs.

But this doesn't mean your no-code tool needs to stick to one specific category. As we do in <a href="https://xatkit.com/" target="_blank" rel="noopener">Xatkit</a>, you can offer different interfaces/importers on top of the same engine. You can even offer a low-code version for advanced users willing to use your tool's API to complement the result of the no-code approach.