Friday, November 30, 2018

Tableau's Lost The Helping-People Path

This post is a continuation of a discussion about Tableau's seeming reluctance to improve the product's ease of use.


It might be obvious, but I'm also disappointed that Tableau has effectively abandoned ease of analysis as a primary product principle. My list is only a mere scuff on the onion skin of things that would make Tableau a much better product. Some of them are so simple and easily fixed that their persistence is irritating—it's almost as if Tableau doesn't take the things that bug mere humans seriously. I know this isn't totally true; there are people at Tableau who really do care about these things, which makes the situation more mysterious and, oddly, more vexing.

At its core, the things that Tableau makes really easy to use for analyzing one's data are the handful of operational functions—field selection, sorting, aggregation, calculating new fields, and filtering—that 4GLs made easy in the 1970s, albeit in a mainframe character-mode terminal and line printer world.

Tableau extends this model by providing visual forms appropriate to the analytical context and makes it easy to apply visual characteristics, e.g. colors; although it's always been poor at clarifying its operating principles, e.g. why does the order of double-clicking fields produce different effects.

That pretty much covers Tableau's "best-ever" space.

There are a number of dead simple things that could make Tableau better even in this space, e.g.

  • Getting rid of the default cells' 'Abc' label – it's pretty silly, since the by far dominant purpose of the cell is to contain quantities, and the 'Abc' implies that text is the normal content. Even '123' would be preferable, although it's not without problems.
  • Adding scrolling to the dimensions' part of the viz – the 'Ideas' topic that prompted this discussion.

There's a vast space for improvements in expanding the functional easy-to-do analytical operations horizon: making more things simple, easy, and straightforward.

I spent a lot of time trying to get Tableau to hire me to help, and gave up when they were pointedly not interested.

