Self-service BI allows users without technical knowledge to create their own reports in a much easier and faster way. Business users who would need to rely on IT departments for report creation are now able to access, create and distribute their own content without the IT at all. This approach sounds very appealing to many organizations because it promises simplicity to what was previously a complex and long process. The reality of self-service BI is far more complex and difficult. it comes with many challenges that organizations should be aware of. In this blog post, I want to talk about what self-service BI is and how it can be managed with Power BI in order to allow users to take full advantage of their data.
What is self-service BI?
Gartner provides us with the following definition;
“Self-service business intelligence is defined here as end users designing and deploying their own reports and analyses within an approved and supported architecture and tools portfolio.” Source: https://www.gartner.com/en/information-technology/glossary/self-service-business-intelligence 14 Oct, 2021
Why the need for self-service BI in the first place? Because IT departments are slow! They take their time to develop, test and deploy things to production. They follow best practices. Projects need to be planned in, resources need to be allocated and by the time a new report gets pushed to production, it is no longer needed by the business or users found a workaround to manage without it.
And that's where self-service BI comes into play. Users no longer need to wait to have their reports built. With some basic understanding of data modeling and tools like Power BI together with some knowledge of SQL or DAX users can develop fancy and colorful reports on their own in a short period of time.
Problems with Self Service BI
What is the issue with such an approach? There is a couple of them:
Data security and access. In order to create their own reports, users usually gain full access to systems they shouldn't have access to. In addition to that, most of the time the reports wouldn't have any security implemented in them. Reports get shared with other people who themselves shouldn't have access to the data.
Low data quality. Oftentimes, the data in the reports is wrong because It was never validated. There isn't a common process to follow when developing new solutions. Everyone creates their own content. Two people with the same data will create three versions of the same truth. The data cannot be relied on and can lead to bad decisions.
Maintenance. The newly built report worked fine for the first few weeks. But then, all of a sudden, it stopped working. Who should fix it now? Who is the business and technical owner? Who should maintain the report and make changes to it? This creates a lot of technical debt which will be costly to pay off.
Self-service BI can easily turn into a nightmare. Without proper governance and best practices, the solutions built in such ways will fail long term. The IT, or power users need to be involved to some extent in order to solve these problems. It will take more time to develop, test and deploy but that is the price we have to pay in order to have good data and low maintenance costs.
Buffet restaurant analogy
A self-service BI solution should be like a high-end buffet restaurant. The food served is of the highest quality and there is a big selection of different meals to choose from. A customer can grab anything they want and just enjoy his/her food without needing to cook the food him/herself because the food was already prepared by a professional chef who has the necessary skills, experience and knowledge to prepare food and serve it to people. Customers don't cook because they don't have the necessary skills to do so. Sure they can try but the food will never be as good as if it were prepared by a professional chef. With a big selection of starters, salads; soups, main courses, desserts and drinks, a customer can have any food (s)he wishes.
We can compare IT departments or power users to the said master chef. They prepare the data for the end-users in form of datasets. The end users can connect to datasets and get any data they want in a controlled and managed way. The end-users are not the ones creating the datasets. They are only using the datasets to get the data they need.
If we go back to the food analogy; unmanaged self-service BI would look like the picture below:
Managed self-service BI with Power BI
In order to avoid this chaos, we need to manage and control our self-service BI. End-users can create their own content but from pre-approved datasets that were created by IT departments or power users.
Self-service BI can be achieved using a number of Microsoft/Azure offerings, for instance, Power BI The data from PBI is published to Power BI service in the form of a PBI dataset. A dataset can then be used to create multiple reports that users can view and share with others. A user does not create the dataset. The user can only consume the data from the said dataset. This approach gives the users the flexibility of creating their own content but in a managed way.
A PBI dataset is one of the best ways to offer self-service BI solutions to users. It solves all the problems I talked about:
Data security is implemented on the level of the dataset. Eg each dataset can have row level security (RLS) in it and a user needs to be a member of a specific group in order to be able to connect to it.
The dataset is built by the IT or power users who make sure the data in it is correct and can be relied on.
The dataset is maintained by the IT department. They are the ones responsible for any changes and making sure it works as expected.
Let's have a look at this PBI data lineage below. We have three reports, all three are consuming data from one PBI dataset which gets its data from Google Analytics. Since the dataset has RLS in it, the users can see only the data they are allowed to see. The data in the dataset was tested meaning that the users can use the data in their decision-making and expect consistent results. Any changes to the dataset will be done by the IT department. They are the ones responsible for the dataset maintenance.
Users can create any number of reports they choose. They can do it in four ways. They can connect to it using PBI Desktop, PBI Builder, PBI Service or MS Excel.
Connecting to the dataset from Excel allows users to build adhoc pivot tables. If they want some fancy visualizations and be able to share the data with others in an easy way they can choose to create their own reports in any of the PBI tools. Using any of these four ways to connect to data and create your own content is a great example showing how to manage self-service BI. On one hand, we give users the flexibility of creating their own content but on the other hand, we are in full control of the data they are using to create the content, just like the buffet restaurant ;)
*An important thing to mention is that users would need to be trained in how to use any of these tools. They would also need to understand the PBI model eg model relationships and what the data represents in order to be able to use the data correctly. It is thus always very important to make sure that users receive the necessary training before they start using the dataset.
Self-service with SSAS
Another MS/Azure offering that can be used to have managed self-service BI is SQL Server Analysis Services (SSAS). SSAS allows us to build multidimensional cubes and tabular models. Users can connect to the SSAS solutions from Excel or directly from PBI. The PBI dataset is then just a connection to our SSAS cube/model.
Self-service BI means writeback
In order to call something a true self-service BI solution; the solution should offer users writeback capabilities. A user should not only be able to create his/her own content from a preapproved dataset but (s)he should also be able to create his/her own data that is then added to the model. There is a number of tools that offer this functionality. When it comes to PBI, two of the most well-known ones are PowerON and PowerApps. You can read my blog post about self-service BI with PowerApps here. There, I talk about how to architect a self-service BI solution with PowerApps together with a number of different Azure offerings such as SSAS and PBI.
Being able to allow users to create their own content without the involvement of IT sounds very appealing but if it is not managed properly it can create many problems with data quality, data security and data maintenance. In theory, self-service BI sounds great. In practice, it can easily become a nightmare. Users should be able to create their own content but in a managed and controlled way. I believe that some involvement of the IT department should always be necessary.
Managed self-service BI can be achieved with a number of products, one of which is PBI. PBI allows us to create datasets that users can connect to in order to create their own content. This approach gives the users the freedom to create their own content in a controlled and managed way.
I believe that self-service BI should always be managed. Allowing all users to create their own reports may offer some short-term benefits but it will come at a high cost later on. Properly engineered BI solutions based on best practices developed by people with the correct skillset will pay dividends long term even if it seems more expensive and time-consuming in the beginning. Long term, the overall cost will always be lower.