Power Platform - More Autopilot than Copilot
Tags: powerplatform, powerapps, powerautomate, githubcopilot
Published: 2023-10-16 06:11:13

Hot take time, I'm just not a yet a fan of Power Platform Copilot, hear me out.

For starters I like Github Copilot, that makes sense to me. Helping do boilerplate code like classes, objects and test scripts, is a time saver. And the ability to predict code and autocomplete is again a great time saver. 

So what's wrong with Power Platform Copilot, well when Github is used like in Power Platform (when you ask a question), it provides an explanation why, and you need to copy it in. This way you learn and you have to implement it, with Power Platform it does it all for you. This feels more like an autopilot than a copilot.

So it's an autopilot, it's still helpful I hear you saying, but there is an issue with that approach, its duplicating the benefits of LowCode.

- Save time on schemas - Parse JSON from sample
- Testing - Record with Test studio
- Quicker code blocks - Components and actions

So for me Copilot is trying to solve the same thing as LowCode, deliver solutions but with less technical knowledge. So why not a copilot/autopilot on LowCode, even easier solutions has to be better, well no, and there are a few key reasons.

1. Simpler Tools Lead to Complexity
2. Challenge and Learning Curve Drives Innovation
3. Diverse Code Pool
4. Over Saturation
5. Technical Debt

---

## 1. Simpler Tools Lead to Complexity

One of the biggest challenges with LowCode is the simplified language. 80% of time you only need 20% of the code. So LowCode quite rightly target that 20%, this is great when LowCode is focused on the 80%. The problem is it is never focused, once used successfully for the 80% it inevitability starts getting used on the last 20%. Here there is no right component or action, so the developer has to create ever complex, over engineered solutions. Copilot will exasperate the problem, as its most likely only right for 60-70% of solutions at the moment, but magnitudes quicker and easier to use.

![procode vs lowcode blocks](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/fs8cfmiwrrrxr7k879hj.png)

## 2. Challenge and Learning Cover Drives Innovation
Without a learning curve things can become stagnant, everyone follows the easy path, because that's the productive way. But for me a learning curve is crucial for innovation. Having different people solve a problem in different ways creates new and exciting solutions to build on. That just doesn't happen if the computer solves your problem for you.

## 3. Diverse Code Pool
Similar to the above a diverse code pool is critical. This is already a problem with NoCode (LowCode not so much), but Copilot will amplify it. If everyone uses the same code to solve the same problem, then any issues (like performance or even vulnerabilities) becomes an  epidemic (just look at Log4J for impact of widely spread exploit). And vulnerabilities will be more prevalent, as the hackers will congregate on these limited opportunities. You may think that LowCode or NoCode has no vulnerabilities because of the lack of code, but that isn't the case. There are lots of different type of vulnerabilities, check out my blogs:
{% embed https://dev.to/wyattdave/ive-just-been-hacked-by-a-power-app-1fj4 %}
{% embed https://dev.to/wyattdave/hacked-by-power-automate-and-how-to-avoid-it-3052 %}

## 4. Over Saturation
This is probably one you never thought about, but what is the sweet spot for number of developers? The more the better, well no, because:

- How do you find the quality in the noise
- How do divert support resources to the right solutions
- What negative brand impact poorly built solutions are
- Costs of resources for monitoring and hosting these solutions
- Loss of productivity from Citizen developers not doing their day job

So not having a barrier to entry, that small challenge of a learning curve could be a negative, as all the talent developers will get lost in the noise of people creating rubbish.

![busy in default meme](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/86zpq7qtt91619372iz3.jpg)

## 5. Technical Debt
And this is the big one, imagine asking copilot to create you a table and do x. Would the developer know where the table is, would they know security roles, would they know what fields are indexed. And if they dont know the above how hard would it be to debug and/or add new features.
Having a learning curve forces the developer to understand what they make. That knowledge is key, occasionally working with other peoples code/solutions is bad enough, imagine only working with others code/solutions.

---

For me I would love to see Microsoft 2 do 2 things.
First change Copilot to be like Github, explain how to do it and why, they can even add it to the clipboard to paste it in if you want it (if they ever get around to adding copy and paste to the new UI, come on Microsoft sort this out!).

Second focus on the other end, allowing LowCode developers to grow into ProCode with more customizations.

![low code to pro code graph](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/kd6whs8wo2f0lo4n67zp.png)

I would love to see improvements to Power Apps component framework - component certification so don't have to open up entire environment, built in code scanning etc. And for Power Automate custom code actions like in Logic Apps, so that JavaScript etc can be added to flows.

I know there are a lot of Copilot fans out there, and I am too, I just don't like its implementation and I think it should be less of a priority when it comes to LowCode.