Application Development Project: Low Code vs. AI

A few weeks ago, the development department of Kiteris received the task of creating a  web application that would allow end users to fill out a simple form reflecting a technical  inspection report for the naval sector. The client wanted it to be implemented with  Microsoft’s Low Code applications, which we are not experts in at Kiteris, but we do have  specialised partners.  

Taking advantage of our internal R&D initiatives regarding the use of AI tools, we decided  to also carry out the project with a personalised development approach using GitHub Copilot for Vue.JS and .NET. 

Therefore, the project was approached by a development team that used AI, “competing”  against the estimated times by an external provider specialised in Low Code with Power  Apps.  

Without a doubt, our intuition told us that starting a development from scratch could  result in a decrease in productivity compared to a Low Code solution, although this could  be compensated for in the long term. Let’s take a brief look at the pros and cons each  technology has:

Taking into account that it was a project with a simple UX/UI and basic CRUD functionality (Create, Read, Update, Delete) with image uploads and simple login, it  seemed logical that the Low Code solution would have clear cost and time advantages  despite needing external services from Power App for images and additional SharePoint  experts in the team.  

This is where we decided to assess the real possibilities of AI in the current state.  

As an AI-assisted development tool, we opted for the one that is currently more  established and advanced: Github Copilot.

 

We started our development with AI.

How was our experience with Github Copilot?  

Honestly, it couldn’t have been more satisfying. The development team, intentionally  formed by junior developers assisted only by a senior to assess the presumably most  unfavourable scenario, completed the application in record time, similar to the estimate  one provided by our partner to do it using low code.  

One of the few drawbacks of using an AI-assisted tool is that the quality and outcome of  the delivered code depend on the quality of the received prompt instructions. But, as I  mentioned earlier, it was a simple CRUD solution, so there was no room for  misunderstandings and detailed to exhaustion instructions were not necessary. Simply  starting to briefly describe the method to be performed already gave a similar result to  what a well-experienced developer in the technology in question would.  

Introducing a text indicating that an API method is desired, which can receive an image  and save it to an SFTP address magically produced a method that included all necessary  libraries, in addition to adding their corresponding packages.  

The code fulfilled its purpose and did so correctly. Obviously, it was requested to make  the corresponding modifications to replace the username and password values in their  corresponding configuration file instead of directly in the code. And if necessary, it could  have been asked to further improve security by instructing it to use a Key Vault service  from the Cloud provider. The possibilities for modification, such as resizing the image, are  endless and are just seconds away from describing the change to Copilot.  

The development was so rapid and accurate that unsolicited improvements were made to  check its capabilities beyond basic functionality.  

At this stage of the proceeding, tests were conducted comparing it with the common  ChatGPT assistant. At this point, we observed that in some cases ChatGPT provided interesting solutions beyond creating a method, but its “obsolete” knowledge meant that  its code constantly had to be reviewed for using deprecated libraries and methods.  

But, once again, having the Github Copilot extension integrated into Visual Studio makes  this not a problem because its ability to detect obsolete code and adapt it to the latest  updates makes using code generated by external tools also a valid contribution.

 

Conclusions

Upon completing the required development and going beyond, we were able to conclude  that:  

In scenarios where the use of a Low Code solution is valid (basic functionality and/or with  few or no adaptations or customisations), classical development supported by AI can  also be valid. 

We believe that in projects similar to the one discussed in this document (CRUD), the  differences in the required implementation time are clearly shortened between classical  development and low-code, becoming similar.  

What is more, the virtues of classical development (total control, customisation  possibilities, ability to create a scalable product) are preserved while significantly reducing  its scarcities.  

In the case of CRUD application development, the decision to opt for a low-code environment or a classical development environment with AI depends on many economic,  strategic, and organisational factors of the company, with one of the most relevant being  the development team maintaining the software, as they have all the functional and  business knowledge of the company.  

What is clear is that implementation time is no longer a difference in favor of low-code

Carlos Aisa Author
CTO | Chief Architect