0:00Hey, Sam here. Today, I want to talk about
0:02a topic that drives me crazy. I've got
0:04nothing to show you. So if you're expecting
0:06me to show you something amazing in Tableau
0:07, this won't be the time where I do that.
0:10However, I do want to talk about hacks. And
0:12by hacks, I don't mean people like me who
0:14've spent too much time in front of a screen
0:16working on Tableau. By hacks, I'm talking
0:18about these tricks that we sometimes use to
0:21get ourselves out of sticky situations in
0:23Tableau dashboards and inside a Tableau
0:25workbooks.
0:26For a long time, people have asked me, "Hey
0:28, Tim, the mat players, you didn't do a
0:30video showing us how you can use it to do,
0:33you know, triple or quadruple axis charts."
0:35And there's actually a reason for that. I
0:38personally have an issue with teaching
0:40people hacks because of a philosophy that I
0:43think I've slowly developed over time.
0:46And I'm not saying that this is an issue
0:47for everyone. I'm not saying everyone
0:49should stop using hacks, because I think
0:51there is a time and a place. But there's a
0:53there's a deeper problem that I have with
0:55hacks. And it was sort of exemplified to me
0:58the other day during an exam, when a
1:00question came up, and it asked, "How do you
1:03get a user to switch between two charts in
1:07Tableau?" And it gave you a bunch of
1:09options. And it's essentially this
1:11capability here.
1:13I didn't even believe for myself that this
1:14was actually something that was in
1:16documentation, or something you should do.
1:19And this is probably a borderline hack.
1:22Okay, so you don't, it doesn't necessarily
1:24mean that this is a hack, because in some
1:25ways, this feature has gotten better over
1:28time.
1:29But essentially, what you can do is you can
1:31create a parameter, and you can then use
1:33that parameter in a calculation to control
1:36which view is being used. So essentially,
1:38your parameters then controlling whether a
1:41sheet is hidden or not. And that's
1:43essentially what happens. And essentially,
1:45you can then choose, "Oh, I'd like the map,
1:47I'd like the bar chart." And it's just
1:48switching off charts.
1:50And what's actually happening here is you
1:52're dragging all three charts into the
1:54container, and the parameters actually
1:56dynamically enabling and disabling the
1:59charts. And then the charts that is
2:01disabled sort of collapses. And there you
2:04go. Okay, so in real terms, the
2:07documentation makes this look like a
2:09feature, but in my view, it's a hack.
2:11Because for me, the right way to do this
2:13would be to give the user a capability in
2:15the user interface, along with things like
2:18containers and layouts, and control and the
2:21ability to be able to change that. And so
2:24let's get talking a little bit more about
2:26hacks and why they drive me crazy.
2:29The number one reason I don't think you
2:31should be using hacks is because of
2:33performance. Now, a lot of the hacks that
2:36we typically see, let's take the map layers
2:39options where you had essentially changing
2:41the capability where essentially map layers
2:44, well, layers are only supported in maps.
2:48So what people were doing is they were
2:49building a map, then disabling the mapping
2:51capability, the background, essentially,
2:53that turns into a scatterplot. And then
2:55from there, you can then start to visualize
2:57whatever you want. The reason I find those
2:59techniques a little bit cumbersome is
3:02because
3:03I think what they've allowed Tableau to do
3:05is essentially get away with not building a
3:08proper user interface for the product. And
3:11if you know me, I have absolutely ranted
3:13and raved for a long time about the lack of
3:16improvements to the layout system inside a
3:19Tableau to the point where I think most
3:21people in Tableau fed up with me bringing
3:23it up, and they're absolutely sick to the
3:25you know, to the nuts every time I bring it
3:26up every time we talk about it.
3:28But the layout system hasn't had any
3:30improvement for such a long time. And as
3:32people will tell you, this ends up being
3:35over 50 to 60% of the time, and all the
3:38spends just fiddling with things like
3:40formatting and layout and so on and so
3:43forth.
3:44And so I very much will literally rejoice
3:46the day we get those features. But the
3:48downside of that is because we're not
3:50getting improvements in the layout and the
3:52formatting, we're also not getting
3:55improvements in terms of the UX
3:56capabilities that we want to be able to put
4:00into these products, these analytical
4:02products so other people can use them.
4:04And so, yes, when you don't do any
4:06innovation or what's over on layout, people
4:09will try and bend the existence of what
4:11they use to be able to do stuff. A really
4:14good example is set actions. Now when set
4:16actions came out, I think the number one
4:18use case for set actions wasn't actually
4:21analytical use cases.
4:23It was in fact user interface hacks that
4:24you could then do to build things like menu
4:27systems and drop downs. I'm not going to
4:29bother trying to show you those on screen,
4:31but I will go find tweets and maybe put
4:33links to stuff that you can sort of go out
4:35and check out.
4:36But it was a real shame because set actions
4:37were really, really powerful feature. And
4:40what ended up happening is it got hijacked
4:43by users who were just crying out for some
4:46user interface capabilities to be added to
4:49Tableau.
4:50Every single feature that comes out, I can
4:52't think of any time there's a new chart, a
4:53new capability. By default, our sort of
4:56first instinct is to try and find ways of
4:58doing things that we wanted to do with the
5:00user interface or with layout or with
5:02design that we haven't been able to do.
5:06And so I actually think that the more we as
5:08a community start to use hacks, the more
5:11Tableau is actually able to get away with
5:13it. Because if I look at this document here
5:16, I don't think this is the appropriate way.
5:20I don't think it's appropriate that it
5:21takes 12 steps to give someone a user
5:24interface to be able to switch a chart on
5:27or off.
5:28You should just be able to create a menu
5:29system and the button system, link the
5:31different selections to those charts. And
5:33when you click on them, they show up and
5:35they hide. Now, they did add something
5:37called show and hide controls, which now
5:39also works for tiled content. Check out my
5:41video on that.
5:42But nonetheless, it's a far cry from what
5:44we've actually been doing for years, and it
5:47's sort of crying out for masses of
5:49improvement. Same with layers. Actually,
5:51layers is a really good example. And I'll
5:53actually highlight how this highlights a
5:55specific problem inside of Tableau.
5:57But in essence, layers, map layers, and if
6:00you had put map layers in front of any
6:03author, the first thing they would have
6:06asked us, Hey, can I do this for charts as
6:09well? Okay. layering is not something we
6:11want to just do in maps. Maps are in many
6:14ways just a an elaborate scatterplot with a
6:17background.
6:17And so people thought exactly that. And
6:19they've sort of manipulated that capability
6:21and built a bunch of features out of it.
6:23And it actually highlights what I think is
6:26a core problem when we come to product
6:28development, especially in large companies,
6:31which is these kinds of features tend to
6:34have a home.
6:35And when there is no one home for the
6:37entire user experience, as it were, so if
6:39there's no product team whose job it is, is
6:42to look at something like map layers and
6:44ask the question, hey, shouldn't map layers
6:47be a feature that's possible in all charts,
6:50then essentially, things like this happen
6:53where one part of the product, maps, looks
6:56at that feature and goes, this is
6:58incredible.
6:59This is going to help us tell better
7:00stories with maps. And it has absolutely
7:03done that. And yet, let's for argument's
7:05sake, say there's a there's a histogram
7:07team. And they how did the histogram team
7:09not look at that and think, well, yeah,
7:11that would be useful for our charts too.
7:14And in fact, and how did anyone in the
7:16charting system or anyone who looked at
7:18that didn't look at layers and think that's
7:20an incredible capability? How else could we
7:23use that to augment our analytical
7:25capabilities when we're doing stuff? How
7:28could our users use layers to tell stories
7:31with their data?
7:32And you don't have to go far to find that
7:34out. If you go to Tableau Public, surprise,
7:36surprise, a free product, lots of people we
7:39can work week out, visit the days left,
7:41right and center that highlights so many
7:43use cases for layers.
7:45And so, to me, that's a real problem.
7:48Because, again, if you'd gone through the
7:49development process, you wouldn't have
7:51arrived at the solution and said, mapping
7:52is the only part of the product that
7:54deserves this.
7:55And so it's slightly hints at the fact that
7:57they are sort of not necessarily silos
7:59within the product development team, but
8:01they are sort of camps within the product
8:03development team. And they have to sort of
8:05pitch for resources.
8:07And if one team can pitch for some
8:08resources, then they get that resource
8:10assigned to their particular part of the
8:12project. But for some reason, that resource
8:14is not sort of a holistic one, you know,
8:16while they're working on my players, it
8:19would have been interesting to say,
8:20Well, could we spend a bit more time and
8:22bring this out for all chart types and make
8:24it more of a wow feature. Instead, you've
8:27kind of got this layout that's deliberately
8:29been designed for other charts as well, but
8:32just this hasn't been sort of kind of doesn
8:34't feel finished.
8:35Okay. And so that sort of highlights a
8:37problem in general for me, because so much
8:39of where we've got to today with Tableau
8:42now needs the product to come together, a
8:44lot of the features we need going forward
8:47to make Tableau the best product that can
8:50be needs
8:51multiple disciplinary teams to come
8:53together. If you think about the layout
8:55system that doesn't just need the
8:57formatting team, the dashboarding team to
8:59come together. It also needs the charting
9:02team to come together because most of the
9:04things we're formatting involves analytical
9:06charts that we're building.
9:06We also need the server team to get
9:07involved because we want to build those
9:09things and animate them and make them
9:11beautiful. They need to be performant and
9:13fast and load in seconds on Tableau server.
9:16So how many of the things we need to do
9:18going forward require a more holistic sort
9:20of joined up approach across multiple teams
9:22, the kind of approach you kind of see Apple
9:25where when iOS 15 for example has just come
9:27out a bunch of the features work right
9:31across the
9:31whole ecosystem of Apple, they don't just
9:33work, you know, in their sort of silos they
9:36work across the whole setup. And so, going
9:38back to hacks which is sort of how I've
9:41gotten onto this run in a way, hacks really
9:43highlight sort of the weaknesses of the
9:46approach
9:46that comes in in product development. And
9:48sometimes I have to say this, sometimes as
9:51a community we tolerate it, we actually
9:53accept the fact that these hacks are the
9:55accepted way of doing things to the point
9:58where it makes it to documentation a 12
10:00step process
10:01which between sheets actually makes it to
10:03documentation, and even into an exam, and
10:06in my opinion, that shouldn't be how user
10:09interface design is done it shouldn't be 12
10:12steps to show and hide a single chart
10:14inside a tablet, and that shouldn't be
10:18something
10:18that is held as an achievement or something
10:20like that. There's actually a video a
10:22colleague of mine has done on this feature
10:24and it's had 18,000 views and it's kind of
10:26makes me cry because 18,000 people out
10:29there think that this is the right way to
10:32do that.
10:32And actually there's a better way of doing
10:33things of course there's a better way of
10:35doing things if you asked half of those
10:37people, they could probably draw something
10:39on a napkin that might not necessarily be
10:41better but would work in their heads a lot
10:43better than what we currently have now.
10:45So, the hacks, the hacks really really I
10:47think damage the quality of the products we
10:50get long term because if there's, if
10:52something never ever sort of bubbles up to
10:55the top of the pile in terms of need if we
10:58don't cry about something sort of hard
11:01enough because there's a hack that kind of
11:03suffices, then essentially it just never
11:05makes it to any developer or any sort of
11:08product managers table to be fixed because
11:10new features and new requirements
11:12to keep up with the competition will always
11:14take priority. And so this is sort of not
11:17necessarily a plea, but I'm sort of saying
11:19to people don't put up with hacks.
11:22Because if you put up with hacks, what will
11:24end up happening is over time we'll have a
11:26very hacky product, which has lots of sort
11:29of nuances I mean, it's not too long ago we
11:31had to use sheet to make buttons to
11:33progress and that was again a documented
11:35way of doing things
11:37until someone realized that's awful let's
11:39just give you a button element. And because
11:41the reason that was done is because it was
11:43causing performance issues actually had an
11:45impact on the server, and it was sort of
11:47making things go crazy.
11:49And that leads to my final point around
11:50performance, all these hacks that we do,
11:52when you actually deploy them in an
11:54enterprise setup, if you just imagine let's
11:56say you build a hack in your workbook and
11:58it's fine in your workbook because in your
12:00workbook is just you and your content.
12:03But let's say you start sharing this
12:04practice let's say you get held as a
12:06champion, and someone asks you what's the
12:08best practice way of doing this, this and
12:10this, and you share that skill with someone
12:12.
12:13Now they go build the same thing and they
12:15teach it to more people, and that sort of
12:17keeps going and before you know it you have
12:19a tableau server where maybe a small
12:21percentage maybe 10 to 20% of the workbook
12:24have these hacks in them, but these hacks
12:27don't sort of surface themselves
12:29there's no like little part of tableau
12:30saying hey I used a hack these hacks are
12:32just hidden inside of workbooks and there's
12:34no real easy way to know which ones are
12:36being used and what impact they're having
12:38but they're sitting there, sort of just you
12:41know waiting to become a problem.
12:43And where it does become a problem is
12:44especially when tablet then decides to do
12:46something about it. And now you've got to
12:48go find those hacks and remove them and do
12:50them in the supported way, so that things
12:52start to perform a little bit better.
12:55Okay, so performance is always a sort of a
12:57key thing that's especially pertinent when
12:59you run on premise for tablet server. Now I
13:02have to say most of the hacks are maybe
13:04exaggerating most of the hacks don't cause
13:06the kind of performance issues that really
13:09sort of take a server down.
13:11Those tend to be sort of bad practice
13:13things like large cross tabs you know large
13:15tables, but nonetheless, they do have an
13:18impact and in some cases they do slow
13:20things down especially when they get led on
13:22to really complex data sets or really large
13:25data sets.
13:26It just sort of multiplies the problem. And
13:28so, number one, I think it ruins the
13:30product development process for everyone
13:32because we don't sort of get the focus and
13:34attention we need on features and then
13:37number two, performance, you know
13:39performance is not something you can
13:40guarantee. Number three for me personally
13:42as a consultant is hacks are very hard to
13:44hand over. And the amount of times I've
13:46been handed over something and then it's
13:47been built with a hack and then you look at
13:49the hack and you go, really, this is not
13:52resilient, this
13:53is not going to withstand sort of
13:54resilience testing or not going to stand
13:57the test of time. Let's say I leave, I've
13:59built a hack and then I move on, unless I
14:01've documented that hack religiously which
14:04is not often the case.
14:06And then, again, that hack is sort of just
14:07living there now someone comes in to edit
14:09that they look at it. And it's essentially
14:12the same problem that Excel has had with
14:13things like VBA script where it's just
14:15basically a black box.
14:17And so, hack sort of just proliferate
14:19throughout the entire sort of community,
14:21and there's no real way there's no sort of
14:23common folklore about how things should be
14:26done.
14:27And so, listen, I'm not trying to be some
14:29some old granddad, you know, in my day we
14:32did things properly I'm not trying to be
14:34that kind of person. I love seeing the
14:36innovation I love seeing the energy that
14:38comes out of these little tricks, and
14:40actually sometimes
14:41features come out of these things is
14:42because people push the boundaries of the
14:44product that we discover features and we
14:46discover sort of capabilities, but in my
14:48view we don't get feature improvements,
14:50often enough, as a result of the hacks.
14:53Too often those hacks just become the
14:55common way of working. Now, I'm going to
14:57stop there because I think I'm just going
15:00to end up sounding like an absolute grand
15:02dad if I carry on, but nonetheless, and that
15:04's my opinion that's my view and so when
15:07people ask me
15:07Hey Tim why haven't you done that video on
15:09that little tips and tricks or how do I do
15:11this you'll see comments all the time,
15:13asking hey how do I do this or this, and
15:15often you might see me linked to someone
15:17else making that video.
15:19And in my view, that's sort of my approach,
15:21I don't make videos on these hacks because
15:23in my opinion, I think, as soon as
15:25something changes about them they're going
15:28to break, whereas supported features tend
15:30to get improved on so I can make another
15:33video, a few months later saying hey you
15:35know the
15:35map layers feature now that's available for
15:38all chart types and here's how it works.
15:42And instead you don't have to sort of
15:45figure out some sort of hacky solution that
15:48happened. My light just went out mid round
15:50that's how that's how long I've been
15:50recording so I'm going to stop there.
15:51Let me know what you think, am I being some
15:53old fogie, am I wrong, am I flat out just
15:55incorrect. Do you have an opinion on this I
15:58'd love to know, and as a hacker and your
16:01life or as a hack change your life I want
16:03to know about the good stories as well
16:06because let me be honest again
16:06hacks sometimes do get you out of sticky
16:08situations. I just don't like how much we
16:10lean on them in the tablet community,
16:13instead of actually pushing for a better
16:15product and having the time spent on things
16:17that we've been crying out for for a long
16:20time.
16:21So, thanks for watching if you've enjoyed
16:23this, check out some of my other Friday
16:25thoughts, and I did a video on tablets
16:28feature and that actually went down pretty
16:30well. Lots of you sort of got in touch and
16:33lots of stuff has sort of happened since
16:35that discussion
16:37and I've been watching some of my videos on
16:39tablo as well about that video so again,
16:41watch out some of that content in your own
16:43time it's the kind of stuff you can switch
16:45on in the background, and I do something in
16:48the background just listen to me talk
16:51because it's not often
16:52much on screen so I do check out these sort
16:54of Friday episodes as well. I'm going to be
16:56trying to get back into the videos I took a
16:58sort of a mini break what tends to happen
17:00after a big release is I tend to sort of
17:02take a short break, because when you record
17:04a lot of videos,
17:04you can't really spread out the new feature
17:05releases either because there's only really
17:07a short window where they're relevant, and
17:10then people start searching for them over
17:11time so what I try and do is get them out
17:13early.
17:14Now I've had one issue with slack, setting
17:16up slack for tab online for me at least has
17:18been really troublesome. I'm actually
17:20engaging tablet support on that particular
17:22topic to try and see if we can get it fixed
17:23.
17:24And once that's fixed I'll actually be able
17:25to show you how to set it up, and then how
17:27it works. That's probably one of the
17:29biggest features I haven't covered yet, but
17:31we'll definitely be covering that and then
17:33hopefully we can make hay on some of the
17:35other features
17:36I haven't done yet on 2021.3, but that's it
17:39for now thanks for watching and I'll catch
17:41you in the next video.
17:42Transcribed by https://otter.ai