GoodData's recent release is a complete re-thinking of its interaction model, but what does it mean for data product builders and their customers? 

When I get an email from an analytic platform vendor asking if I’d like to check out a new feature release, it feels a bit like Christmas. It’s like getting a present that’s oddly-shaped where you have no idea what lies inside. Will it be that awesome new gadget I wanted or will it be an ill-fitting sweater?

When I heard from GoodData that they had a new release that they wanted to share, all sorts of images popped into my head. Would this be a new iPad or a pair of pink bunny-shaped earmuffs? Hmmm…

Well, it wasn’t an iPad — it was more like an entire Apple iMac Pro, tricked out and complete with peripherals and software. Not bad.

GoodData’s newly released functionality, called “GoodData Spectrum” is a complete re-thinking of the entire interaction experience and brings welcome new capabilities to data product teams and those building embedded analytic applications. 

Recently, I covered some of the significant features of GoodData in one of my “Vendors You Should Know” articles covering the top options for embedded analytics. Features such as entirely cloud-based authoring, a full management ecosystem, and a fantastic services team are just a few reasons why I believe GoodData to be one of the best choices for data products.

What could this new Spectrum functionality bring to the table that wasn’t already there? It turns out it can deliver quite a bit. While I was enjoying the features that GoodData previously provided to build my analytical applications (four to date based on GoodData), their team was hard at work completely redesigning the user interface.

It used to be that to use your GoodData analytics, you either logged into the GoodData portal, or you accessed dashboard via an iFrame embedded inside an application. While almost all users chose the embedded mode, the two methods yielded an identical experience. You interacted with a canvas of GoodData analytics that was independent of the rest of your application workflow. It worked well, and the visualizations looked terrific, but it resulted in two modes of operating — you either worked with your "core" application or with GoodData. Analytics were a bit walled off from the rest of the business. 

The situation later changed as GoodData added the ability to extract analytical elements and embed them alongside your workflow elements, but I always felt like the platform was designed to be used and worked a bit better when accessed from within that iFrame. The analytics worked well, but it was still a limitation. I guess the GoodData team felt the same way because they’ve taken the entire “canvas in an iFrame” model and thrown it out the window. They then walked outside, stomped on it, and lit it on fire. They may have tossed a few grenades for good measure. It’s gone.

The new GoodData is a clean, modern, responsive platform of React.js components that you arrange within your application — no iFrames required. This is a very good thing. For those wondering what benefits this brings to data products builders, picture this: you are no longer limited to arranging analytics in a GoodData canvas and embedding that canvas as a frame on your page. You create the GoodData analytic, grab the seven or so lines of code it generates, then drop that code into your application. Your application’s look and feel is entirely preserved, and you have complete control over layout.

However, as I went through my demo with GoodData, I slowly started to realize that it means far more than just a new way of embedding.

Analytics Anywhere

This new model for GoodData means that you can embed your analytics anywhere. The system is fully responsive — as you make the screen larger or smaller, the analytic elements shrink, grow, and rearrange. What this means is that you no longer have a "half responsive" application where everything BUT the dashboards resize for different devices. As the rest of your application shrinks or expands to fit optimally on a screen, GoodData's analytics will adapt right along with other elements.

It also means that you can quickly deploy GoodData analytics to both desktop and mobile applications using the same code base. You can even build native mobile applications using the same analytical elements. This was not possible using the old system and trying to develop for mobile meant additional time and more resources. GoodData Spectrum is one of the few platforms I've seen that makes mobile analytics a first class citizen and does so with ease.

No Limits to What You Can Build

Although I always felt that GoodData had some of the best visualizations in the industry, there were still those cases where you wanted to build something unique. Customized analytics tailored to your specific data product.

Perhaps, being the leading supplier of on-demand banana deliver, you want to show order status as an image of a banana that changes color as the order progresses. Oddly, GoodData lacked a “shaded banana chart” in previous iterations. However, using GoodData Spectrum, you can build this or just about any other chart you can imagine. 

Spectrum allows you embed any D3.js, Highcharts or Chart.js analytic you can dream up right alongside GoodData-native analytics. Moreover, you have complete access to ANY React.js component available today. From thermometer bars, to filter pickers, to tree controls — I counted about 2500 components available — they can all be used in your GoodData-based analytical application.

The good news is that there now no limitations on what you can build for your data product. The bad news is that you now have no excuses for skipping that banana chart. 

More Than a Pretty Picture

Big deal, you say. So I can create any analytic imaginable and embed it seamlessly alongside my core application’s workflow. It’s just a pretty picture, right? Wrong.

The new GoodData embedded analytics are fully interactive. *Fully. Interactive.* This not only allows you to perform everyday tasks like drilling down and filtering, but you can also fully customize analytics and perform ad hoc exploration from with that same React-based dashboard. From within analytics that are embedded right alongside a form or other workflow functionality, you can click a button and start creating entirely new analytics. 

Click that banana chart and start building a new analytic that shows banana farm output by month for the south-central farming region. You can then save that ad hoc analytic element and make it available for re-use, perhaps adding it’s seven lines of code to the dashboard for other to use.

I was impressed by the new visualizations and embedding methods, but I was blown away by the ability to perform ad-hoc analysis right alongside such a flexible interface. I’m not sure I’ve ever seen this before, and it’s excellent.

Separation of User and Developer Roles

In the past, GoodData used pretty much the same interface for users and developers. Click an edit icon while viewing a chart, and, assuming you had the appropriate permissions, you could start editing the analytics. While powerful, this could cause some confusion for novice users (I just wanted to change the colors — what is this “model” thingy? Can I delete it?). Powerful “do not play with this” type admin functionality looked very similar to the filters and other features that the average user might need.

Now, GoodData has separated viewer functionality from admin functionality with the interface. Start editing an analytic and there is little chance that you’ll wander off into a dark, dangerous analytical alley. When you go the entirely separate but still wholly web-based admin section, the pages use black background — very developer-like — to indicate the mode change. Here you will find the ability to modify models, data sources, permissions, and users. No more wading through charts to get to the specific operational functions you require as an admin.

It’s a significant change that reflects GoodData’s broad experience in the embedded analytic space and an understanding of the needs of data product teams.

All of this powerful new functionality continues to take advantage of the GoodData cloud ecosystem. The abilities that GoodData users have come to expect concerning accessing, modeling, and managing analytical applications haven’t changed. Wherever you create and however you deploy your GoodData analytics using the new Spectrum interface, all analytics still ride on the same data set ensuring that the conversion rate you see in a table is the same as that on a mobile dashboard. 

Scalability hasn’t been neglected either. GoodData showed me examples of data products with not hundreds or thousands, but potentially a million separate analytical tenants. You can promote analytical applications from development to test to production — and back if necessary — at the massive scale required for an operational data product.

I love it when vendors’ new releases are focused on removing limitations for product teams. I love it when they reflect a deep understanding of what’s required to build, deploy, and maintain a great user experience through analytical insights. I love when vendors use their time and resources to build functionality that’s powerful, valuable, and prepares both them and their customers for the future. And, I love this release from GoodData. 

With Spectrum, GoodData has removed limitations on product teams while improving the overall functionality of the platform. They’ve built upon the successes of previous versions, bridged gaps, and created a system that is ideal for creating analytic-based products. Moreover, they’ve thoroughly reinforced my belief that they are one of the best choices on the analytics market for embedded applications.

Good present.

Disclosure: Although I've consulted for them in the past, GoodData is not currently a client, this is not paid content, and do not I have any type of financial relationship with GoodData. I don't accept any type of "pay to post" content on this site. Everything I've written here is my opinion based on a demo from the GoodData team.