Skip to main content

Building a One Page Strategic Plan in PowerApps

Author by Nathan Lasnoski

So… we were working as a company to construct our One Page Strategic Plan. We’d used platforms before that had similar concepts but none of them integrated with Teams or any of the Microsoft ecosystem. I was not happy about implementing another walled garden for our executive team, so I set out to use some weekend time to create a One Page Strategic Plan in PowerApps. The first iteration isn’t perfect and certainly shows some warts from the gaps that PowerApps specifically has, but it looks and works very well for our purposes. I’d think this is fitting for most executive teams. I’ve also decided to make this project Open Source, which you can access from the GitHub repo here.


First, what is a One Page Strategic Plan?

A One Page Strategic Plan articulates the goals of an organization from start to finish. The beginning of the plan is Big Hairy Audacious Goals, align a Sandbox where you will “play”, establish 5 year targets, then establish 1 year targets. A OPSP is the foundation of any business planning and establishes a clear target for the organization over a period of time.

So, why build one in Power Apps for Teams?

I decided to create on in Power Apps for Teams because I believe in the OPSP as a core tool for business planning and the tool was locked up in walled gardens or word templates. We needed something that would exist right along with the other planning tools we were using in Teams. I also wanted to test out a few Dataverse oriented ideas as part of the testing.


What does it look like?

You can see below the result of the first version of the One Page Strategic Plan in Power Apps for Teams. The OPSP uses Dataverse for Teams (meaning each Team can have its own) – like a micro-OPSP, as well as the company one. Also, it’s easily fit in the one-page interface, causing no scrolling to see the whole plan. The elements, such as BHAG, are made up of tables in the Dataverse exposed in gallery containers in Power Apps. You can see the groupings below.



How was it done?


Let’s walk through how the Power App was initially created and over time we’ll find ways to make it better and better through the Open Source project. The first step was to define the data, which I did with a series of Dataverse tables for Teams.


Table List:

The table list is visible below, which shows all the Dataverse for Teams tables created for the project. This can expand over time as the project takes shape.


Inside a Table in the Dataverse:

The inside of each table has its the necessary fields for that component. For the most part, they have a “name” and that’s it. I’d think this is another thing we could expand over time. Right now it is “keep it simple stupid”.

Table Gallery

So, for each table there is a label and “new” button outside the gallery container. The gallery container then includes the “save” button, “delete” button, and TextBox for the Name value of the table. These then scale vertically inside a prescribed size that you can adjust. In order to build this I used the empty gallery the first time, then just started copy/pasting/rename.


The code for the new button was (OnSelect):

“Patch(Strategic_5_Year_Targets, Defaults(Strategic_5_Year_Targets), { Name:”5 Year Target” });”

The code for the save button was (OnSelect):

“Patch(Strategic_5_Year_Targets,ThisItem, {Name:’5_Year_Targets_TextBox1′.Value})”

The code for the delete button was (OnSelect):

“Remove(Strategic_5_Year_Targets,ThisItem);”



To Publish (if creating from scratch)

The publishing process for Teams was pretty easy. You select “Publish to Teams” and then choose the Team to publish to. This was simple. The harder part was to come later.



Importing into a Team

The process of importing into an existing Team is pretty simple. Just select the code from GitHub and import using the Import Wizard. This includes the process of creating the Dataverse for Teams, as well as the Power App.


Exporting

To similarly export after making changes, or to import to another team, select the app in the Power Apps interface (THANKS Anthony Escabedo) and dump it to a zip file. If you want to contribute to the project, bring it into the GitHub.



The GitHub

So, I KNOW there are way better ways to make this Power App. So, if you want to contribute to making this project better, check out the GitHub Repo and let’s work on it together!



Looking forward to seeing what you build!

Nathan Lasnoski

Author

Nathan Lasnoski

Chief Technology Officer