ALM for Power Platform – Part 1 – Introduction

Introduction

ALM is an advanced concept from software development. So, if you want to go deep into it, of course, it is not simple. Additionally, this concept, together with Power Platform, is still rather complicated because it engages many different tools and concepts.

In this series of blog posts, I aim to demystify the concepts around ALM for Power Platform. My approach is not to overwhelm you with many terms and concepts altogether. Instead, I want to start from the basic scenarios and move on to the advanced ones. So, we face the problem first, then see the solution, and that way, you will gradually grasp all the concepts needed.

Audiences of this series

ALM is a practice that is more about people than tools. Therefore, you do not need to be responsible for implementing ALM to learn more about it. If you are a team member in a Power Platform project, whether as a Citizen developer, a Functional Consultant, or even a code-first developer whose role is not implementing ALM, you are very welcome to this topic, and I recommend learning more about it.

I compare it to driving a car. A car driver who understands how various car parts work together (engine, transmission, brakes, etc.) is likely to:

  • Drive more efficiently
  • Recognize potential issues earlier
  • Make better decisions in various driving situations
  • Perform basic maintenance more effectively

The same comes to you here, if you know more about the ALM concepts. You understand better the policies and you know the whys behind them.

I said I would not overwhelm you with concepts at first. However, in order to explain the concepts, I need to define some basic terms here. These are not necessarily sophisticated ALM terms; instead, these are the terms I need in this blog series.

First term – Product

Power Platform is a suite of products. As the following picture depicts, it consists of many different products, which are mostly referred to as Power Platform Components. However, I don’t use the word component for them in this series, as I need this word for one of the core concepts of ALM for Power Platform. Therefore, when I use the word product or Power Platform product, I want to mention any of the Power Automate, Dataverse, Power Apps, etc.

Second term – Component

As you might know, Power Platform products were not designed together, let alone designed to have an ALM practice as a whole. Most of these products were implemented independently, with their own tools and editors and different working mechanisms. In addition, ALM, with the modernized concept, is younger than most of the products of Power Platform, such as Dataverse or Power Pages.

However, Microsoft has massively evolved these products in the last years, especially after bringing them under the umbrella of Power Platform. They have also gradually generalized some common concepts and tools in these products, which is great work and it is still in progress.

One of the common concepts among these products is components. No matter which product you work on, the outcome is something called a component. That’s a wide spectrum of software modules with different features leveraging different technologies and different ways of operating. For example, Power Automate Cloud Flow, Classic Workflow, Web resource, Table, Column, Form, Plugin assembly, AI Builder model, and so on are all components.

Component is the most important building block of ALM in the world of Power Platform. This core concept and the way it is stored affect all concepts and tools we use for ALM practices. We will dive deeper later.

Third term – Environment

Another important concept that is a building block of ALM is the Environment.

The environment in Power Platform is many things, and it consists of many different topics. Nevertheless, I don’t want to investigate it in detail now. For now, let’s keep it simple. In terms of ALM, we need to know the relationship between environment and component. In fact, a component only exists inside an environment. Although you can store components as files outside of the environment, you are not able to see them in working mode or even in edit mode outside of it. Simply put, components are meaningless without an environment.

Besides that, an Environment in a Power Platform is an isolated place with extensive security management features. The important point is that this is where both of the following can happen.

  1. We can create or edit our components inside the environment.
  2. End users of the final outcome of our project can use the components and see their runtime behaviors.

We will see why these two points are important and how they affect the whole ALM practice. From my point of view, that is the cause of making ALM for Power Platform rather complicated.

Fourth term – Editor

You are probably an expert in one or more Power Platform products, and you know how to make components.

Each Power Platform Product has its own tools for creating components. Each tool might have its own name, such as Studio, Designer, or something else.

However, I want to use only one name, editor for all. Because what I care about is that it is a tool with which we can edit our components. Let’s review some examples to clarify further. There are some simple editors, such as a column editor in Dataverse:

Or you might have used a little more sophisticated editor, such as Dashboard editor:

Or another one that you create your bots with, which is called Copilot Studio:

Or here we have the Canvas app studio:

or Dataverse Table Form editor:

You know that this list continues. However, we are on the same page now. Depending on your skills, you might know one or multiple Power Platform products, and you work with different editors. The editor is the tool you use to create your masterpiece, and in the end, the outcome of your work is one or more components.

Final Term – Magic

Digitalization is a term that has been used for many years since the software industry was born. However, digitalization used to involve code development using advanced programming languages such as C#, Java, etc, and it is still the main part. Nevertheless, with Power Platform, it is more about making components that work together to create a final digitalization solution. A digitalization solution is going to solve some business problems or make business easier. Although the word solution is a great word to refer to the outcome of a digitalization project, I will need this word for a specific technical term in ALM. Therefore, I want to use the word magic as the replacement, which still makes sense. A digitalization solution, indeed, is magic being made by a fusion team or even one maker.

From now on, when I use the word magic, I mean the whole digitalization solution that you have made or are going to make. It might be just one app or a bot, or it might consist of many different components. The word magic covers all properly.

So, now I can say that in this blog series, we will delve into ALM concepts around that magic.

Conclusion

You might be wondering why I started the whole topic around ALM without defining it! 😉 Don’t worry; I didn’t forget it. As I said, my aim is not to discuss the terminologies and concepts without clarifying the needs first. Therefore, I will explain the problems first, and we will find the solutions together.

See you in the next blog post. 🙂

Leave a Comment

Your email address will not be published. Required fields are marked *