Four Dimensions to Consider when Qualifying an App Builder

Tooraj Helmi
apsy

--

Introduction

You are reading the blog because you probably need to have a custom app for your business. You have probably searched the web and come across many options with different approaches worldwide at different prices. Now you are wondering which one to choose to build your app. This blog will help you understand the entire universe of app development and give you specific metrics to qualify the best one.

About the Author

I am the founder and CTO of Apsy, where we use machine programming to automatically generate repeatable parts of the apps to lower the cost as much as possible. Before Apsy, I worked at the head of engineering a director of digital platforms and senior director of advanced systems leading projects to build apps and digital systems. I am also a Ph.D. student at USC researching machine programming and app theory.

1. Platform dimension: Mobile app or Web app, Android or iOS?

As I explained in this blog, all three can be done in one shot once done correctly. So don’t fall for dev shops that try to convince you to build just a web or iOS or Android or do them separately. They either don’t have the skillset or want to charge you three times.

2. Price vs. Quality dimension: Cheaper or Better?

In software theory, there is a concept called a vicious trinity, stating that “one can only choose 2 of the three software properties at a specific cost: quality, number of features, or time”. Quality here consists of both functional and non-functional characteristics. Functionality being anything that makes the software easy to use, appealing, and less buggy. Nonfunctional is about elements that manifest themselves without a single user changing his behavior, such as scalability, the degree of effort required to accommodate some new requirements, etc. One of the functional characteristics is looked and feel.

The Traditional Approach

The traditional way of building software, using a dev shop or a freelancer to build the app, can be clearly described by the vicious trinity: “given a limited budget, if one requires more features, with a fixed due date, he has to forgo quality.”

Low code

Facing this unpleasant fact, software developers have come up with some ways of defeating the trinity. One recent form that has improved the situation is called low-code (AKA do-it-yourself or DIY). With this approach, a set of prefabricated features are already built. The user is charged a fixed monthly rate to build an app using a selection of such features by dragging and dropping the components to a workspace. The main drawback with low-code is the mediocre to low quality. The low quality can manifest itself in the shape of either mechanical look and feel — since not all features can mesh well on the UI. The second issue is scalability. More users are added, more customization is required to support their needs. This usually is very hard in low-code to almost impossible with no-code platforms — the difference between the two is that low-code allows some scripting but no-code does not.

AI to Rescue

The best way to break the trinity is using AI. AI has been used in many areas to automate tasks and bring down the cost of fabrication. However, the complexity inherent in building apps and understanding users’ intent has been slowing down, creating AI-based development tools. Nevertheless, some state-of-the-art researches have been recently making breakthroughs in the area. Specifically, the research on machine programming has shown promising results in generating smaller fragments of code. The most successful approach has been based on some new theories on how apps can be described and using AI to generate such descriptions. We will be talking about AI-based methods in a future blog.

3. Creativity vs. Speed Dimension: Human Creativity or Machine Speed?

Wouldn’t we sacrifice the creativity existing in what humans do if we use AI to generate apps? The answer depends on how AI is used. As mentioned above, the low-code platforms try to put together a set of pre-fabricated components. This undoubtedly sacrifices creativity. The generated app is just a sum of some heterogeneous pieces created over time. The best app created using these platforms still looks artificial. Another way, however, is to keep the humans in the loop. Let them use their creative spirits to design something one could never imagine. We can then use AI to turn these fully custom designs into a functioning app.

4. Non-functional dimensions: scalability, adaptability

An app’s quality can be assessed from 2 perspectives. First, many apps have a high functional quality, i.e., they pass the test of satisfying requirements. However, they fail the non-functional tests: would they scale when the number of users grows 100 or 1000 times? Can their functionality be easily updated to match unforeseen requirements that only manifest when the app is used massively or when business needs change?

Our experience shows that low-code platforms offer a low score concerning non-functional quality. As soon as the number of uses grows beyond a certain threshold, these apps get slow, or even worse, they tend to crash. They cannot adapt to change either. It is not easy to augment an app built using low-code if the required component is missing or does not offer what is precisely needed.

To summarize, when trying to select an app builder — traditional or modern — it is essential to consider both functional and non-functional characteristics.

An app that might seem a good choice in the short term might function poorly when the number of users grows, or business needs change. However, It is also essential to know that one does not need to sacrifice one for the other.

--

--