It seems pretty clear that Tableau's been working very hard to make itself into an enterprise platform - there's a Motley Fool interview with Christian Chabot from a number of years ago (can't quickly find it) where he talks about Tableau's objective being to maximize its market potential in the context of enterprise platform software sales. This has never been a secret. Even as a new company Tableau used an enterprise sales approach: when I bought my Tableau license (money well spent) in 2006 I had to purchase it from an actual salesman who was primarily interested in how many other copies he could sell into the organization I was part of.

Bald-faced self-promotion here.

A couple of years ago I took the opportunity to put together a product proposal and some initial prototypes for a visual data analysis tool targeted at individuals with data they need to understand.

It addresses Tableau's shortcomings, with the advantage of over thirty years' experience in helping people with their data analysis needs—including stints as Product Manager for PC/FOCUS and FOCUS for Unix where we created the first generation of visual data analysis tools (alas, IBI did what Tableau's doing and looked to be more 'technology' than 'human' oriented)

It took the better part of a year and I'm pretty pleased with the product concept and design. Sadly, I'm not part of the 'business' side of this business, and the limited pathways to the resources required to build a real, live tool I've had access to haven't proved fruitful.

So... I'm open to any opportunities to collaborate in creating the next great human-oriented data analysis tool. One that's affordable and makes it simple, easy, and straightforward for non-technical people to connect with and understand the data that matters to them.

Given that Tableau's history strongly suggests that it's not going to revisit its basics and improve its fundamental functionality, I'm waiting for the next great tool to arrive, one that addresses Tableau's friction points and expands the range of what's is simple and easy to do data-analytically.

In the meantime Tableau remains the best tool I've ever found for basic data sense-making and I'll keep happily using it.

Thursday, November 29, 2018

A list of ways in which Tableau can -should- be improved.

Tableau's in need of a reworking, a redesign of it's fundamental data analysis interactive model. The original design concept worked well in the original functional space, but it's been left languishing and is in real danger of becoming left behind by new innovators.

It's been quite a while since I've spend much time and effort into advocating for improvements to Tableau's support for ordinary humans' data-analytical abilities.

At this time I'd like to present a compilation of material I've previously published, augmented with a wee bit of explanatory information.

I'm motivated to do this because I hear whispers that Tableau is maybe taking a look at how they can improve things.

Here's a list of references to material describing some ways in which Tableau could be improved; it covers a pretty broad span, partly because everything's related, partly because it's worth taking advantage of every opportunity to advocate for making Tableau a better product for helping people see and understand their data.

Nuggets and Seeds
A compendium of thoughts and musings about data analysis, effective data-analytical software tools, and Tableau's position as a premier tool for helping people see and understand data.
Is Tableau in danger of becoming just another enterprise platform? I hope not and fear so.
January, 2016

Rethinking The Analysis Frame #1 - Row Folding
Directly related to improving Tableau's table(ish) abilities.
September, 2013

Precision Inputs Required In Addition To Analog Controls
Precise control of the geometries of the various structural elements, e.g. column width would go a long way to making Tableau better.
Related: make it possible to select and adjust multiple elements at once - the current select/fiddle/repeat interaction model is tedious, tiresome, boring, and error-prone.
November, 2013

Inconsistent Chart/Table Formatting
October, 2012

Towards Better Formatting - Notes on Alignment
Specifically about text alignment, it lays out a robust set of options for formatting and aligning text.
Related: text should be formattable wherever it appears, this includes field labels, where it would be incredibly valuable to have control over folding, new lines, etc.

Problematic Table Formatting When Deployed in Dashboard
July, 2013

Jittery Charts - Why They Dance and How to Stop Them
January, 2013

Failure to Identify -or- Who is that mystery measure?
May, 2013

From Chart White Space to (the need for) Architecture
General thoughts on the need to implement a coherent visual architecture underpinning Tableau's visualization space and data-analytical interactive functionality.
July, 2013

Enhanced Chart Design - Adding White Space to Bar Charts
Visually separating elements grouped by Dimension members makes it much easier to identify these groupings than Tableau's current identically-sized matrix layout paradigm.
July, 2013

Dual Axis Visibility Configuration Explained - Is Not What It Should Be
August, 2013 Dual axis charts' axes should be independently and rationally controllable. They're not.
While we're at it: axes should be top-level objects, not subordinate to Headers, which means that one needs to have the Header visible in order to manipulate the axis. Which is bad, but worse: one needs to know that's how to get to the axis, and that's an impediment for non experts.

Is it Transparency? Is it Opacity? Labeled one, works like the other.
A little thing, but important in that 1) it works contradictory to expectations (that it established), and 2) plants a seed of mistrust in Tableau (if it's wrong here, where else is it?)
December, 2013

Additional Improvement Opportunities

Needed: More File Names and Better Interaction
April, 2013

Tableau Needs a New Windowing Scheme
(a bookmark article)
Essentially, Tableau's current application UI is horribly constrained by the fixed configuration of its component windows/panels.
The UI architecture made a little sense when Tableau was initially introduced, a legacy of the project Poseidon UI, but it's been outmoded for a decade.
Modern application UIs are much more modular and flexible, letting one have the tools necessary for the job at hand readily available without opening, closing. collapsing, expanding structural, modal components. March, 2014
Speaking of modality: the mishmash of modal/non-modal sub-windows and dialogs is a mess. Wherever possible, dialogs need to be non-modal.

Monday, September 10, 2018

Documenting Dashboards and their Worksheets


Document the Dashboards, and the Worksheets they contain, in one or more Workbooks, making it possible to use Tableau to see things like this:

Tableau Tools make it simple and easy to accomplish this. All of your Workbook's Dashboards can be documented so that it's easy to see and understand where they are and the Worksheets they contain.

Tableau Tool – Recipe

  1. Prepare the ingredients – make sure that:
    1. Ruby is installed
    2. The Twb gem is installed
    3. The Ruby script analyzeDashboardSheets.rb is available
  2. Open a console / command / terminal session
    > _  
  3. Navigate to the directory or folder containing the Workbooks you want to document
    > cd {path to Workbooks}  
  4. Run analyzeDashboardSheets.rb
    > ruby '{path to Workbooks}\analyzeDashboardSheets.rb'  
  5. Examine the CSV file containing the information, normally
    > ./ttdoc/TwbDashboardSheets.csv  
    —preferably with Tableau

Why This Tool

Problem Addressed

One of the challenges faced with Tableau once it's been in use for a while is in understanding where things are and how they're related.

Information Requirements

Individual and organizational interests have a common set of information requirements that can be framed as questions about how Tableau's being used. Being able to get answers to these questions is essential to being able to understand what's been created with Tableau. The questions include:
  • Where's that Dashboard, in which Workbook or Workbooks?
  • How many versions are there of it?
  • What Worksheets does it contain?
  • Are the Worksheets the same in the different versions?
  • Which Dashboards does this Worksheet appear in?
Individuals and an Organization's Managers have concerns and responsibilities regarding the effective use of Tableau, covering the spectrum from individuals' dynamic data analysis to construction, delivery, and consumption of informative analytics via Dashboards. (recognizing that Dashboards aren't the only information delivery mechanism, this post is specific to them)
A normal working Tableau person can be involved with many, many Workbooks. It's not unusual for there to be hundreds, even into the thousands of Workbooks to be present in an Organization where Tableau's been in use for any length of time.
Individual Tableau User
Broadly speaking, there are two main uses of Tableau. Some people use it primarily for their own data analysis, some use it to create analytics for others to consume, with many or most people with some mixture of the two. As an individual, once you've created a number of Workbooks it can become difficult to remember which Workbook a Dashboard is in, or Workbooks if there are versions and copies of it.
Organizations have multiple people with interests that are well served by being able to identify the content of Tableau Workbooks, including those responsible for:
  • Intellectual Property Guardianship
  • Data & Analytics Governance
  • Analytics Management

Tableau Doesn't Help (Much)

Tableau provides very little assistance in helping answer these and related questions. If the Workbooks are published to Tableau Server or Tableau Online there are some views that provide partial information, but it's a very limited perspective lacking real analytical flexibility.

Solution: Documenting the Dashboards and Worksheets

This Tableau Tool will examine a collection of Workbooks and record the information about their Dashboards, and the Dashboards' Worksheets. By default the Workbooks will include all the normal and packaged Workbooks in the current directory/folder—this can be easily configured to include as many or as few Workbooks as desired.
The information is captured in a CSV file, making it analytically useful with Tableau (or other data analysis tool).


is a Ruby script that accesses Workbooks, locates the Dashboards, their Worksheets, and records the information in a CSV file. It can be run as-is, and is available as a Gist from GitHub here.

analyzeDashboardSheets.rb – How to Use


Ruby is installed

Ruby is available for all of the platforms that Tableau runs on. It's available by default on Macs, and is easily installed on Windows.

The twb gem is installed

normally via:
  > gem install twb

analyzeDashboardSheets.rb is available

at {path}\analyzeDashboardSheets.rb

The Workbooks to document are available

Normally and most conveniently collected into a single directory, they can be located in multiple directories identified with a set of file naming patterns details below
The directory contains the Workbooks to analyze — we're using the Tableau Sample Workbooks here

  > cd '{directory/folder containing the Workbooks}'
  > ...
  > dir *.t*
   Volume in drive C is Windows7_OS
   Volume Serial Number is F861-CE43

   Directory of {...}\Tableau Sample Workbooks

  09/06/2018  04:28 PM           627,531 Regional.twb
  09/05/2018  09:34 PM           605,080 Regional.twbx
  09/05/2018  09:34 PM         1,091,332 Superstore.twbx
  09/05/2018  09:34 PM           533,181 World Indicators.twbx
                 4 File(s)      2,857,124 bytes
                 0 Dir(s)             ... bytes free
Note: Regional.twb is a copy of the sample Regional.twbx Workbook that's been edited and saved as a normal .twb file.

run 'analyzeDashboardSheets.rb'

most commonly, from the terminal command line like so:

 > ...
 > ruby '{path}\analyzeDashboardSheets.rb'
As it runs analyzeDashboardSheets.rb provides information about its operation:

  Analyze Dashboard Sheets from Tableau Workbooks.
  Processing Workbooks matching: '["*.twb", "*.twbx"]'
       - Regional.twb
       - Regional.twbx
       - Superstore.twbx
       - World Indicators.twbx
  Analysis complete, found: 4 Workbooks
  For documentation and generated data see the following:
  - ./ttdoc/TwbDashboardSheets.csv    Workbooks, Dashboards, and their Worksheets
  That's all, folks.

The CSV file TwbDashboardSheets.csv can now be used to identify and analyze the Dashboards and Worksheets.


connects to the CSV file and has a number of starter Worksheets that provide basic information, including those shown above. It can be downloaded from GitHub as '' from here.
Workbook notes:
  • Zipped: the Workbook is zipped simply have GitHub provide a download link to it instead of presenting it as an XML file. Unzip it to use it.
  • CSV file: The Workbook is configured to pick up the CSV file from the current directory.
    This is normally the ./ttdoc subdirectory of the directory from which analyzeDashboardSheets.rb was run.
    If the workbook is opened from this directory it will automatically find the CSV file, otherwise you'll need to point Tableau to it.
    When the Workbook is saved it will remember this location, so if you want to use the Workbook with another CSV file you will need to edit the data connection to identify the new file's location.


By default, analyzeDashboardSheets.rb analyzes all of the normal and packaged Workbooks in the current directory/folder.
It can be told to analyze any Workbooks of interest by providing their names on the command line, either as specific names or as one or more patterns that analyzeDashboardSheets.rb will use to locate matching Workbooks.

Identifying Workbooks by Names & Patterns

The analysis is conducted on Workbooks identified by name, which can be literal names, e.g. 'Regional.twbx'; or by patterns, e.g. '*.twb', which may contain replaceable parts of file names—wild card characters.
The default pattern has two parts: .twb,.twbx . This is equivalent to
ruby '{path}\analyzeDashboardSheets.rb' '.twb,.twbx' and is interpreted as two individual patterns:
  • *.twb     identifies files ending in '.twb' – normal Workbooks
  • *.twbx   identifies files ending in '.twbx' – packaged Workbooks
note: there's a comma separating the individual patterns, with no spces between them.
Other patterns can be provided to identify any Workbooks of interest. Some examples:
  • '*.twb'   – only the normal Workbooks in the current directory
  • '/*.twb,/*.twbx'   – all the Workbooks in the current and all subdirectories
  • '{path}/*.twb'   – all the normal Workbooks in the directories named by {path}; where {path} can be relative or absolute
note: it's not necessary to put the patterns in quotes; they'll be handled either way, but it may make things clearer in some circumstances.

Data notes:

The CSV file contains this header record:
Workbook,Workbook Dir,Modified,Dashboard,Worksheet,Hidden,Visible
identifying these fields:
Field Description
Workbook the Workbook's name
Workbook Dir the directory/folder the Workbook is in – useful when processing multiple directories that may contain Workbooks with the same name
Modified the Workbook's modification date
Dashboard the Dashboard's name
Worksheet the name of a Worksheet contained in the Dashboard
Hidden whether or not the Worksheet is hidden
Visible whether or not the Worksheet's visible (opposite of 'Hidden'

Getting Started

It's simpler and easier to get started than you may think. If you're using Windows getting Ruby installed is straightforward, Google "Ruby on Windows". Ruby is included on standard Mac installations, and Google is again your friend.
Installing the twb gem, grabbing and running analyzeDashboardSheets.rb takes only a few minutes.
Download the starter Workbook into the 'ttdoc' subdirectory, open it up and start exploring your Dashboards and their Worksheets.

Thursday, August 30, 2018

Tableau Online Locations & IP Addresses

From Tableau doc found here: Tableau Online IP addresses for data provider authorization

Host Name (Instance) Site Location IP Address or Range N. America N. America N. America N. America N. America EU EU

Saturday, August 18, 2018

Calculated Fields Analysis with Tableau Tools — getting started

It's pretty handy to be able to be able to see and analyze the Calculated Fields in your Workbooks without the tedious bother of manually inspecting them by opening up the Workbooks and looking at them one at a time. Even writing that sentence was boring.

Imagine how much better it would be to be able to use Tableau to see the Fields, all brought together so that they can be scanned, filtered, sorted, and otherwise freely investigated.

Here's a screen shot of a Tableau Worksheet showing the Calculated Fields from Tableau's Sample Workbooks.
Note: the data window and controls – shelves, filters, etc. have been hidden for clarity.

Tableau Tools makes it simple and easy to analyze the Calculated Fields in your Workbooks.

This post describes the basics of analyzing the Workbooks and accessing the generated CSV data files.

First Step — Parsing the Workbooks
is a Ruby script that accesses Workbooks, locates the Calculated Fields, and records the information in CSV files.
It's self-contained, can be run as-is, and is available from GitHub here. Usage


  • Ruby is installed
  • The twb gem is installed - normally via
    > gem install twb
  • analyzeCalculatedFields.rb is available at {path}
  • The directory contains the Workbooks to analyze — we're using the Tableau Sample Workbooks here
     > dir *.t*
      Volume in drive...
      Volume Serial Number is...
       Directory of {path}\Tableau Sample Workbooks
      06/27/2018  10:32 PM           605,080 Regional.twbx
      06/27/2018  10:32 PM         1,091,332 Superstore.twbx
      06/27/2018  10:32 PM           533,181 World Indicators.twbx
                   3 File(s)      2,229,593 bytes
run analyzeCalculatedFields.rb most commonly, from the terminal command line like so:

  > ruby '{path}\analyzeCalculatedFields.rb'

As it runs analyzeCalculatedFields.rb provides information about its operation:

  Analyze Calculated Fields from Tableau Workbooks.

  Processing Workbooks matching: '["*.twb", "*.twbx"]'

         - Regional.twbx
         - Superstore.twbx
         - World Indicators.twbx

  Analysis complete, identified
    # of Workbooks            :     3
    # of Calculated Fields    :    43
    # of Referenced Fields    :    84

  For documentation and generated data see the following:

     - ./ttdoc/TwbCalculatedFieldFormulaLines.csv    Calculated fields and their formulas' individual lines.
     - ./ttdoc/TwbCalculatedFields.csv               Calculated fields and their formulas.
     - ./ttdoc/TwbCalculatedFieldsReferenced.csv     Calculated fields and the fields their formulas reference.

  That's all, folks.

The CSV files can now be used to identify the Calculated Fields, their Formulas, the fields they reference, the Workbooks and Data Sources they are from. The provided Tableau Workbook: 'Calculated Fields - Base Data.twbx' connects to each of the CSV files and has a starter Worksheet for each, downloadable from here.

Another view of the Worksheet shown above is here:
Note: the data controls have been restored to show the more familiar Tableau user interface.

Data notes:
  • As shown, formulas are available in two forms:
    • as single elements, with all lines combined, and
    • in their original lines as coded.
  • "Formula Line #" is used to order the lines into their correct order, it can be hidden for clarity.
  • The TwbCalculatedFieldFormulaLines data source is more generally useful than TwbCalculatedFields, although TwbCalculatedFields contains technical information about the calculated fields that is useful for advanced technical analysis.

Workbook notes:
  • The Workbook is configured to pick up the CSV files from the current directory; this will be hard wired to whichever directory the Data Sources are using when the Workbook is saved.
  • The Workbook is packaged simply to avoid GitHub from presenting it as XML text by default – this can be confusing to people who aren't aware of or used to seeing Workbooks as XML.

Recommendations It's simpler and easier to get started than you may think. If you're using Windows getting Ruby installed is straightforward, Google "Ruby on Windows". Ruby is included on standard Mac installations, and Google is again your friend. Installing the twb gem, grabbing and running analyzeCalculatedFields.rb takes only a few minutes. Download the starter Workbook into the 'ttdoc' subdirectory, open it up and start exploring your Calculated Fields. Coming soon. Future posts will expand upon using Tableau to explore the CSV data prepared so far, showing how to accomplish things such as how to trace where specific fields are used. We'll also go over the other documentation produced, including maps of the Calculated Fields' relationships to one another and to the Data Sources' database fields. Further on, other tools will be introduced, expanding the scope of how Tableau things can be related to one another, e.g. identifying which Dashboards contain data from specific databases, which makes it possible to assess the impact of database changes—something that Tableau doesn't natively support.