Power Apps, Don't Forget to Read the Small Print
Tags: powerapps, powerplatform, lowcode, citizendeveloper
Published: 2022-08-29 06:31:32

The undeniable power in the Power Platform is its 'Low Code, No Code' philosophy, which empowers anyone to create business level applications and solutions.

Removing the bottleneck of recruiting Developers or Analysts can only be a great thing for a business, but is it the great thing for you?

So let's go to the beginning and explain. We all have ideas for how to improve our workflows and having the knowledge and tools to fix it isn't the norm. That's what is great about Low Code, No Code solutions like Power Apps, they allow those with business knowledge of the workflow to come up with a solution.

Having the power to create these new solutions isn't just empowering, it can be quite addictive. I doubt i'm the only one who went on this journey:

1. Fed up with a workflow
2. Tried to fix it but got nowhere
3. Discovered Power Apps, taught myself and created a solution
4. Shocked/Impressed with benefits of the App
5. Immediately started to look for the next app to make

With how quickly you are able to see the fruits of your labour, Power Apps (and other Low code, No code platforms) stimulate the very same parts of our brain that 'Facebook likes' hit, instant gratification. So you can see in some ways how it can be addictive, and like all addictions there are some negatives, the main 2 are:

- **Solution focused not Problem Focused**
- **Beyond Code Overheads**

---

So lets start with "Solution focused not Problem focused", this is common and often a default behaviour, but what do I mean? The problem should dictate the solution, so we should never approach a project with "I have this great tool, what can I fix?", we should be thinking "This is my problem, what is the right solution?". Just imagine if a mechanic approached their work with "What can I fix with my new screwdriver?", either the most important thing wouldn't get fixed first or worse, something would be fixed to a low quality because the wrong tool was used.

As I said this is a default behaviour, when we know something/are an expert in, then we instinctively want to leverage that expertise and have knowledge bias. Recruitment, job descriptions, roles and responsibilities all ensure there are guardrails to get the benefits but control that bias. With Low Code No code suddenly we are doing things outside of that, often a innovation or personal project, and those guard rails aren't there.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/slaluh2wuzhpkpietgbx.png)

---

Now onto "Beyond code overheads", and trust me, this is the one that will get you (and if you are unlucky enough to have previous issue you could have a few of these stacked up before you realised). Microsoft and other Low Code, No Code software companies are like all companies, they only show you the benefits. Everyone knows that Ibuprofen eases headaches when they buy it, what they don't see is the 30 possible side effects in the small print. And Power Apps is exactly the same, they have simplified the coding and UI part of the process, but what they haven't told you about is everything else, just to name a few:

## Technical Support
When you are creating and using the app you may find the odd bug, but wait till you have multiple users. All using it in different and unexpected ways, the bugs will flow in. Then you are juggling your day job and tech support for all those users. If you don't have a process and organisation this can descend into chaos very quickly. Then add the App becomes business critical (like you hope) then there is the added pressure to fix it quickly.

## Evolving Features
In addition to all those unexpected updates for bugs, you have to think about all the new features and standard updates that you will be required. Apps are not children who grow up and leave the nest, they require attention forever (just look at the android facebook, version 370 and counting). Updates due to database changes, refresh to UI & theme, and all those users will want different exciting features will be required regularly.

## ALM (Application Lifecycle Management)
How do you manage all of those updates for bugs and new features? Now the app is in use you can't just do updates on the fly. You need Dev / Test and Prod environments, each with not only a copy of the app, but databases and other connectors. Are updates run through an approval process, if so who is the approver? Setup, organising and maintaining this process can be incredibly time consuming.

## Security / Audit
The last thing we want or like is a knock on the door from audit or security. But anything that uses data (and nearly every Power App does) has to think about data security. How is the app secured, and the data (at rest and in transit). Then you have to think about data legislation (GDPR), does it have to be disclosed, is there a retention period rule. Rolled into all of this is how you track/prove this, yep how do you log everything. Power Apps has no logging (unless you use Azure App Insights, which requires the Azure/O365 team support and is anything but low code).

## Administration
Every app will require some basic administration as well. There are the simple things like how to control the users and guides, but then there is all those changes to data / connectors to other systems you use. And for all those things outside your control you need to invest into creating good relationships with those departments, as the worst way to find out about an update to a connector is through a users bug report.

---

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5sokig9apghmmujj4nmi.png)

The thing is though, Power Apps is great, and I really mean that. It's a fantastic tool and can deliver some incredible solutions for you and your business, but with everything you just need to know the highs and lows.

For rapid prototyping, disposable/short term Apps and simple (generally SharePoint based) Apps it is fantastic. And for those big complex solutions, it should be considered in the tech stack, but just remember, it isn't the tech stack, and you will need lots of support from your IT departments.

So now you know the small print don't let it stop you creating those apps, just make sure you are prepared and ready for everything else that comes with it.