Both. While tableau has a visual query builder, sometimes the queries are too complex. For example they may need self-joins, non-standard join criteria, temporary tables, etc. So ultimately, the tableau guy has to ask a programmer or database person to create a script to use as the tableau source.<p>One example that involves both is when the visualisation needs a contiguous date range in the data, but the data is missing some dates. As a programmer it is easy to just loop through a date range and put 0 where there is no data.<p>There are also lots of limitations in terms of the visualisations. The end result was that multiple visualisations had to be created to show something that a programmer would be able to create as one visualisation.