/blog/low_code_no_code


Low Code, No Code: Microsoft Power Platform


Are these low-code no-code platforms any good ?


Intro

Ever wanted to create an app or website but don't want to learn to code? Understandable, learning to code is a serious commitment and can also be a bit overwhelming for someone with a non-tech background. Worry not, as now you can create complex apps using the so-called "Low Code, No Code" platforms. These platforms provide a very user-friendly interface where you can build your app from scratch using modern tools, like drag-and-drop for different elements, easy visual customizations, etc.

One such platform is Microsoft's Power Platform (PowerApps and Power Automate), and I had the privilege to use it for a project at work. At first glance, these tools look very usable and good, but only after you use them do you realize what an absolute nightmare it is to create an app using these. Apologies to all the PowerApps/Automate developers, but as an actual full-stack dev, these just don't hit the mark for me.

Stay with me as I discuss all the things I really liked, the things that gave me a hard time, and my final thoughts on this whole "Low Code, No Code" thing.


Perks

First, let's give credit where it's due. I know I said it gave me a really hard time, but there are obviously some things that I love about this:


Learning Curve

Compared to the conventional app creation using different programming languages/frameworks, the learning curve for these tools is almost negligible. If you are creating a web app with traditional programming languages, you also need to learn the web technologies. For example, in the case of a web app, you will need to understand how exactly the web works, including HTTP, SSL, Cookies, API, Security, Databases, and much more. Here you can start with very minimal knowledge. For me, as I have some prior development experience, I got used to it within a day or two.


Create Here, Use Everywhere

These apps are designed in such a way that they can run everywhere on anything. For example, if I were to create an app for all the platforms (web, desktop, mobile), I would have to create the app separately for all the platforms, and managing so many code bases is obviously not an easy task. But if you create a PowerApp, you can access the same app from the web, desktop, or mobile. You can even add the apps to your Teams environment.


Security

As it is a professional tool created by Microsoft, it comes with all the security features baked in. You don't need to manage anything on your own regarding the security of the app, though you will need to set some app-specific features on your own. For example, the management console of the app should only be visible to the admins. The security I am talking about here is the app's overall security, common vulnerabilities, like injections or command executions, etc.


Database

In conventional apps, you need to have database knowledge, like SQL/NoSQL. Here you have the option to choose very basic storage formats like Excel. If you want more, you can check out SharePoint lists or go all in using the new relational SQL-like database created by Microsoft, Dataverse. You can use these options as is or maybe even all together catering to your specific needs.


Ecosystem

The best thing about this whole experience is Microsoft's ecosystem of different apps. For example, if I am using a PowerApp while logged into my Microsoft account, I can access all the apps without any hassle. For example, SharePoint/OneDrive files, Teams groups, Outlook emails, Power BI dashboards. In a conventional app, a dev would be required to create custom handlers for all these different tasks using the proprietary Graph APIs for different tools. Here, integrating other apps is just a click away.


Set Downs

The above points make it look like there can't be any issues with these platforms, but as much as these features make it look like a piece of cake, the issues with them bring down the experience to hell.


Documentation and Community

The most important things that a dev needs are a good and vast community and proper documentation. Now, I am not one of those who likes to read the docs, but when the community can't answer the questions you have or the bugs you face, you have to go back to the docs. In this case, it was a shame how sparse and concise the documentation was. In some cases for me, even doing exactly what the docs said didn't work. Talking about the bugs I faced brings us to the next thing,


Errors

We all obviously hate errors, but my hatred for the errors in PowerApps and PowerAutomate goes beyond. In modern programming languages, errors are so informative with all the traceback. If analyzed carefully, one can easily fix an error in a high-level language such as Python/Java/C++ (in most cases). Here, the error statement just tells you that you can't do something. For example, if there is an error in a function, it doesn't tell you why the error has occurred (like expected an int value, got float value), it just tells you that an error has occurred in the function, and you are left wondering where the error actually is and what exactly the error is.


Time Complexity

I don't know what exactly the architecture for these platforms is, but they are extremely slow. This is the area where I think Microsoft needs a lot of improvement. For example, I created a flow in Automate to do a task and created the same thing using Python to do the exact same task. To be a fair judge, I created them exactly the same, down to the loops and if conditions. The Python script did the task in 4 seconds, the Automate flow took 1.5 hours. Yes, I knew that there would be some additional delay when using Automate, but this is just unacceptable. Also, these 1.5 hours are when the flow was successfully executed. Sometimes it just crashed for no reason.


Final Thoughts

Honestly, I can go on for hours ranting about the issues this platform has, but I know that this tech is still new, and the possibilities for this are amazing. The documentation and the community issues will surely be fixed once more devs and organizations start moving to these platforms for their basic app needs. Issues aside, I am really excited to see the new features and generations of these "Low Code, No Code" platforms that are yet to come.

But as of now, I can recommend this for basic or very small apps, but if you need a complex app, I would prefer to stick to the conventional methods, for now.


Tags: | Low Code No Code | Microsoft Power Platform | PowerApps | PowerAutomate | App Development | Coding Alternatives | Software Development |