What I (as a non dev) learned as I created my first Power App
The purpose of this blog is to share my very own experiences while building my first canvas app. I have no tech background and at the beginning I thought that I could never do it. But now, looking back, I’ve learned so many things. Not only about functions and Power Apps syntax, but about the process of building apps, learning from failure and community.
I hope you find that helpful, get inspiration or learn anything from it.
But now, let’s dive into the topic, without any further delay: Here are 9 things I’ve learned while building my first canvas app. Why only 9? Why not 10? Because I want to leave room for improvement 😁
1. Canvas App vs Model driven app
The first question I had for myself was “Do I want to build a model driven app or a canvas app”? And since I had no idea at all, I tried to go for a model driven app. The app will be modelled around your data, so it sounds like this would be a lot easier than starting from scratch, right?
For several cases that remains true, but actually it depends from which mindset you’re coming. If you’re familiar with your data and have an idea about how data may be presented within an app, model driven apps are your way to go. It makes it really easy to design an app with little clicks.
If you come from a non-tech background, like I did, maybe a canvas app is the better choice. I had a very clear image in my mind, how the app was supposed to look and perform. If you start with a model driven app you must customize it heavily until it suits your needs/ideas. And I actually found out, that while customizing it, I was deleting and editing connections, that came automatically. And then everything broke. Nothing worked anymore and it left me so frustrated.
For me it was so much easier to start with a canvas app. There is nothing there, just the plain white canvas. And that had two very important effects:
1. I was forced to build the app step by step and let it grow over time.
2. I learned how the connections, items and bits worked from the very beginning.
Let’s get into those two aspects a little bit deeper, shall we?
2. Scavenger Hunt. Build your app bit by bit
If you build your app step by step you are forced to think about an MVP in the very beginning. I don’t talk about the Microsoft Most Valuable Player, but a Minimal Viable Product. Ask yourself: What is the basic functionality that my app needs to work? That is a very important question at the beginning. After you’ve created your MVP you can add functionality and features step by step.
And that leads to a much more fulfilling learning experience. You will have multiple tiny success experiences and your confidence will grow. You will get the feeling, while your app grows and gets more functionality, it will become YOUR baby. Your thing, that you created out of nothing. There’s hardly a related feeling.
3. It’s Trial and Error all the time
Start with a canvas app and add functionality piece by piece. If something doesn’t work, you know exactly what you did, before it broke (at least in theory). That makes troubleshooting so much easier. If you start with a model driven app, you have no idea where to even begin with looking for possible problems.
But in your own canvas app, you can recreate the steps you’ve taken, before something stopped working.
And you will experience this over and over again: It’s trial and error. Get comfortable with the feeling, that this may be long way. Frustration and anger are natural parts of this and it’s perfectly fine. When you solved a problem that seems impossible to even understand at the beginning, that’s the moment when you really learn how these things work.
Get used to it and embrace failure as THE way of learning.
4. You’re constantly reading Microsoft Docs. All the time
Usually I have an idea in my mind, what I want my app to do. Then I start to google, if this is even possible, I’ll find the right function and read on Microsoft Docs how this works. I try it out. Doesn’t’ work? Back to Microsoft Docs. Are all the circumstances okay? Did you use the same data source as MS docs describes it? Try it out again. Still not working? Back to reading MS docs.
Actually, I found myself more time reading instructions, than really working in my app, but that is part of the process, too. Even people who are familiar with Power Apps and are deep into the topic have to check up things again and again. MS docs has (nearly) all the information you need to make this work. It’s all in there, but you have to be prepared to dig into this. Really deep.
5. Knowing about the Power Apps Community is crucial
MS docs may have the answer to your problem, but quite often I couldn’t find the right answer, or I didn’t understand the answer at all (no tech background, remember?). That is frustrating. So much.
But you can be sure about one thing: Somebody has been at exactly that point, where you are right now. And that’s where community comes into play. There are so many amazing people out there who love to share their knowledge, give you hints and tricks. There are blogs, video tutorials, the Power Apps community forum and an endless list of other sources, where you can get help.
Next to MS docs this is the most useful source of information, by far. Quite often these people don’t give you a plain manual but describe their problem and their solution. That makes it easier to understand it yourself.
6. Find someone who can take you by hand
MS docs and the community are awesome. Hands down. But I found myself in a couple of situations where I wasn’t really able to explain my problem (I didn’t know this at this point yet). And that would make even the best manual/explanation/tutorial useless.
THIS CRAP ISN’T WORKING AND I DON’T KNOW WHY. I DON’T EVEN KNOW WHERE TO GET HELP ANYMORE
I’ve screamed something like this a thousand times, I swear. At least. And do you know what helps? If you can talk to someone, who’s been there. If you struggle to solve your problem on your own (even with a good tutorial at hand), reach out and talk to people. Even better, if you can show them what’s not working and where you are at the moment.
If you spend some time building your app you sometimes struggle to see the obvious. A view from someone uninvolved is so important. I found myself emotionally involved and too frustrated to remain calm and clear. My view was too narrow and too focused to see new ways to the solution.
And quite often I shared my screen with someone and before I even explained my problem, the other person knew what was wrong. I was just buried too deep into my problems and views.
And believe me, there are far more people out there, who are happy to take your hand and show you a couple if things than you may believe. I had to overcome myself to ask not only for help, but for people showing me how things work. But the member of the communities are eager to help. Shall I tell you, why so many of them are happy, if they can help you and show you stuff?
If you teach, you’ll learn. If you explain something to somebody else, you are forced to explain it in a way that the other person understands. And therefore, you must learn, how to describe things from different perspectives. Teachers don’t just give away their knowledge, they’re gaining experience and get deeper into the topic themselves.
It’s a win-win situation.
7. Always insert, create, make!
“Nothing will work, unless you do!” – Maya Angelou
Try things out. Insert a function, create a button, make things work. As I mentioned earlier, building an app is trial and error and therefore you have to do something. Every action you make, everything that you try out, makes you better. Makes you understand more things. Lets you learn.
So, before you google and read for ours, go out there and try things out. Yes, it may be frustrating, but that is part of the learning process and it’s actually good for you.
If you are building a canvas app, you can undo every step you take, so there is actually little risk to try things out. Click and see, what happens. It will teach you a lot.
Here is a little trick that I found especially useful: Always make a button. What do I mean by that? For every new function I want to try out I make a new button. It doesn’t look good, but it gives me the possibility to test a functionality in an own, separated environment. There are no other functions on that button but the one I want to test. If it works, I copy the code and paste it into the place, where I originally wanted it.
8. Form follows function. Make it work, then make it pretty
I think this point should be obvious from what I explained earlier, but this was hard for me to learn. You take care of the functionality first; then you work on the looks and the interface. Of course I wanted to create a pretty app right away, but that didn’t work out at all.
I ended up with a lot of different buttons, shapes and text all over the place. But everything worked.
From this point on I had all the possibilities to make it pretty and didn’t need to worry about any functionality anymore. That was a relieving point while creating my first app.
If you focus on the functionality first, you focus on the backend first (frontend: the layer the user sees and uses; backend: the functionality layer that no user should ever see). When the backend works, you can take care about the frontend.
You have a lot of possibilities to make a working app look nice. The other way around, getting a nice-looking app to work is way more difficult.
9. Give back to the community. Tell others, what and how you did it
Maybe that is one of the most important parts. I talked a lot about the community, about resources to learn online, about getting help from the community. And all of this only works, if there’s content to learn from.
I guess many people might feel intimidated because their first app doesn’t look that beautiful or offers not that much of functionality.
But that doesn’t matter.
You created something, you learned something and you should be proud of it, so tell people about it. There are many, many people who want to hear about it. And those are thankful for the opportunity to learn from you and your experiences. There are many people out there, just starting, just as you did. Help them, teach them, learn from that experience.
The community thrives from content that is at every level of expertise. Your experiences matters and can help a lot of people.
Give a little bit back, because I’m sure you needed help as well.
That is how we all progress and grow. That is community 💜
I’m excited what you think and if you made similar experiences. Please reach out to me on twitter @Gezeitenbrand or leave me a comment ✌