On Tableau Extensions

Hello folks – I hope you’ve all recovered from TC18 in New Orleans? What a great gig that was!

Anyway, this post is about one of the most talked about new Tableau features – extensions. This is a new API that allows users to build their own plug-ins to Tableau Desktop, and do pretty much anything, and it hasn’t taken long for the extensions gallery to grow.

ext2

There’s already a ton of great stuff in the extensions gallery!

In the 6 or so years I’ve been working with Tableau, I’ve not seen any feature generate this much chat, debate and passion – certainly among my people, the server admin / COE community.

So here’s what I think about this topic;

 

What I like about extensions

Game changing functionality

There’s no doubt that extensions will lead to a great boost in Tableau functionality. We’ve already seen some excellent arrivals into the extensions gallery such as Show Me More, Write-Back, DataRobot Insights and Wordsmith. I have no doubt that will continue, and fully expect the brilliant Tableau community to build functionality that we haven’t even realised we want yet.

 

Fills gaps in the tool

We’re all pushing Tableau for more features, right? Well extensions must feel like a get out of jail free card for *some* Tableau dev teams. We kinda saw that with Interworks Powertools, which filled a number of gaps, albeit at a cost. I’m sure some extensions will emerge that take the heat off certain Tableau devs, maybe allowing those teams to switch focus to something else, safe in the knowledge that the extension has saved them a job. And that might ultimately lead to more innovation and a faster evolution of the tool.

 

Empowers the community

Placing such power in the hands of the super-enthusiastic and skilled Tableau community is exciting. For Tableau to create a conduit for us users to be able to feel like part of the Tableau dev world is powerful, not just with what we can create, but it’s also like we’ve been welcomed into Tableau’s world with a big embrace, knowing that any of us can contribute directly to the capabilities of the product, knowing that hey – I made that!

It’s a mark of respect for the Tableau community and a statement of trust from the vendor. Nice.

 

What I don’t like about extensions

Potential data leakage

This is obviously the big one. I’ve downloaded an extension, how do I know it’s doing what it says on the tin? Or at least not doing some extra stuff I don’t want?

At the Tableau Conference Server Admin meetup, our friend Tamas Foldi gave the audience a demo of a fictional extension he’d built. It went something like this. He downloaded the .trex file, installed it, then clicked OK to accept the terms and conditions (which displayed almost no info). The extension actually displayed cat pictures in a dashboard (Ann Jackson would have approved).

All fine or so it seemed. Until Tamas fired up a terminal and showed us that the extension was actually extracting all of the data from the workbook and sending it to some obscure URL. Grim.

evil-demo-01

Tamas Foldi’s demo of an extension stealing data

The above is hard to read so please click here for the higher resolution version 

This is the reality of extensions. Once you click that OK to accept the terms, you’re at the mercy of the code. And who knows what might happen then?

 

I can’t (reliably) turn it off on desktop

Given the security concerns I would wager that most admins would like to disable extensions on Tableau Desktop. This is possible with a registry edit, fiddly but achievable and easily done in the packaging process. Same as many of us did with the annoying auto-update feature. So that covers the vast majority of people in any enterprise, which will no doubt have their desktops locked down to prevent unauthorised software installs.

However, as in Jurassic Park, life finds a way. And some users will manage to install software. Not many, but some. And that’s a risk.

 

Vetting

As far as I’m aware, and confirmed by my chats with the extensions team, Tableau don’t check or scrutinize any of the extensions. It’s a public gallery and anyone can upload. Tableau don’t have to approve.

 

The Tableau UX

So there’s a reason that Tableau doesn’t have speedometers, egg-timers, traffic lights and

Will extensions turn Tableau into this?

other chart junk like other tools. It’s because at the heart of the tool is a dedicated research team that applies science to everything Tableau does. If it’s going into the tool then it better be best practice and have some theory behind it. It’s the same reason we don’t have 3D, despite the massive demand on the forums – it’s just not right.

