SELV Dashboard: Thoughts and Concerns

Introduction

VillageReach plans to devote this March and April to the development of a dashboard for use in Mozambique. Although formal requirements haven't yet been disseminated, the project's main goal is to replace an existing Excel-based dashboard with one easily accessible online. It seems likely that users will therefore expect similar functionality to that of the current dashboard.

I started looking into our reporting stack partly so as to be able to evaluate its suitability for projects like the SELV-Dashboard. Although Superset seems like a great step forward for the OpenLMIS project, I have a few concerns about its potential use for the SELV-Dashboard. Because the project's requirements haven't solidified, my conclusions about using Superset's for it are tentative. Nevertheless, it often seems best to raise concerns early on.

Existing Solution

The existing project is comprised of several dashboards, two of which are shown below.

Concerns about Superset Vis-à-Vis SELV

Most of the Tableau reports in VR's OpenLMIS deployments seem to be comprised of tables and very basic charts. I don't recall seeing any which can't be replicated in Superset, and thus think the free alternative seems very attractive within that context. For a greenfield project like the SELV-Dashboard however, where reporting is the sole focus, I'm concerned that Superset may be too limiting. The following sections describe why.

Limited Visualizations

Superset offers some nice visualizations. It's selection, however, is very limited. Several of the options are redundant (Markup, iFrame, and Separator seem interchangeable) and others (like Big Number) don't necessarily add much new. Superset doesn't offer anything resembling the gauge shown at the top of the first screenshot in this page's "Existing Solution" section. When compared to the offerings of a full-fledged charting library like plotly.js, the sparsity of Superset's options quickly becomes apparent. It's true that Superset is open-source and supports the development of custom visualizations. I think it's unlikely that a project as small as the SELV-Dashboard, however, can afford such specialized development.

Just as Superset doesn't support the gauge-like visualizations in the first screenshot, it doesn't seem well suited for displaying the kinds of custom tables shown in the second. Without resorting to custom development, embedding colored balls or various arrows within its tables seems unsupported.

Limitations like the ones I've highlighted would be either inapplicable or trivially easy to address within a traditional web app relying on a dedicated charting library. 

Limited Frontend Flexibility

As I describe here, Superset supports UI customization in several ways. Authoring anything resembling a web app with custom behavior, though, would most likely be very awkward within the confines of its dashboard.

Superset's visualizations can perhaps be embedded within custom, external, web-apps. It's isn't clear that Superset supports this, however, and it's even less clear that a project like SELV-Dashboard would benefit if it did. Why mess with authorization and potential other complications when the alternative is to use a more feature rich charting library explicitly designed for such embedded use?

Limited Backend Flexibility

Superset has great support for a variety of databases beyond just Druid. It doesn't directly support joining data within or among them, however. I can appreciate the cost of this limitation when the benefit is the ability to process extraordinarily large datasets. I’m not sure that the SELV-Dashboard’s underlying data, however, is large enough to warrant such tradeoff.

Lack of Documentation and Community

Superset is new territory for us and, more importantly, for the developer community. It apparently has nowhere near the market share of popular alternatives and thus clearly suffers from an extreme dearth of documentation. It seems likely that a project dedicated to reporting will have requirements which exceed Superset's out of the box capabilities. Workarounds can surely be created within the open-source software. With neither experience nor decent documentation to rely on, however, they'd likely be too costly for relatively small projects to implement.

General Thoughts

Like any tool, Superset seems great for some uses and very poor for others.

I've seen Superset called an "open-source Tableau," which seems accurate. The beauty of Tableau is that it allows non-developers to easily create and update visualizations, and thereby to explore data in new ways. That, however, doesn't seem to be the vision nor likely use of the SELV-Dashboard. Instead, one or more developers are being asked to create a largely static dashboard. Use of a tool like Tableau or Superset in such a case would yield none of the benefits (dynamic chart creation for non-developers) that make these tools so compelling to begin with. Even worse, such use would require the developers to be significantly hamstrung by the tools' many limitations. 

Superset offers visualizations. A much wider variety, however, can be had from dedicated charting libraries. Superset offers built-in user management. Authentication service providers like Auth0, though, again do a better job with relatively little extra development cost. The benefits of Superset thus aren't clear for a project like the SELV-Dashboard. The drawbacks, though, certainly are.

That being said, Superset seems like it could be a great tool for OpenLMIS. In that context, it would allow or the development of future reports which have A) unknown and in-flux requirements, and B) potentially non-technical authors. 

Tentative Conclusion (pending actual requirements!!)

In a nutshell, Superset allows non-developers to create charts. This simplicity comes at the cost of flexibility. It's a great tradeoff when chart development will be an ongoing effort or potentially involve non-developers. OpenLMIS' aim to support future implementers seems to fit this use case. Superset seems like the wrong tool, however, for small projects which have developers specifically dedicated to the creation of static dashboards. These projects would do well to instead use a more capable charting library embedded within a more flexible environment.



OpenLMIS: the global initiative for powerful LMIS software