As you might know if you’ve watched Mike’s Keynote from this fall’s AtlasCamp, one of the things we’re working on right now is a new, modern dashboard that can be used across our products. The San Francisco development team has been working this effort for a while now, but we’ve been doing it in a slightly unconventional way.
Because the dashboard component is ultimately destined for all our products, we’re not developing it in any of them. Instead we’re using a new tool called the Reference Implementation. This is an application with no features and no functionality. Instead, it is meant to represent the lowest common denominator of all our applications — a way of codifying the shared framework in all Atlassian products.
Atlassian’s products were all built independently, by different teams. We made many of the same technology choices, but no app is exactly like any other. By developing the Reference Implementation, we can be sure that we don’t end up depending on any functionality that JIRA provides but Confluence doesn’t (for example). And in the same way, it gives the products a agreed-upon target to make sure they can support plugins that are intended to be cross-product.
All of that is a long way to explain the subject of this blogpost: we have a dashboard container up, running and usable in the reference implementation, despite the fact that the dashboard feature does not appear in any product yet. And thanks to the reference implementation, on Friday I created what might be considered the first “useful” dashboard — that it, a dashboard I created for its own sake, rather than one we built just for testing the implementation.
I wanted a build monitor in the SF Development Team’s area that can show us, at a glance, the state of our many supported plugin builds on http://bamboo.developer.atlassian.com. I created a Bamboo Gadgets which uses Bamboo’s REST API to get the latest build results of a set of projects. I tweaked the UI so that it packed as much information into as small a space as possible. Then we got a spare iMac, set it up on a shelf, and loaded up the new Bamboo Build Monitor Dashboard.
This is the result:
There are still lots of features left to implement in Dashboards, but there’s enough there that we’re starting to do useful things. I can see it from my desk, I know when any build fails, and it gives me the status-at-a-glance feature that I’ve been missing n Bamboo. And it’s going to be a powerful motivator for making sure all the builds stay green.