Self serve analytics solutions are doomed to fail. This is a repeated mantra emerging from either data influencers or the data analytics teams themselves.
Let’s be honest, it is very hard to maintain simplicity on a growing data platform. The more data sources we add, the more features we build, the more complex it is likely to become.
From my experience, chaos can be avoided if we are intentional and methodical about the tooling, the communications and trainings.
I have been running a self serve analytics platform for 2.5 years and for roughly ~200 users. And our active users is growing month after month 📈
It's hard. But not impossible.
The generic tips about data quality, self serve dashboarding and trainings are right.
Yet they lack depth. Authors usually skip the details letting readers figure it out. I propose to analyse together what makes for a scalable and efficient self serve analytics platform.
🏗️ Modern tooling with excellent UX
Letting people self serve reporting using dashboard tooling that was primarily intended to be used by data practitioners won’t really work as these tools lack the proper guardrails and constraints to generate long term value.
Do not think that building tables and letting people access them with SQL will work beyond the data team or at scale.
What I have seen work is a tool which lets users define their own query using drag and drop, a bit like Mixpanel or other product analytics tools. Metrics and dimensions are already pre-defined. Users do not need to use SQL to define them themselves. Essentially the semantic layer is set and should be easy for the data team to update.
In other words the tool should combine the ease of use of Product Analytics tools with the data scale of a well modelled warehouse and BI solution.
It would be tempting to just provide this interface and call it a day. It's not enough, it needs to be simpler than that!
Within your solution you need two layers:
- one which makes the most requested/basic queries easy to surface, it should be 2 to 3 clicks max to get the chart or table they need
- the second one for the more complex use cases; offer a way to create a query from scratch
Also, make it super easy to share queries (from url) and to get the SQL generated for your data team… You need love and support from your data team 🤜🤛
Consider investing in a semantic layer, it really facilitates maintaining the sanity in your tooling and it scales when you add more data sources instead of creating chaos and siloes. Cube is the most advanced open source semantic layer
📐 Prioritise data quality
A great data interface with dirty or incomplete data is just useless. You need to proactively manage data quality. Run frequent checks to make sure your data meet requirements for volume, consistency, completeness. Make sure also it is timely for your end users use cases.
Make sure your users know about the state of your platform’s data quality. A good communication is key here, which leads us to the next.
🗣️ Communicate, communicate, communicate…
Your self serve analytics solution can only thrive on healthy and constant communication. Nurture a community in a slack/teams channel.
You need to be vocal about:
Updates on the data or semantic of the data
Communicate about data quality issues or any unusual metric variation. Make sure experts in the business know about challenges happening with your data platform. Often they would relate your data quality issue with source systems integration issues or a known bug on the product etc…
It is your responsibility to communicate when new issues appear, when they are fixed and any changes in the definitions.
Small examples of queries/use cases to elevate data literacy
If you are the person managing the setup, people will often come to you for getting the data they need to address their use case. You are in the best position to understand which queries are more important to others and in what context. Leverage that by sharing back to the wider group these queries and your findings. People generally love learning with you.
Announcing trainings
Take the opportunity to announce the trainings you or your team are going to give. You’d be surprised by the number of people that do want to learn and also practice more with a refresher.
Updates on the tooling
Of course you need to let your users know about any new feature or any modification with the UI or functionalities supported by the platform. Even better if you share and promote your roadmap. Incorporating your users feedback into the roadmap is the way to let users know their needs are being considered and valued. It’s a mini product management role of its own!
Also there is a whole attitude to adopt that will make your job easier. Basically you need to feel like an entrepreneur. Your mission is to solve your users pain points with accessing and using analytics tools. Great listening skills, patience and resilience are your allies.
🎓 Trainings
Trainings are an essential part of your platform. It can be easy to forget about it. Without them you can’t onboard efficiently your users. The more training sessions the better.
Think about your different user segments. You may have new joiners, confirmed and some power users. They have different training needs.
Also some prefer self serve documentation (guides or short videos) and others prefer face to face classes. You may as well opt for a quick 1 on 1 to onboard people you know will actively use data to accomplish their work.
It is even better if you can make your training material to be specific to a department or a team.
As an example, I have given 12 trainings to 12 teams from 1 department last month and prepared specific training material for each team. That really helped get the users engaged during the training
Avoid demo'ing your features one by one. It is just not engaging for your end users. Instead you should dive as quick as possible into use cases and invite your users to follow along on their laptops so they get quickly to action
Last but not least, if you are a data engineer you need a business counterpart (best if business analyst, someone very data savvy) to partner with. You need them to promote the platform to other departments as well as recruit new joiners for training sessions.
Conclusion
Delivering and maintaining a self service analytics platform requires a variety of skills and sustained efforts on tooling, communication, data quality and trainings. It is ok to focus more on tooling at the beginning to be sure it is ready and functional. Data quality is also important and should never be neglected. Finally always communicate and start giving trainings regularly so your users feel heard and you get a chance to meet them face to face and nurture relationships which will propel both your platform and your career!