That may not  be the case with extensions. It won’t be long before we get the first extension that produces chart junk, and then many of our Tableau dashboards will look like shit. It won’t matter how much research Tableau do.

 

Technical dependencies

As stated earlier, some of these extensions are pretty good. So in time I’m sure many of my users will come to love one or more extensions, and get great value from them.

But how can I, as an admin, guarantee that the extension will support that next version of Tableau? What if it doesn’t? I can’t hold back an upgrade just because one third-party component doesn’t work. What if the extension vendor decides to sunset their creation, either deliberately or just by getting bored of it? It’s us admins that will get shouted at.

 

Support dependencies

Some of these extensions will be popular. REALLY popular. And many will also be homebrew creations made by one person and their dog. Are they going to be able to handle the influx of emails and support requests that they’ll get after thousands of downloads? How do we even know that the vendor of an extension is legit? Do Tableau keep the pressure on extension vendors to provide decent support or keep the product up-to-date? I don’t think they’d have the cycles to do that.

 

More vendors to get to know

I’m already the vendor relationship manager for a bunch of companies here. Last thing I need is a whole lot more to worry about.

 

Server defaults are on

Now extensions can be disabled on server. And restricted to a whitelist. What I don’t like here is the fact that the default setting for server extensions is ON. Not cool.

Go vote up Mark Kernke’s forum idea to change that default setting.

 

Paid for extensions a huge potential headache

So here’s a conversation I’ve already had here.

User: Hey I wanna buy this extension, it's great. 
Me: Okay - well we need to evaluate it first.
User: Sure, and if you okay it I need you to put it on the server
Me: Who's paying for that then?
User: Well you are, aren't you?
Me: Baaahahahaha

I’ve caught this one at source, but I’m sure there will be a time when someone has already bought an extension (yes I know they shouldn’t, but…) and then they try to pressure me to pay for it on server.

 

Implementing extensions will take a long time in enterprises

Even for the extensions that we do decide to bring in, there’s gonna be a ton of work for my team.

Off the top of my head

  • Evaluate and test the extension on desktop
  • Evaluate and test on server
  • Penetration test and risk evaluation
  • Add to internal software catalogue
  • Establish vendor relationship
  • Work out commercials and support with vendor
  • Get vendor added to our approved supplier list and internally vetted
  • Package extensions
  • Train team in basic support of extension
  • Organise deployment
  • Ongoing support, upgrades & maintenance

I’m sure there’s more. And that would be needed for each one.

 

What I think might help

Now the server admins have been bantering about this for a while. It was seriously the talk of the town at the TC18 server admin meetup.

admins

A beautiful cluster of server admins at TC18

We’ve not been able to come up with many solutions to these problems as of yet but here are some that we did talk about.

Make them easy to disable on desktop

Not an issue for the packaged deployments, more for the rogue installs. We talked about this a lot. No-one could come up with a solution other than somehow tying it back to the licence key. Open to ideas.

 

Set default to off on server

There’s an easy one. And I hear Tableau are already on the case.

 

Digital signatures

Make this a requirement. Packaged, digitally signed extensions that can be easily hosted internally and therefore blocked from accessing the internet.

 

Tableau approved extensions

I’d like to see an upper-class of extension that has been approved by Tableau. Vendor checked out, support checked, code reviewed etc. Give them a special badge and pride of place in the gallery. If Tableau approve then I’m confident it’s not some amateur outfit.

 

So that’s the deal with extensions. Don’t get me wrong, I LOVE this feature. It’s very exciting and will undoubtedly lead to lots of innovation and some cool stuff that we haven’t even imagined yet. But we do need to be careful. The problems for the admin community are clear. I’m looking forward to working with Tableau devs, product managers and the wider community to solve them.

Comments invited, as always.

Regards, Paul

 

Advertisements

Our Tableau centre of excellence: Managing an Enterprise deployment of Tableau (Tableau Conference 2017)

