Project Summary

Sometimes reports in Power BI are slow and it’s difficult to know what causes these performance issues and how users can fix and improve them.

Performance analyzer will allow report authors to easily see the effect of every interaction on a page. This includes how long each visual takes to refresh and where the time is going. By using this tool, authors will be able to produce reports that are much more responsive for their end users.

What Was the Problem?

Some reports in Power BI have performance issues and users having hard time figuring out what causes these issues. We needed to design a solution for this problem.

What I Did?

I had to discuss this scenario with product owners first to see exactly what usually causes these perf issues. After that I designed some early mockups and tested them with users and kept iterating on them until we reached a good solution.

Who Did I Work With?

I worked closely with product owners, developers in this scenario. We did multiple user research and worked with researchers and content writers to improve overall design.

Process

After initial discussions with product owners and developers and understanding constraints and requirements I started designing step by step mockups for this scenario and reviewed them after each iteration with team to see how we can improve these concepts until we reached a good design to move forward.

View of couple of iteration that happened during this project

Concept 1 – Ribbon Entry Point

For first round of concepts we decided to use ribbon as entry point which had 2 actions inside its drop down and showing results of analyze in a modal box.

Design

Description

1. User needs to select an option from performance analyzer button in ribbon.

 

2. Analyze the current page which refreshes the page and return results of this page. Start monitoring report which start analyzing in background and user can start interacting with whole report while analyzer keeps tracking of all interactions and when user stops it, it will return results.

Feedback

Users were able to find this entry point.

3. After selecting analyzing the page, a modal box pops up and in background page gets refreshed.

Popping up a modal box every time user wanted to start this process was really distracting since it was blocking view of user report.

4. When refreshed is done, modal box shows the analyse report for visuals in the page.

In future releases we wanted to have a place to show more detailed and advanced information about each row in results table. This modal box was not a best place to show these information.

5. By clicking on Start monitoring the report, performance analyzer starts to capture all user’s interactions on report level and on every page and it stops when user clicks on stop.

This step wasn’t really clear to users and they were not sure what to do in this step.

6. When user clicks on stop button, modal box shows the report of user actions in that session.

Major issue about this concept was users were not able to interact with report since we show results in a modal box. We wanted to let users click on each row of result and see affected visual in their report.

Concept 2 – Pane

In this concept we moved the performance analyzer to sidebar as its own separate pane.

Design

Description

1. Analyze the current page which refreshes the page and return results of this page. Start monitoring report which start analyzing in background and user can start interacting with whole report while analyzer keeps tracking of all interactions and when user stops it, it will return results.

Feedback

Users were pleased with the initial look and placement of the feature.

2. When user clicks analyse current page, we refresh the page and show a message about analyzing the page and will show results when it is complete.

Couple of users had trouble understanding difference between analyze current page and report.

 

The message in pane and also loading spinners on report page were clear to users and they understood what is happening right now.

3. Here user can see the results of the analyzing in a table view. Each row has a colored bar that shows the performance of that visual, they are green, yellow and red. We can show an alert icon in front of cells that seems having issues. Users can hover over an item to see some description about that issue. They can export the results to examine it more.

Users wanted a way to see more details about each row in the table, like expanding the row by selecting it or a separate section below table.

 

Users asked to highlight related visuals in report by hovering over each row in table.

 

Using those tiny colored bars on left side was not accessible and some users had problems recognizing them.

4. By clicking on Start monitoring the report, performance analyzer starts to capture all user’s interactions on report level and on every page and it stops when user clicks on stop.

Sorting might be helpful in table, like sorting by query time which can help users identify issues faster.

 

Using the yellow bar might not be best solution to stop the monitoring since our web version doesn’t have this bar.

5. User can expand the page row by clicking on + icon and see individual visual’s stat.

Some users suggested that in some cases they might only want to analyze a single visual instead of whole report.

Concept 2 – Pane – MVP Design

We improved upon pane concept, made it easier and simpler to use with less steps.

Design

Description

1. We merged analyze current page and start monitoring actions into one action, Start Monitoring Report and added Refresh, Stop buttons. This solved the confusing issue that some users had about two different actions and wasn’t sure which one was the right action and removed extra unnecessary steps for this scenario.

2. By clicking on Start link report gets refreshed and results will be populated in table.

 

3. To get details of current page, user needs to start monitoring and click on refresh link in pane

 

4. By selecting a row in table, related visual will be highlighted in report page.

 

5. After starting analyze, table gets populated with a timestamp of when user started monitoring and waits for user input on report to capture.

6. By selecting a visual in their report users can analyze that specific one only and see results in table.

Some of Users Feedback

Power BI Official Sync Slicer Announcement