Software Development Excellence At Tableau

Preamble

This article is speculative but has been developing in my mind for over five years, which is about as long as I have been teaching people to use Tableau.

I open my classes with this information and I just felt like it was time for me to organize and write my thoughts on paper. There is some additional strategic information that I would have like to include in this analysis to make this a more comprehensive evaluation, but what I offer are a few insights that must be true for the data to exhibit the behaviors I show and discuss in this article.

Introduction

I’m not a professional software developer, but I could have easily become one.

I have written many hundreds of programs in over 10 computer languages. My programs have spanned from dozens of lines to over many tens of thousands of lines, with a programming time frame of 40 years.

Based on this experience, I can tell when a company is developing software the right way. I believe this is the case at Tableau software and I’ll show you why I believe this to be true.

The Data

I’ve been using Tableau Desktop since version 3.6 (early 2008). Since that time, I’ve been recording some pretty boring data related to how often Tableau publishes software updates.

Specifically, the data I’ve collected and organized is shown in Figure 1. This data is fairly plain-Jane, not too fancy, and doesn’t appear to knock your socks off. It is only when you visualize and think critically about the data do you realize some of the reasons why Tableau is an A$$-kicking, world-class software company.

Version_data

Figure 1 – Tableau version history. There are nearly 200 records in this data set, which now stands at version 9.3.3 which was published on 6/14/16.


 

The Definitions

I have created the following definitions. Assume that the version of Tableau you are using is shown in Figure 2. As shown in the top line of that Figure, the version of Tableau that you are using is 9.2.6.

version926

Figure 2 – Version 9.2.6 is shown in the top line of the About window. This version was published on 3/10/16.


Using this code, I define three fields as shown below:

  1. Major Version = 9
  2. Minor Version = 2
  3. Subminor Version = 6

Visualizing the Data

Through the years, I have been working on methods to display and understand this data. Although only serious data dorks would do something like this (and have the courage to admit such activities), I have come to realize (speculate, deduce, infer might be better terms to use) a few things about the Tableau software company. Rather than showing all the ways I have looked at this data, I’m going to keep this short.

First, the Tableau Desktop software development history (Figure 3) exhibits several salient features that indicate excellent strategy, planning, vision, execution, and dogged determination. Let me show you what I mean.

Figure 3 – Tableau Desktop version history, colored by major version. The minor and subminor versions are shown as a series of data marks for each major version. Note that the final data point shown in late 2016 is fictitious and is only used to maintain consistent horizontal scaling in 2016.


 

There are a number of software development insights available in Figure 3. First, each major version exhibits a linear development history. What this means is that Tableau must pre-plan the features of the software for each major version. There must be development targets and target dates set by the company a-priori, and the achievement of these targets must influence the release schedules for the subminor versions.

Certain major versions appear to have been developed more rapidly than others, and some major versions have spanned multiple years, but all versions do show a linear update history. A linear update history indicates consistency, and consistency is key to achieving excellence in anything that you do.

You can also deduce that each major version continues to be developed until all known bugs are removed and all features for that version are complete. You can tell this because there can be some large time gaps between the release of subminor versions, such as shown by the last data points in Versions 5 (108 days) and 6 (193 days). These big time gaps indicate to me that Tableau does not quit until their work is done on any given version, no matter how long it takes.

Furthermore, Figure 3 indicates that there is a consistent periodicity to the subminor releases and that any major version will continue to be developed until it is complete, irrespective of whether a new version has been released. In other words, Tableau does not stop its pursuit of excellence in previous versions, even when the “next best version” has already been released.  

At this point, I could unleash a whole series of figures to prove additional insights. However, I’m going to end this just by saying that Tableau development is very organized and does not exhibit a chaotic history. The subminor versions are regularly published as shown in Figure 4.

Tableau Release History Time Series

Figure 4 – Average number of days for each subminor release, by Major.Minor version.


What Figure 4 shows is that Tableau has generally been reducing the time between subminor releases. The subminor releases now occur about every 27 days compared to 35 days back in versions 4 and 5.

Without additional information on how many new features/fixes each subminor release represents, I cannot tell if Tableau is trying to speed up its development or is releasing subminor versions with fewer features/fixes. Another possibility is that their development teams are now bigger and capable of producing more work in the shorter time frames. In any case, Tableau is continuing its stellar history of producing superb software.

How do I know this? I have loaded and unloaded Tableau easily over 20,000 times, with thousands of different data sets ranging from a few records to billions of records.

I do believe that the first crash I have ever had in Tableau Desktop happened last week, in Tableau version 10, Beta 3. I’d say that the Tableau development team has determined how to produce reliable software products, and this is why I use Tableau every day to understand the data I am tasked to work with. Tableau software reliability is “off-the charts” and would be sufficient for any mission critical process, in my opinion.

Final Thoughts

I believe that project planning and management must be very important at Tableau. I can imagine the brainstorming sessions that they have when they begin planning new versions. I can imagine how they use their own software to track the progress of the their work. This development team must be well-organized and managed because they consistently produce excellent and timely results (Figure 5).

consistency

Figure 5 – Consistency must be a key at Tableau and customer satisfaction is a core element of their belief system.


 

Someday I would love to see a retrospective article by a Tableau insider showing us how they executed the work in one of the major versions. I’d really like to know some of the strategies they used to consistently achieve their software development targets. That article would be a very interesting read indeed.