I’m a software consultant, that means everyday I have new ideas about an app, a website, a new Nuget/NPM package or even a new t-shirt :) .
One day, I had an idea that I was so passionate about. I decided to build the simplest form of it as a proof-of-concept. So a poc helps me to see the idea in action and see how much potential it has to take off. So I started looking into ways to achieve that POC faster.
… And that’s when a new world opened to me, something I honestly never took seriously before.
Where it all started?
High-level Programming languages (3rd generation onwards) started in 1950s. In my opinion, their biggest advancement was these languages were more structured and closer to human languages. These advancements continued and with every new programming language, they got more structured, closer to human languages, more advanced compiler/translators, more advanced coding environments, and so on. Until it got to a point that it became user-friendly enough for anyone with a little bit of coding knowledge to use it and write code.
So we ended up with bunch of plug-ins and tools that would help us in writing code. We write a little bit of code and click .. click .. click and they would help us and do the rest for us. Things like Resharper, refactoring tools, API documentations, help and technical documents and more importantly UI generators. This is what I’d like to call as low-code tools.
But this train didn’t just stop there, it went ahead and we got to no-code station.
What is no-code?
No-code or no-code tool or code-less tool, is a method and a movement of programming that does not necessarily involve writing code but instead works with GUI. No-Code platforms trying to replace programming languages with simple graphical interfaces (such as web).
Eventually the broader public will be able to create A.I.-enabled software in much the same way that teenagers today can create sophisticated video effects that would have required a professional studio a decade or two ago. If you can use powerpoint and excel, you can use no-code!
Let me take you through an example to explain it in a more tangible way. Let’s say you would like to create an app or a website.
Imagine an environment that you can easily define the user interface with simple drag-and-drops:
Then you can visually define the logic and behaviour you need for your app whenever a click or any other event happens:
Create the output you want in the form of formulas (which is very familiar to any computer user who has worked with a spreadsheet before):
Finally, you can bring your own data or connect your app to any available data source (such as databases, spreadsheets, files, online services, other APIs, etc.)
And, voila! you can publish your app to mobile platforms (iOS, Android), web, tablet, TV, even desktop apps.
No-Code can also takes care of scaling and security. It can also integrate the power of AI with simpler methods and let you build more complex apps.
More and more businesses are starting to use low-code or no-code platforms. It helps them to speed up innovation and reduce the time between an idea and its execution.
Some businesses are completely turning to low code app development to speed up their app needs. According to Forrester Research, in 2019, 37% of software developers in Forrester’s worldwide survey were using or planning to use low-code tools. By mid-2020, the survey predicts the number to rise to over 50% of developers. According to Gartner, low-code app development will be responsible for over 65% of app development activity by 2024.
For me, the biggest indication is when big tech companies are entering into this area. Microsoft started its own no-code platform called PowerApps. With Microsoft PowerApps you can easily develop mobile and web apps for any business need, even if you have no technical or development experience.
Google has also introduced its own platform. With Google AppSheet, you can build powerful solutions that simplify work. No coding required.
Oracle introduced Apex, which is a low-code platform empowering developers to focus on the problem to be solved, and let Oracle APEX do the heavy lifting for you.
SAP acquired AppGyver which is a professional no-code platform, enabling you to build apps for all form factors, including mobile, desktop, browser, TV and others.
These all, show me that low-code and no-code area is very promising and as software engineers, we should start looking into embracing these new ways of coding.
What is the downside ?
With every new technology, there is going to be negative aspects. A responsible engineer should be aware of these, and make a conscious decision on what to use for a new project. In my investigation of these tools, I found out the following points:
If you have been working with IDEs and typical coding environments, you might find no-code platforms very limiting and strange! As it is going to do a lot of heavy-lifting work for you behind the scene, you need to learn how to use this tool. That means, you need to spend time reading documents, watching videos, going to forums and Q&A community sites. So a learning curve is expected and in some platforms that can take up to days or weeks to master it. Obviously you do it once and it becomes easier over time, but that’s one factor you need to consider in choosing a platform.
I mentioned scalability as a positive factor, however it can work as a double sword. Most of the platforms have a free tier that you can hop on and start building your app. However, they usually have a limitation, most likely you need to upgrade to another tier so that you can serve more users. The more data you have, the more users you have, the more traffic you generate, the more upgrade you probably need and in some case the performance could be a little bit under perfect with high volume of users (I think that could be because of lots of layers of abstractions behind the scene).
Lock in to a platform
Although this is common with every library or other technologies we decide to use, in this particular example it can be a bit more challenging and I would recommend to spend some time contemplating about this item before making a decision. Some platforms allow you to download the project at some point and continue developing it on your own, but not all of them! That means you have to be comfortable using their platform all the way even when your startup became a giant tech corporation.
I found some platforms that they let you to download the project (for example in react-native) and this would give you the opportunity to continue developing it once you need to eject from the platform.
Emerging of low-code and no-code platforms is not new to tech industry. It’s like when we were writing code in c++ and managed coding environments (like java and C#) came along. This doesn’t necessarily mean wiping out developers and current ways of writing code, however I strongly believe that this is a new way of development and should be embraced. I think some no-code tools can be used in greenfield projects to jumpstart them.
Also It’s probable that soon developers are expected to be able to know one or more no-code platforms when they are hired. Consultants should pay more attention to no-code, cause creating proof-of-concepts and MVPs could start with no-code platforms from now on.
Some of the photos and animations were borrowed from AppGyver website.