Power BI: One for All? All for One?


This is a question I always had, but with composite models supports Direct Query for  Power BI datasets, I thought I want to write about it. I feel that with the use of composite models feature in Power BI, we can break Power BI development into two parts, front-end and back-end development. The question I had was “Power BI Developer”: Is it one role or one person is performing multiple roles? Don’t you think a Power BI developer puts different hats when developing a single report?

A decade ago within software industry, a software engineer had to perform different roles such as UX Engineer, UI Engineer, software developer , Data base administrator, Infrastructure Engineer, Business Analysist and all other roles we now find in software development world. But things have changed over the time and we see each person only perform one specific task within a software development project. However, if you look an organization, you will see that a Power BI developer is performing all the roles which I’m going to discuss in this post. I believe this one for all approach leads to most problems we see in Power BI implementations within lot of organizations. Let’s see what are the different roles performed by a Power BI developer today.

Power BI Back-End Developer

A role of a Power BI back-end developer is the most critical role. A properly designed model can make a huge difference in an organization as it makes end users life easy. A Power BI backend developer must know:

  • Data modeling techniques such as star schema, snowflake schema.
  • Good knowledge about DAX query language and concepts associated with it such as row context, filter context, etc..
  • Good knowledge on M-Query language.
  • How to use different relationship types and how relationship direction works.
  • How tabular engine works: Formula engine and storage engine.
  • How vertipaq engine stores data.
  • Standards and best practices on data modeling.
  • How to troubleshoot performance issues.
  • How to use Power BI external tools for data modeling.

I have seen how not having a developer with a solid knowledge about all above areas creates problems for Power BI implementations.

Problem with the one for all approach:

  • Badly written Dax codes causing to performance issues.
  • Bad data model designing could lead to performance and usability issues.
  • Zero or little attention given to standards within data models, naming conventions makes business users life harder.
  • Badly written M-queries leads to data loading issues.
  • Incorrect use of calculated columns, datasets leads to bigger data models which leads to performance issues when refreshing data.
  • One dataset for a one report approach leads to complexities and creates strains on source systems.

Power BI Front-End Developer

It doesn’t matter how nice a data model design is, Business users normal don’t pay much attention to the data model design unless they see any performance issues in reports. What they really like to see is how nice their reports are? How easy to use those reports? how quickly you can navigate between reports/ dashboards and visuals? How easy to obtain insights from a report? To cater all these user expectations a Power BI front-end developer must know

  • Proper usage of colors, font-styles, and icons.
  • Good understanding on different features such as buttons, images, bookmarks and drilldown/drill through features available within Power BI
  • UX concepts such as layout of a report.
  • Proper usage of background image, shadow, and all other UI related properties.

When a Power BI developer doesn’t have a good taste in UI, it can leads to lot of problems for a Power BI implementation which could ultimately lead to business users creating their own reports or going back to excel.

Problem with the one for all approach:

  • Poorly designed dashboards/reports
  • Bad choice of colors and fonts leads to wrong interpretation of data.
  • Bad User EXperience for business users.
  • Wrong use of visuals makes it hard to get insights out of a report/dashboard for business users.

Power BI Administer

Power BI administrator is a separate role which mainly focus on maintaining and monitoring the Power BI environment with an organization. A Power BI Administrator must have a good knowledge on

  • How different tenant settings works within admin portal.
  • How to maintain and plan premium capacities within the tenant.
  • What are the different security options available within Power BI tenant level to make sure organizational data is secured.
  • How to monitor usage patterns within the tenant.

Problem with one for all approach:

  • Security related issues as a developer control whole organizational data and distribution of data.
  • Data security issues as little to no attention given to security within the Power BI tenant
  • Misuse of resources within tenant by business users.

Business Analyst

From my experience, there is often a gap between the business user and the Power BI developer. While business users don’t understand technical details behind a report, report developer don’t clearly understand business scenarios business users try to  analyze within a report.  However, in most organizations, it is the developer who talks with the end user and try to get requirements for reports and provides different options to them on how to analyze data.  When the developer perform the role of a business analyst he must need to

  • Be a good listener and understand the business cases explained by the business users.
  • Provide suggestions to business users about how to use different Power BI features to analyze data effectively.
  • Help business users to create a meaningful data stories using Power BI features.

Problem with one for all approach:

  • Invalid interpretations of data.
  • Invalid or meaningless story telling within reports.
  • Wrong calculations, drill through and drilldown scenarios.



In post I’m not saying that an organization must have multiple people working within Power BI team and each should have only one task to do. But I believe that each member in a data and analytic team must put more time and focus to be an expert in at least one role within a team. For an example, there can be one developer who is an expert in data modeling within a team while there can be another person who has good sense on UI and UX.

Again, All for one or one for all? Have a bit of thinking around this. Thanks for reading and stay safe! Cheers!

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s