Ludicity

PowerBI Is A Human Rights Violation

In 1985, I murdered a man in cold blood over something petty. I can't remember what it was - all I remember was the fleeting sense of relief that the struggle was over, then years of panic, trying to hide what I'd done from the authorities.

Thankfully Microsoft released PowerBI in 2015, so I put all the evidence in a dashboard and now I sleep soundly, secure in the knowledge that no one is ever, ever going to look at it!

Thank you PowerBI!

I. What is PowerBI?

Don't ask questions that you don't want answered. Here's an excerpt from Primagen (a Netflix gigabrain) and TJ DeVries (one of Neovim's core maintainers) learning what it is from their Twitch chat while reading one of my other posts:

Primagen: "PowerBI - as I'm being told - is a data visualization tool like Tableau. Oh, it's a data visualization tool like Tableau. It's Tableau but by Microsoft. Oh shoot, that sounds awful."

TJ: <laughing> "Well that sounds productive!"

I'm not going to provide any more details because you're better off not knowing, okay? This is for your own good. Given conditions in the country I immigrated from, I am a big fan of free speech, but I would abandon all my principles in a heartbeat if it meant scrubbing PowerBI from the collective consciousness.

II. The Hole We Shovel Productivity Into

My first job interview in the tech space was for a data science role, and involved questions about XGBoost and ETL practices, eventually culminating in a very generous offer. In fact, it was exorbitant because I didn't actually have a solid working visa (just a terrible student one) and my answers to the questions weren't very good. Apparently I cleaned up... and that should have been my first clue as to the world I was about to enter.

You see, the two questions were:

"Can you use XGBoost?"
"I've used it before a little bit without any hyperparameter tuning and it did really well, but I'm not scared of the documentation."

"Do you know what ETL is?"
"Yes. (lie)"

In any case, my manager is nonetheless actually quite brilliant, and we begin the difficult task of rolling out machine learning and advanced analytics in our department. We start by producing some spreadsheets for stakeholders that were supposed to be produced by the team that our newly formed squad was replacing.

Uh, and then another spreadsheet. And another. And the spreadsheet pipeline has fallen over - we'll do some advanced work soon! And then finally, one day, I am asked to produce a PowerBI report.

Oh boy, what is this thing? Almost every job mentioned they wanted PowerBI experience, and I was sure lucky that they waived that for me. Hint: they waive it for everyone because it takes like five minutes to learn how to use this piece of garbage to the level required. You will understand why shortly.

You connect it to spreadsheets, then you drag charts onto a page, and it makes graphs that I can't even describe as pretty. If you want to get extra fancy, you may connect it to a database, but this is approaching a level of sophistication that 90% of companies aren't prepared for.

I would say my team produced a new dashboard around once a week, so we probably had made about 50 of the things before the year was out. Basically all our work resulted in a dashboard being produced. Stakeholder needs number, we put number in dashboard, we link stakeholder, done. I hated it because I'm a programmer and this was stupid, tedious, manual, and soul-crushing, but I figured "that's working life, I guess!"

But something still felt a little bit off. These numbers just... didn't seem useful. Sometimes I made glaring mistakes and only noticed two months later when I re-examined my work for some reason. Then I realized you can examine usage metrics.

No one reads them. It's just some stupid long-tailed distribution where three of these absolutely useless fucking things gets read a few times a day (by someone that probably doesn't do anything with the information) and the rest of them don't get read at all. And guess what, I brought fucking receipts.

III. Receipts

I've mentioned elsewhere that I played extreme hardball with my organization this time around - they lost a ton of good engineers in one week, so they desperately made me a higher offer than almost anyone else at my department makes. Better roll up my sleeves - I heard you folks need someone that can write a lot of decent Python without committing any programming war crimes, and I'm the only senior around to do it right.

First task? PowerBI dashboard so that we can monitor access to restricted data. Does this need to be done? Only if we check every day, because in an emergency I can just write the SQL to investigate this on the spot. Ah, fuck, here we go again. I did it, and it has been about a year, so let's take a look at those usage statistics.

my_dashboard.png

Hell yes, zero views in the past three months? I'm so glad that's where we decided to allocate the only senior engineer after paying his exorbitant ransom. We are fully Agile, baby. I could not be happier to have spent my precious hours on this beautiful planet creating this dashboard. Why don't we just have Universal Basic Income? I'm already basically on welfare, but instead of distributing it evenly to people that need it, we're giving it all to me because I say I'm an engineer, and to top it all of you make me pretend to work. Just cut out the middle man and give us the money!