Hi – been asked for this video a few times. It’s my talk from Tableau Conference 2017.

Check out the presentation here

UBS: Our Tableau centre of excellence: Managing an Enterprise deployment of Tableau

At UBS we run a global Tableau Centre of Excellence, supporting 10k users across the business and IT. Over the last 3 years we have built a reputation as one of the most dynamic, well-run and user-focused IT services in the firm. In this session you will learn how we:
– Implemented and rolled out the infrastructure & application
– Manage upgrades & demand
– Run multiple training programs for users & execs
– Monitor performance, availability & capacity
– Run a dynamic, fun community of Tableau enthusiasts
– Work with the vendor to contribute to product evolution

This session will provide you with many practical tips and tricks to take back to your own organisations to enhance your deployments of Tableau.

This is part of the financial services track.

Speaker:
Paul Banoub, UBS
Content Type: Breakout
Level: Intermediate
Track: Enablement & Adoption
Tags: Financial Services

What to name your Tableau Server?

Hello all. Yes, contrary to popular belief, I did indeed survive Tableau Conference 2017. I’ll admit it was a close thing, but I got through it!

Now back to business..

This one all started with a tweet from my good pal, the Wizard of Excel (and Tableau genius) Mr Dan Harrison (@danosirra) who was wondering what to name his Tableau server host.

This awakened the server admin in me (not that it’s ever asleep).. It also made me question Dan’s taste in music.

An example being…

And this is the point. Server naming is critical in any organisation, large or small.

Picture the situation – you get woken up at 2am by an alert or a call from an operator – server “superman” is down. Fine if you’re experienced and know the environment inside out, but what if you’ve only just joined the company. You know the servers are named after superheroes, but that’s it. Was the production server superman or spiderman? Or was it WonderWoman? Do you need to take action? It’s not clear and you need to dig into a server inventory system to get more info, and that takes time. And you’re new, so you can’t remember the URL for the inventory system.

You assume superman is your production server. But it’s not reachable via console, and you need to call someone to get into the datacenter to fix it. So you call the hardware team – sure they’ll go in, but they need to know if the server is in the London or the Birmingham datacenter? Errrr…

So you dispatch Server 5’O to fix the box, and then the next day you find out it’s a development machine and could wait. What a waste of time.

So you get the problem here. It’s very tempting to name servers after Simpsons characters or animals (I’d choose sharks obviously), but those names convey no organisational information and as such, are useless.

So what should you do?

There are tons of different naming conventions you can use. Here’s one that I like

When I get that call in the middle of the night I (or the hardware technician) will want to know..

  • Where is the server?
  • Is it production, Disaster Recovery, UAT or development?
  • What application is it? Tableau, obviously.
  • Which worker of my Tableau cluster is it?
  • What operating system is it?

So I get called and am told server lnpwtsw3.company.com is down. Let me think..

  • ln – London
  • p – Production
  • w – Windows
  • ts – Tableau Server
  • w3 – Worker 3

And with that info, I know it needs acting on now, which platform admin to call if it’s an OS issue, and where to send the hardware technician if it needs physically addressing. I also know which worker it is so what the potential impact to my cluster is.

Yes the server name is a little harder to remember, but that soon comes and it is possible to create a DNS alias to reflect a friendlier name if needed. There’s also a balance to be had in terms of character count etc.

Another example – this time server name is lndwtsw1

  • ln – London
  • d – Development
  • w – Windows
  • ts – Tableau Server
  • w1 – Worker 1

Fine, that’s development. I’ll go back to sleep and deal with it in the morning.

So as you can see, it’s pretty important. Not just for me and my Tableau environment, what if you’re a server admin in charge of 5000 servers across the globe? This needs to be right!

Anyway, that’s it. Pretty simple. For the record, Dan made his choice…

See you next time, Paul

Data driven interviewing with Tableau

Hi

Continuing the series of posts where I explain how we are building an enterprise grade Tableau Centre of Excellence.

