Thursday, September 22, 2022

Power BI Governance & Administration - Naming Conventions


Governance and administration, quite the exciting and popular topic. No? Well, it should be!
As I mentioned in my previous post about Governance and Administration, I have quite some experience and ideas around this topic. I thought it was time to share some of this knowledge and write it down.
I did a few posts on the topic already, including on PowerShell, the Power BI REST API and organizational visuals.

Let's Talk Naming Conventions

So let's start with the question:

What is a naming convention?

"Naming conventions are general rules applied when creating text scripts for software programming."

That's the Techopedia definition, which mostly applies to (traditional) software programming. This still applies to using it while programming SQL, M or DAX for example.
It can be any agreed syntax like one of the following:
  • ThisIsPascalCase
  • thisIsCamelCase
  • this-is-kebab-case
  • this_is_snake_case

But I think it's much broader than using only programming naming conventions these days.
In the context of Power BI, you can use naming conventions in (literally) all things that need a name, like gateways, workspaces, apps, etc.


So why would you want to set up a naming convention for anything?
"They have many different purposes, such as adding clarity and uniformity [to scripts], readability for third-party applications, and functionality in certain languages and applications."
That still mostly applies to programming. I'd argue that in the context of Power BI it's also easier to find things in your Power BI ecosystem. Not only for Power BI/IT Admins, but also for report builders and end users.


And how do we set up a naming convention? I would say "it depends". 😁 Take a look at the never ending discussion around spaces or tabs.

I think it's not a matter of how you implement it, but the fact that you think about it, implement it and enforce and/or govern it. It's better to actually think about and agree upon a certain convention then to do nothing.


And where do we use naming conventions? Because they started in traditional programming languages the logical place(s) to start are M and DAX.
I think the below 2 are the best known once for DAX:
  • Always write a Column in the format TableName[Column Name]
  • Always write a Measure in the format [Measure Name]
There are already quite some good resources available that talk about M and DAX:

But besides using naming conventions in programming languages, good places to (start) using them are also:
  • Gateways
    • Gateway cluster/installations itself
    • But also the Data sources in the gateway
      • I like to include the type of gateway (File/SQL/...), location/server/database and the username, because that's still not visible in the new Power Platform Admin Center...
        You can vote for the idea View Username Of A Gateway In Data Source Settings :-) 
  • Workspaces
    • Marc Lelijveld (@MarcLelijveld | B) already did a comprehensive overview of workspace setup and naming conventions in this blog post.
    • The name of a workspace can be 256 characters long, but just because you can, doesn't mean you should, right?!
    • I also find the Implementation Planning docs very helpful, especially the don'ts in a workspace name:
      • The word workspace
      • The words Power BI
      • The name of the organization, unless B2B is used
  • Apps
    • These don't always have to be the same name as the workspace, as the App is usually what all end-users see, and the workspace access is limited to a subset of people.
    • Melissa Coates (@SQLChick | B) does a great job explaing Why to Use a Power BI App
  • Dataflows
  • AAD-groups (used for Power BI)
    • If the groups are used in a workspace, try to include the name/naming convention of the workspace itself, and maybe add the group(s) of users, like [workspace name]-admins/members/viewers
  • Premium Capacities
    • In case you only have 1, then it might make less sense, but in case you have multiple capacities, for me it makes sense to incorporate the type of the capacity in the name. So either P1/2 or the number of v-Cores asigned to that instance
  • Identity & Access Management
    • This might slightly be off-topic for most Power BI users, but if Power BI Admins are working closely with the IT/IAM team/system, and users need to get access to workspaces/apps via IAM, syncing the naming between Power BI, AAD(-groups) and IAM requests might be a good case
  • ...?


I mentioned a lot of places where naming conventions can be beneficial. I use them because they promote consistency, and can provide more readability and clarity.
Have you implemented naming conventions anywhere? How do you use them? Or why not?