And holy shit, does that say we have ten thousand of these things in the organization? Ten thousand? What? Fucking what? Also...that's weird... when I was glancing around for more dashboards to get data on, I keep getting this notification at the top of my browser.

refresh_notice.png

Due to inactivity, scheduled refresh has been disabled. We're starting it again now. Please check back later.

Wait. Every report has a built-in kill switch on the automatic refreshing if it isn't being used? And every report I've clicked on has hit that limit? I start just flicking through random workspaces. Behold:

nothing_refreshed.png

I can't find anything that has refreshed this month without some deep digging. Eventually I come across something that is used and somehow it is even worse. Feast your eyes upon this putrid buffet:

used_dashboard.png

Oh no. Let's break this down. This organization has 1.8K dashboards. I have no idea why my dashboard's usage metrics said 10K, but suffice it to say this is probably evidence that we must have multiple sub-organizations and thus may have way more than 10K dashboards.

In the past three months, this dashboard has a total of 38 views, so give-or-take, one view every three days... and it's ranked number SIX? If the sixth most-viewed dashboard is getting a view every three days and we know most of them aren't being refreshed then we have almost certainly spent thousands of hours of people's lives, that they could have been spending with their kids or some wholesome bullshit, making thousands of reports that no one reads?

Why?

A reader linked me to this comment on some earlier writing, and I want to highlight one part of it that stood out to me:

the bane of large interests is that, just by dint of communication complexity alone (leaving aside politics/fiefdoms, "compliance" process and associated mandatory trainings, etc), they are extremely wasteful machines that largely squander human creativity and wisdom all while generating massive revenue due to small but effective groups within.

We all know that organizations waste human creativity, but something struck me about wasting human wisdom as being a little bit more grotesque. David Whyte has a lovely little book that explores the underlying connotations of various words through a poet's lens. I frankly cannot aspire to write as beautifully as him, and my words fail me here, but there is something profoundly wrong about wasting human wisdom this way. The thought of all those staff, dragged in day-after-day, churning out these widgets that no one uses... there is something immeasurably perverse about it.

IV. Technical Details or Whatever

I had a lot more to say about the technical issues with PowerBI. You can't programmatically edit the files, so migrating one thousand reports to a new database means opening one thousand files by hand.

The reason you can't edit them is that they're all some fucked series of compressed XML files that you can unzip but can't re-zip without some in-house tool from Microsoft.

The data is loaded directly into the dashboard file (hence the encryption thing above) so these things can get massive, and due to the compression and inclusion of data, they're all BLOBs that don't version control nicely.

The search results for any complex task are littered with people asking and getting silence despite this trash product's absolute ubiquity across the world.

Examining the data lineage on these dashboards, almost all of them are powered by variants of 'important_spreadsheet_final_final_v2.xlsx".

You can't get an organization-level view of dashboard usage without access to the admin API, which is not so much a bug as what must be a deliberate choice to help companies continue to pretend that the analytics department is doing a good job because there are a lot of dashboards.

But I got to this point and then thought "What is the point of criticizing a product that no one uses?", because we don't really use it. We have a hundred blacksmiths turning out tools that we then immediately throw into a shed forever. The details of the hammer we give them, as bad as that hammer might be, really doesn't matter when the elephant in the room is that we've got this much busywork for people. I know some people wonder whether David Graeber's so-called "Bullshit Jobs" actually exist. Well, there you go.

I have a friend that is currently the director at a place that is at least somewhat competent - the kind of director that reads books on psychology, strategy, and programs Rust. When the topic came up a few weeks ago, he said something to the effect of:

"You don't want to work at a place that takes PowerBI seriously. I guess the tool is fine if stakeholders are self-serving for something important, but anywhere that has teams dedicated to using it is very likely to have a lot of muppets. Any stakeholder that says they don't have time to operate the drag-and-drop tool is either for asking something that isn't important enough to spend time on, or is too dumb to use it themselves, and you don't want to work for either of them."

V. In Conclusion

PowerBI makes me want to PowerDIE, is a profound offense to whatever nobility is inherent to the human spirit, and anyone asking for one of these fucking things to be produced should be treated - pending the greatest justification the world has ever seen - like they have stopped the meeting to take a piss on everyone's shoes.