Here at Vizninja towers we pride ourselves on knowing Tableau & data. After all, we need to be able to add value and help users with their myriad queries.

So when we get the chance to hire, it is critical that we get the correct people. People with great skills in Tableau, data & visual analytics. People that can tell stories and make data come to life. People who want to help others see and understand their data. And being a data driven team we use data and visualisation to help us make the selection.

Our interview process goes like this.

  1. An initial screening call with the Agile BI service manager (that’s me!)
  2. A technical interview with the team
  3. An exercise involving Tableau Public
  4. A final chat with the big boss (that’ll be me one day)

Some more detail on a couple of these steps.

 

The Technical Interview

We have a series of technical questions that the team asks each candidate. The questions are split between Tableau Server and Tableau Desktop and also categorised in terms of complexity – e.g. Level 1, Level 2 & Level 3, (see here) with the more complex questions being at L3 level. So I wait until my team are in a bad mood and then I let them off their leash at the candidate….

Our interview viz. Created by @jakesviz

Click the image to get a better view of the tooltips. Apologies if they’re not so clear. Here’s what some of them look like. So we can see the exact question asked, points achieved and any comments.

On the dashboard, you can see the questions asked, the max points available per question and then the points attained per category and complexity. At the end we spit out a KPI that gives us some indication of a candidate’s capability. Note that a low score doesn’t necessarily indicate that a candidate is unsuitable. Often we see people who are super-skilled in Tableau Desktop but not experienced in Server (as in this case). A few weeks with the team will soon change that though. Our job is to create all-rounders in all aspects of Tableau.

So if the data checks out then the candidate moves on to the next stage.

 

The Tableau Public Exercise

For the next test we ask a candidate to choose a dataset from these public datasets and then create a viz on Tableau Public. The candidate then presents their viz to us and we look for the following

  • Good visual analytics best practice
  • Ability to create an engaging story and develop insight
  • Structured design process and ability to justify design choices

And if they’re really unlucky then @jakesviz will download the workbook and rip it to bits in front of them! Yes we are looking to see if you’ve commented your calculated fields!

Here’s what Jakub Jaros came up with..

https://public.tableau.com/profile/jakub.jaros#!/vizhome/SignigicantVolcanicEruptions/Main

Nice work huh? We thought so. So now you know where to go for your volcano information. This is a really important part of the interview process as the candidate presents their work to us and it can lead to discussion, debate and even argument. But it really gives a sense of whether someone loves dataviz and you sure need that if you want to work for me. We plan to add some data points to this stage so that we can come up with a final rating for each candidate.

After this, it’s a final chat with the big boss and hopefully a role with the team. And that’s when the fun really starts!

This approach has really resonated with senior management and as a result we are helping several other teams to adopt a similar process.

So there you are. That’s how we ensure we have the correct people to deliver a great service. Feedback appreciated in the comments.

Cheers, Paul

What we got wrong building our Tableau service

Hi

I spend a lot of time talking to other companies about how to put together a decent Tableau Centre of Excellence. And that’s cool. I love to help people and I also learn a ton from all the other great setups out there.

But that also gets me thinking. We are far from perfect. And we made a whole lot of mistakes on the way to building our service. So instead of talking about the good stuff we did, I thought I’d highlight what I think we got wrong.

So in no particular order of importance, here are our top mistakes

Onboarding

So you’ve done the demo, shown the capabilities of Tableau and your audience is wowed. They want it and they want it NOW! So how do you get them from wanting to having?

Well we didn’t do so well. Our purchasing is handled by another team and the process is fairly complicated. Our mistake was not building a solid enough relationship with the purchasing team early on and making an effort to understand the points of the process that could be improved. We kind of just let them get on with it when we could have offered more assistance. This meant that on occasion users had to wait up to 2 months before they actually got their licence! And sometimes that cost us users, who gave up during the process.

Eventually we got together and helped the purchasing team out. And now things are a lot better. My advice – if you see a team you have a dependency on are struggling, then speak to them and help them out. Sounds obvious, but on this occasion we didn’t.

Setting Expectations

I spend a lot of time talking to users, often at a senior level, asking them to feedback on their experience with Tableau. On the whole it’s great stuff that comes back, but occasionally I used to get surprised with users informing me that their experience was poor. Tableau didn’t do what they wanted, it was inflexible and hard to use.

That didn’t sound like the Tableau I know and love. So I did some more research and it turned out that the users who didn’t like Tableau were trying to get it to do something that it wasn’t designed for. Now that’s fine if you’re Allan Walker or Noah Salvaterra but most of my users aren’t that level – in fact few people are. And of course that meant the users were getting frustrated.

I think the comment that really resonated was “Tableau? That’s Excel online isn’t it?”. Er – NO IT ISN’T!

The problem was obvious. Users thought Tableau was something it wasn’t. And naturally they would get a degraded experience. So we created a document that clearly states what Tableau is good at, and what it isn’t good at. We make users read this doc when they sign up for the service so they know exactly what they are getting.

This was very successful and really cut down the instances of poor feedback.

Some related posts on this subject from Dan Murray, Matt Francis & Peter Gilks

Training from the Get-Go

I’m a self-learner. So is my team, and most of the people I work with. I’m sure you are as well, that’s why you’re here reading this. And as a result I expect others to be the same. And for the self-learner, the world of Tableau is great. Tons of bloggers, forums, help articles, Tweeters, online videos and all sorts of quality learning materials. It really is one of the strengths of Tableau IMHO.

So we created guides & 101 pages etc and told users to go and help themselves. And to be fair, some of them did. But not as many as we’d have liked. And as a result we got tons of newbie questions and consequently poor quality content on our server.

About 8 months into the service we decided to implement a structured, instructor led training programme, amongst other training initiatives. More details here. Much of the syllabus is covered by Tableau’s own online videos and other resources but for some reason, new users really responded to this structured course. As a result we saw a corresponding improvement in the quality of published content and a reduction in the basic level questions to the team. In hindsight we should have implemented this right at the start, rather than assuming everyone would be keen to self-learn.

Commercials

Much as I love Tableau, their commercial operation isn’t the most flexible. That’s not just my opinion, it has been mentioned in Gartner reports. As a result we’ve struggled to negotiate the most competitive packages that we could have done. There have been some valid reasons for that but I don’t think we put as much effort into resolving the related issues as we should have.

And that’s important. I don’t want to get the best price for the sake of it, in big enterprises there are a lot of competitive threats from other tools. If Tableau isn’t competitive with pricing then the people that make the technology decisions will be perfectly happy to rip it out and replace it with something else. Not what anyone wants.

Again much of this is down to relationship building. As our relationship with Tableau has grown, we’ve seen improvement in this area.

Gamification

I’m a big fan of gamification. It can really boost engagement and turn a good initiative into an awesome one. We’ve had a couple of half-hearted stabs at competitions, to try and get things going but there is so much more we can do. Hackathons, viz games, competitions and internal Iron Viz – we’ve got a ton of ideas but never made it happen yet.

I think that’s partially down to the wide geographical spread of my user base. It would be really hard to get people to show up in a particular location. Users are also insanely busy, would I be able to round up enough people to make it worthwhile? So lots of excuses and not a lot of achievement in this area. I’m open to ideas if you’ve got this one nailed.

That’s it for now. There may well be a part 2 to this as I’m sure there are more things that will come to mind as I cry myself to sleep thinking what a mess we’ve made of it all… 🙂

Thanks to the awesome Matt Francis for inspiring this post.

Happy vizzing, VN

The Three Levels of Tableau Support

Hi all,

Let’s talk a bit more about how to build a top Tableau support team. This post focuses on the support my team provides to our user base. At the moment we have just over 1000 Tableau Desktop users, and approximately 8000 active users on the server every month – that’s a lot of demand for our services.

Now users can be a pretty demanding bunch, with myriad questions, queries and problems. And we are busy. So how do we ensure that users get the level of support they need? Well we provide 3 levels of main support, with the objective being to ensure that the type of user query / issue is directed to a channel that gives it the appropriate level of attention. This ensures an efficient use of my team’s valuable time, and critically it cuts down the traffic to our email inbox which is always a good thing.

screen-shot-2016-11-22-at-14-45-32

Some of the support options for our users

Level 1 – Man down!

Red alert! Something is busted and it needs to be looked at now! For this we need any incident to be logged in a trouble ticket system, with appropriate priority and detail. We use Service Now for this (many other tools available).

So if users think Tableau is broken or they need some immediate help then they log a ticket. This is mandatory. We need to track and log the progress, and the data is audited regularly. No ticket, no fix. We obviously don’t wait stubbornly for the ticket though, if there’s a big issue we investigate while the incident is logged.

Once the ticket is logged it flows through our regular support flow. First my Level 1 team will take a look and see if there’s an easy fix. If they can’t fix it then it’s an escalation to my more skilled Level 2 team, and then a potential escalation to my main Level 3 team for the trickier issues. There may be a future post coming about effective incident management, so I won’t go into detail here.

Some users don’t like us mandating that they raise an incident ticket. But it’s the only way to ensure traceability of problems.

Level 2 – It can wait

Sometimes users have problems or requests for assistance that are not so time sensitive. Maybe a development dashboard has broken, or someone needs help from the team to perfect that Pareto chart, or hey – maybe they just wanna talk about how much they love Tableau (it happens!)?

screen-shot-2016-11-22-at-14-48-33

Book your appointment with a Tableau Dr.

That’s where a Tableau Dr. Session is needed. We dedicate 3 half days a week to Tableau Dr. Sessions. Users log onto our community page and can book their session from a list of available slots. If the next slot is in a couple of days then they have to wait to be seen. Providing this structure to the sessions is critical as it allows my team to keep control. Before we implemented the structured sessions we were getting peppered with do-it-now requests for Dr. Sessions. That meant my team was context switching all over the place and other projects were being impacted.

Providing structure also makes users understand this is a finite resource and thus they are more appreciative of this dedicated time with my Tableau experts.

 

Level 3 – Let’s talk about Tableau, baby

Next level of support is for general chat. Could be a question about functionality, or a point about performance, or a geeky joke, or someone just wanting to ask a question about our upgrade strategy – could be anything really.

 

That’s where our Lync Group Chat comes in. We’ve generally got a couple of hundred users on the chat channel at any one time so it’s a decent forum for such questions and banter. It’s great for my support team to see a question get asked, and then before we have a chance to pick it up, another user has provided the answer – a self healing community – IT support nirvana!

screen-shot-2016-11-22-at-14-45-08

Wanna chat Tableau? Use our Group Chat

 

What’s in it for me?

These support options ensure that each query gets an appropriate response. If it has all hit the fan, then we act quickly. If it needs more care and detail, then we book that time, and if it just needs someone to talk to then we’ve got a community of people ready to give that data hug. It also means we get hardly any emails. And email is a dreadful means of logging an issue, as there’s no traceability or feedback. Users only get annoyed when they feel a query is being ignored, and ensuring the correct channel for a query means users get feedback as appropriate and aren’t left wondering where that email question went to.

Also my support team can plan their work and aren’t constantly context switching, one of the biggest enemies of productivity.

So that’s it. Pretty simple to implement but mightily effective. As always, ping me if you want a more detailed run-through.

Happy vizzing, Paul

Tableau on Tour Keynote Speakers – Some Suggestions

Gallery

This gallery contains 32 photos.

Hi all, I love the Tableau Conference. But I also have a lot of fun at the smaller “Tableau On Tour” events. In particular I love the keynote speeches. We’ve had some crackers recently, with particular recent favourites being Tim … Continue reading